Interactive Report with many columns scroll possibility?
Hello,
i have an interactive report that has many columns. As so they cannot fit into a page and a scroll bar is used in the bottom of screen, which is not a desired effect.
What i would like to do (if it's possible) is to have a scroll bar before the pager. Up to now i have found a "fix" for this problem but after the pager and it does scroll the rendering of the report but the pagers' also. My solution is to put the following code in the Region Definition, in Header and Footer group, in Header:
<style type="text/css">
#apexir_DATA_PANEL {
clear:both;
width:1220px;
height:650px;
overflow:auto;
</style>
That was in 3.2. Is there any other option/possibility or idea now with 4.0 ?
TIA
Hi TIA,
I hope that following link will help you in regards to your query:
Jon Fortney implemented and blogged on it: http://jfortney.blogspot.com/
Alternatively, you can use ExtJS Grid or jQGrid functionality.
This might help, Horizontal Scrollbar required in Interactive Report
Regards,
Bhavin
Edited by: Bhavin on Nov 16, 2010 4:32 AM
Similar Messages
-
Interactive Report with Null Columns
I've got a user who wants to export an interactive report, and he needs certain columns to appear on the export for him to fill the data in later (this is an intermediate step, while we work on getting all the data he needs in to the database). I've created the report query, and there are a handful of null/empty columns (to preserve the correct order for the export). When I try to add this query to APEX in an interactive report, I get a "ORA-00001: unique constraint (APEX_040000.WWV_FLOW_WORKSHEET_COLUMNS_UK2) violated" error.
Googling around shows me that this happens because of similarly-named columns, and the solution is to provide aliases to all columns. My report has aliases on all columns, but I still cannot create an interactive report. I've tried changing the null columns to empty strings, as well as enclosing the aliases in double-quotes, but nothing works. I can however use my original query to create a standard report, but due to the export requirement, this isn't ideal.
I was able to create the interactive report with one null column, and then edited the report source to add in the others. This had to be done one at a time, since trying to add multiple null columns at the same time gives the same error again. Unfortunately, when I try and run the page, I get an "ORA-20001: get_dbms_sql_cursor error ORA-00918: column ambiguously defined" error.
My original query:
select customer.customer_name as customer,
project.name as project_name,
trunc(project.estimated_end_dt) as due_date,
project_status.project_status_desc as status,
null as revenue,
project.baseline_effort as baseline_hours,
null as projected_cost,
null as est_gain_loss,
project.actual_hours as actual_hours,
project.estimated_hours as projected_hours,
null as projected_cost,
null as projected_gain_loss,
null as roi
from project,
customer
where customer.customer_id = project.customer_id
and project.inactive_ind = 0
and project.customer_id is not null
and project.estimated_end_dt >= :DTP_P50_STARTDT
and project.estimated_end_dt <= :DTP_P50_ENDDT
order by customer.customer_name,
project.estimated_end_dt; Can someone tell me a way to create an interactive report with multiple null columns?Hi shimmoril,
The problem is likely that you have two columns aliased as "projected_cost" (7th column and 11th column).
Hope this helps,
John
If you find this information useful, please mark the post "helpful" or "correct" so that others may benefit as well.* -
Interactive Report With No Column Heading
Is it possible to display a column with no heading (label) in an interactive report ?
I have tried to delete the column heading and save, but when I run the report,
it is still there
Cheers
GusGus,
Try a space character or &nbsp;
Vikram -
Interactive Report with Checkbox column
Hello everyone,
our users love the Interactive Report filtering, so they want all forms in apps. to behave like Interactive Reports.
I need a form where each row consists of 2 columns and a checkbox, that handles some flag. I can create checkboxes using APEX_ITEM, however, the filtering on such column look ridicolous. I would like to have a tabular form (with one editable checkbox column), but with all those Interactive Report filtering features.
Is there any example (or inspiration) how to achieve such functionality?
Thanks a lot!
AdamHello Adam,
Why don't you just switch off the Filtering option for that column?
(Go to the Interactive Report, click on your column, then in Column Definition you can (un)check the features for that column).
Greetings,
Roel
http://roelhartman.blogspot.com/
You can reward this reply by marking it as either Helpful or Correct ;-) -
What is the best way to display a Interactive Report having 20 columns
Hi,
I am having a Interactive Report having many columns (around 20).
What is the best way to display that report...by default we have to scroll it horizontally to see all the columns.
I want to avoid Horizontally Scrolling.
Thanks,
DeepakHello Deepak,
You mean apart from using a smaller font size or a bigger monitor?
You can think about combining / wrapping columns (so more data in one column).
Or hide some less important data and show that only on demand.
Greetings,
Roel
http://roelhartman.blogspot.com/
You can reward this reply by marking it as either Helpful or Correct ;-) -
Re: BUG? APEX 4.0: ORA-20503 error editing report with 400+ columns
Hello Everyone.
I've run into something quite strange and am hoping you can help me.
I am using Apex 4.0.1 and Oracle version 10.2.0.5. I've created a "classical" report in which the underlying SQL is a very simple:
select * from pvtabThe Oracle table pvtab consists of 419 columns, all of which are varchar2(88) and number type. That's it.
When I run the report, al of the columns show up as expected.
However, when I go into the "Report Attributes" tab and click on one of the fields (any of them, it doesn't matter which one), I immediately get the following error:
ORA-20503: Current version of data in database has changed since user initiated update process. current checksum = "598CAA7B68746A66F4B99E1512C36DED" application checksum = "0"If if replace the "*" with a few actual column names, then I am able to access any of these columns without problem.
If I put back the "*", I then encounter this error again.
I have never seen this error with other SQL SELECT statements in which I use the "*" qualifier to retrieve all columns from the table.
And so, I am wondering if the error is caused because of the large number of columns (419) in my table.
I've seen this same error mentioned in connection with forms but never with a report.
So, is there some limit to the number of columns one can have in a "classic" or interactive report?
Any idea why I would be getting this error?
Here is the DDL for my table pvtab:
CREATE TABLE "PVTAB"
( "MICRO" VARCHAR2(4),
"PRIM" VARCHAR2(4),
"UNIT" NUMBER,
"SEC_REF_1" NUMBER,
"SECN_1" VARCHAR2(88),
"SEC_REF_2" NUMBER,
"SECN_2" VARCHAR2(88),
"SEC_REF_3" NUMBER,
"SECN_3" VARCHAR2(88),
"SEC_REF_4" NUMBER,
"SECN_4" VARCHAR2(88),
"SEC_REF_5" NUMBER,
"SECN_5" VARCHAR2(88),
"SEC_REF_6" NUMBER,
"SECN_6" VARCHAR2(88),
"SEC_REF_7" NUMBER,
"SECN_7" VARCHAR2(88),
"SEC_REF_8" NUMBER,
"SECN_8" VARCHAR2(88),
"SEC_REF_9" NUMBER,
"SECN_9" VARCHAR2(88),
"SEC_REF_10" NUMBER,
"SECN_10" VARCHAR2(88),
"SEC_REF_11" NUMBER,
"SECN_11" VARCHAR2(88),
"SEC_REF_12" NUMBER,
"SECN_12" VARCHAR2(88),
"SEC_REF_13" NUMBER,
"SECN_13" VARCHAR2(88),
"SEC_REF_14" NUMBER,
"SECN_14" VARCHAR2(88),
"SEC_REF_15" NUMBER,
"SECN_15" VARCHAR2(88),
"SEC_REF_16" NUMBER,
"SECN_16" VARCHAR2(88),
"SEC_REF_17" NUMBER,
"SECN_17" VARCHAR2(88),
"SEC_REF_18" NUMBER,
"SECN_18" VARCHAR2(88),
"SEC_REF_19" NUMBER,
"SECN_19" VARCHAR2(88),
"SEC_REF_20" NUMBER,
"SECN_20" VARCHAR2(88),
"SEC_REF_21" NUMBER,
"SECN_21" VARCHAR2(88),
"SEC_REF_22" NUMBER,
"SECN_22" VARCHAR2(88),
"SEC_REF_23" NUMBER,
"SECN_23" VARCHAR2(88),
"SEC_REF_24" NUMBER,
"SECN_24" VARCHAR2(88),
"SEC_REF_25" NUMBER,
"SECN_25" VARCHAR2(88),
"SEC_REF_26" NUMBER,
"SECN_26" VARCHAR2(88),
"SEC_REF_27" NUMBER,
"SECN_27" VARCHAR2(88),
"SEC_REF_28" NUMBER,
"SECN_28" VARCHAR2(88),
"SEC_REF_29" NUMBER,
"SECN_29" VARCHAR2(88),
"SEC_REF_30" NUMBER,
"SECN_30" VARCHAR2(88),
"SEC_REF_31" NUMBER,
"SECN_31" VARCHAR2(88),
"SEC_REF_32" NUMBER,
"SECN_32" VARCHAR2(88),
"SEC_REF_33" NUMBER,
"SECN_33" VARCHAR2(88),
"SEC_REF_34" NUMBER,
"SECN_34" VARCHAR2(88),
"SEC_REF_35" NUMBER,
"SECN_35" VARCHAR2(88),
"SEC_REF_36" NUMBER,
"SECN_36" VARCHAR2(88),
"SEC_REF_37" NUMBER,
"SECN_37" VARCHAR2(88),
"SEC_REF_38" NUMBER,
"SECN_38" VARCHAR2(88),
"SEC_REF_39" NUMBER,
"SECN_39" VARCHAR2(88),
"SEC_REF_40" NUMBER,
"SECN_40" VARCHAR2(88),
"SEC_REF_41" NUMBER,
"SECN_41" VARCHAR2(88),
"SEC_REF_42" NUMBER,
"SECN_42" VARCHAR2(88),
"SEC_REF_43" NUMBER,
"SECN_43" VARCHAR2(88),
"SEC_REF_44" NUMBER,
"SECN_44" VARCHAR2(88),
"SEC_REF_45" NUMBER,
"SECN_45" VARCHAR2(88),
"SEC_REF_46" NUMBER,
"SECN_46" VARCHAR2(88),
"SEC_REF_47" NUMBER,
"SECN_47" VARCHAR2(88),
"SEC_REF_48" NUMBER,
"SECN_48" VARCHAR2(88),
"SEC_REF_49" NUMBER,
"SECN_49" VARCHAR2(88),
"SEC_REF_50" NUMBER,
"SECN_50" VARCHAR2(88),
"SEC_REF_51" NUMBER,
"SECN_51" VARCHAR2(88),
"SEC_REF_52" NUMBER,
"SECN_52" VARCHAR2(88),
"SEC_REF_53" NUMBER,
"SECN_53" VARCHAR2(88),
"SEC_REF_54" NUMBER,
"SECN_54" VARCHAR2(88),
"SEC_REF_55" NUMBER,
"SECN_55" VARCHAR2(88),
"SEC_REF_56" NUMBER,
"SECN_56" VARCHAR2(88),
"SEC_REF_57" NUMBER,
"SECN_57" VARCHAR2(88),
"SEC_REF_58" NUMBER,
"SECN_58" VARCHAR2(88),
"SEC_REF_59" NUMBER,
"SECN_59" VARCHAR2(88),
"SEC_REF_60" NUMBER,
"SECN_60" VARCHAR2(88),
"SEC_REF_61" NUMBER,
"SECN_61" VARCHAR2(88),
"SEC_REF_62" NUMBER,
"SECN_62" VARCHAR2(88),
"SEC_REF_63" NUMBER,
"SECN_63" VARCHAR2(88),
"SEC_REF_64" NUMBER,
"SECN_64" VARCHAR2(88),
"SEC_REF_65" NUMBER,
"SECN_65" VARCHAR2(88),
"SEC_REF_66" NUMBER,
"SECN_66" VARCHAR2(88),
"SEC_REF_67" NUMBER,
"SECN_67" VARCHAR2(88),
"SEC_REF_68" NUMBER,
"SECN_68" VARCHAR2(88),
"SEC_REF_69" NUMBER,
"SECN_69" VARCHAR2(88),
"SEC_REF_70" NUMBER,
"SECN_70" VARCHAR2(88),
"SEC_REF_71" NUMBER,
"SECN_71" VARCHAR2(88),
"SEC_REF_72" NUMBER,
"SECN_72" VARCHAR2(88),
"SEC_REF_73" NUMBER,
"SECN_73" VARCHAR2(88),
"SEC_REF_74" NUMBER,
"SECN_74" VARCHAR2(88),
"SEC_REF_75" NUMBER,
"SECN_75" VARCHAR2(88),
"SEC_REF_76" NUMBER,
"SECN_76" VARCHAR2(88),
"SEC_REF_77" NUMBER,
"SECN_77" VARCHAR2(88),
"SEC_REF_78" NUMBER,
"SECN_78" VARCHAR2(88),
"SEC_REF_79" NUMBER,
"SECN_79" VARCHAR2(88),
"SEC_REF_80" NUMBER,
"SECN_80" VARCHAR2(88),
"SEC_REF_81" NUMBER,
"SECN_81" VARCHAR2(88),
"SEC_REF_82" NUMBER,
"SECN_82" VARCHAR2(88),
"SEC_REF_83" NUMBER,
"SECN_83" VARCHAR2(88),
"SEC_REF_84" NUMBER,
"SECN_84" VARCHAR2(88),
"SEC_REF_85" NUMBER,
"SECN_85" VARCHAR2(88),
"SEC_REF_86" NUMBER,
"SECN_86" VARCHAR2(88),
"SEC_REF_87" NUMBER,
"SECN_87" VARCHAR2(88),
"SEC_REF_88" NUMBER,
"SECN_88" VARCHAR2(88),
"SEC_REF_89" NUMBER,
"SECN_89" VARCHAR2(88),
"SEC_REF_90" NUMBER,
"SECN_90" VARCHAR2(88),
"SEC_REF_91" NUMBER,
"SECN_91" VARCHAR2(88),
"SEC_REF_92" NUMBER,
"SECN_92" VARCHAR2(88),
"SEC_REF_93" NUMBER,
"SECN_93" VARCHAR2(88),
"SEC_REF_94" NUMBER,
"SECN_94" VARCHAR2(88),
"SEC_REF_95" NUMBER,
"SECN_95" VARCHAR2(88),
"SEC_REF_96" NUMBER,
"SECN_96" VARCHAR2(88),
"SEC_REF_97" NUMBER,
"SECN_97" VARCHAR2(88),
"SEC_REF_98" NUMBER,
"SECN_98" VARCHAR2(88),
"SEC_REF_99" NUMBER,
"SECN_99" VARCHAR2(88),
"SEC_REF_100" NUMBER,
"SECN_100" VARCHAR2(88),
"SEC_REF_101" NUMBER,
"SECN_101" VARCHAR2(88),
"SEC_REF_102" NUMBER,
"SECN_102" VARCHAR2(88),
"SEC_REF_103" NUMBER,
"SECN_103" VARCHAR2(88),
"SEC_REF_104" NUMBER,
"SECN_104" VARCHAR2(88),
"SEC_REF_105" NUMBER,
"SECN_105" VARCHAR2(88),
"SEC_REF_106" NUMBER,
"SECN_106" VARCHAR2(88),
"SEC_REF_107" NUMBER,
"SECN_107" VARCHAR2(88),
"SEC_REF_108" NUMBER,
"SECN_108" VARCHAR2(88),
"SEC_REF_109" NUMBER,
"SECN_109" VARCHAR2(88),
"SEC_REF_110" NUMBER,
"SECN_110" VARCHAR2(88),
"SEC_REF_111" NUMBER,
"SECN_111" VARCHAR2(88),
"SEC_REF_112" NUMBER,
"SECN_112" VARCHAR2(88),
"SEC_REF_113" NUMBER,
"SECN_113" VARCHAR2(88),
"SEC_REF_114" NUMBER,
"SECN_114" VARCHAR2(88),
"SEC_REF_115" NUMBER,
"SECN_115" VARCHAR2(88),
"SEC_REF_116" NUMBER,
"SECN_116" VARCHAR2(88),
"SEC_REF_117" NUMBER,
"SECN_117" VARCHAR2(88),
"SEC_REF_118" NUMBER,
"SECN_118" VARCHAR2(88),
"SEC_REF_119" NUMBER,
"SECN_119" VARCHAR2(88),
"SEC_REF_120" NUMBER,
"SECN_120" VARCHAR2(88),
"SEC_REF_121" NUMBER,
"SECN_121" VARCHAR2(88),
"SEC_REF_122" NUMBER,
"SECN_122" VARCHAR2(88),
"SEC_REF_123" NUMBER,
"SECN_123" VARCHAR2(88),
"SEC_REF_124" NUMBER,
"SECN_124" VARCHAR2(88),
"SEC_REF_125" NUMBER,
"SECN_125" VARCHAR2(88),
"SEC_REF_126" NUMBER,
"SECN_126" VARCHAR2(88),
"SEC_REF_127" NUMBER,
"SECN_127" VARCHAR2(88),
"SEC_REF_128" NUMBER,
"SECN_128" VARCHAR2(88),
"SEC_REF_129" NUMBER,
"SECN_129" VARCHAR2(88),
"SEC_REF_130" NUMBER,
"SECN_130" VARCHAR2(88),
"SEC_REF_131" NUMBER,
"SECN_131" VARCHAR2(88),
"SEC_REF_132" NUMBER,
"SECN_132" VARCHAR2(88),
"SEC_REF_133" NUMBER,
"SECN_133" VARCHAR2(88),
"SEC_REF_134" NUMBER,
"SECN_134" VARCHAR2(88),
"SEC_REF_135" NUMBER,
"SECN_135" VARCHAR2(88),
"SEC_REF_136" NUMBER,
"SECN_136" VARCHAR2(88),
"SEC_REF_137" NUMBER,
"SECN_137" VARCHAR2(88),
"SEC_REF_138" NUMBER,
"SECN_138" VARCHAR2(88),
"SEC_REF_139" NUMBER,
"SECN_139" VARCHAR2(88),
"SEC_REF_140" NUMBER,
"SECN_140" VARCHAR2(88),
"SEC_REF_141" NUMBER,
"SECN_141" VARCHAR2(88),
"SEC_REF_142" NUMBER,
"SECN_142" VARCHAR2(88),
"SEC_REF_143" NUMBER,
"SECN_143" VARCHAR2(88),
"SEC_REF_144" NUMBER,
"SECN_144" VARCHAR2(88),
"SEC_REF_145" NUMBER,
"SECN_145" VARCHAR2(88),
"SEC_REF_146" NUMBER,
"SECN_146" VARCHAR2(88),
"SEC_REF_147" NUMBER,
"SECN_147" VARCHAR2(88),
"SEC_REF_148" NUMBER,
"SECN_148" VARCHAR2(88),
"SEC_REF_149" NUMBER,
"SECN_149" VARCHAR2(88),
"SEC_REF_150" NUMBER,
"SECN_150" VARCHAR2(88),
"SEC_REF_151" NUMBER,
"SECN_151" VARCHAR2(88),
"SEC_REF_152" NUMBER,
"SECN_152" VARCHAR2(88),
"SEC_REF_153" NUMBER,
"SECN_153" VARCHAR2(88),
"SEC_REF_154" NUMBER,
"SECN_154" VARCHAR2(88),
"SEC_REF_155" NUMBER,
"SECN_155" VARCHAR2(88),
"SEC_REF_156" NUMBER,
"SECN_156" VARCHAR2(88),
"SEC_REF_157" NUMBER,
"SECN_157" VARCHAR2(88),
"SEC_REF_158" NUMBER,
"SECN_158" VARCHAR2(88),
"SEC_REF_159" NUMBER,
"SECN_159" VARCHAR2(88),
"SEC_REF_160" NUMBER,
"SECN_160" VARCHAR2(88),
"SEC_REF_161" NUMBER,
"SECN_161" VARCHAR2(88),
"SEC_REF_162" NUMBER,
"SECN_162" VARCHAR2(88),
"SEC_REF_163" NUMBER,
"SECN_163" VARCHAR2(88),
"SEC_REF_164" NUMBER,
"SECN_164" VARCHAR2(88),
"SEC_REF_165" NUMBER,
"SECN_165" VARCHAR2(88),
"SEC_REF_166" NUMBER,
"SECN_166" VARCHAR2(88),
"SEC_REF_167" NUMBER,
"SECN_167" VARCHAR2(88),
"SEC_REF_168" NUMBER,
"SECN_168" VARCHAR2(88),
"SEC_REF_169" NUMBER,
"SECN_169" VARCHAR2(88),
"SEC_REF_170" NUMBER,
"SECN_170" VARCHAR2(88),
"SEC_REF_171" NUMBER,
"SECN_171" VARCHAR2(88),
"SEC_REF_172" NUMBER,
"SECN_172" VARCHAR2(88),
"SEC_REF_173" NUMBER,
"SECN_173" VARCHAR2(88),
"SEC_REF_174" NUMBER,
"SECN_174" VARCHAR2(88),
"SEC_REF_175" NUMBER,
"SECN_175" VARCHAR2(88),
"SEC_REF_176" NUMBER,
"SECN_176" VARCHAR2(88),
"SEC_REF_177" NUMBER,
"SECN_177" VARCHAR2(88),
"SEC_REF_178" NUMBER,
"SECN_178" VARCHAR2(88),
"SEC_REF_179" NUMBER,
"SECN_179" VARCHAR2(88),
"SEC_REF_180" NUMBER,
"SECN_180" VARCHAR2(88),
"SEC_REF_181" NUMBER,
"SECN_181" VARCHAR2(88),
"SEC_REF_182" NUMBER,
"SECN_182" VARCHAR2(88),
"SEC_REF_183" NUMBER,
"SECN_183" VARCHAR2(88),
"SEC_REF_184" NUMBER,
"SECN_184" VARCHAR2(88),
"SEC_REF_185" NUMBER,
"SECN_185" VARCHAR2(88),
"SEC_REF_186" NUMBER,
"SECN_186" VARCHAR2(88),
"SEC_REF_187" NUMBER,
"SECN_187" VARCHAR2(88),
"SEC_REF_188" NUMBER,
"SECN_188" VARCHAR2(88),
"SEC_REF_189" NUMBER,
"SECN_189" VARCHAR2(88),
"SEC_REF_190" NUMBER,
"SECN_190" VARCHAR2(88),
"SEC_REF_191" NUMBER,
"SECN_191" VARCHAR2(88),
"SEC_REF_192" NUMBER,
"SECN_192" VARCHAR2(88),
"SEC_REF_193" NUMBER,
"SECN_193" VARCHAR2(88),
"SEC_REF_194" NUMBER,
"SECN_194" VARCHAR2(88),
"SEC_REF_195" NUMBER,
"SECN_195" VARCHAR2(88),
"SEC_REF_196" NUMBER,
"SECN_196" VARCHAR2(88),
"SEC_REF_197" NUMBER,
"SECN_197" VARCHAR2(88),
"SEC_REF_198" NUMBER,
"SECN_198" VARCHAR2(88),
"SEC_REF_199" NUMBER,
"SECN_199" VARCHAR2(88),
"SEC_REF_200" NUMBER,
"SECN_200" VARCHAR2(88),
"SEC_REF_201" NUMBER,
"SECN_201" VARCHAR2(88),
"SEC_REF_202" NUMBER,
"SECN_202" VARCHAR2(88),
"SEC_REF_203" NUMBER,
"SECN_203" VARCHAR2(88),
"SEC_REF_204" NUMBER,
"SECN_204" VARCHAR2(88),
"SEC_REF_205" NUMBER,
"SECN_205" VARCHAR2(88),
"SEC_REF_206" NUMBER,
"SECN_206" VARCHAR2(88),
"SEC_REF_207" NUMBER,
"SECN_207" VARCHAR2(88),
"SEC_REF_208" NUMBER,
"SECN_208" VARCHAR2(88)
);Thank you for any help/advice.
Elie
Edited by: EEG on Jun 12, 2011 2:09 PMSo, is there some limit to the number of columns one can have in a "classic" or interactive report?Yes. See Oracle® Application Express Application Builder User's Guide Release 4.0, Appendix B: Oracle Application Express Limits.
Any idea why I would be getting this error?No, but I've replicated it in APEX 4.0.2.00.07 on 11.2.0.1.0 EE using a table of 420 <tt>varchar2(88)</tt> columns:
>
ORA-20503: Current version of data in database has changed since user initiated update process. current checksum = "50C9BDC0AA1AEF0EB272E9158B2117B4" application checksum = "0"
>
Happens whether using <tt>select *</tt> or including all column names in the query. (I know you don't want to type all the column names, but I'd never use <tt>select *</tt> in a production application: always use a proper column list. You can get one without typing by drag-and-drop of a table in most IDEs, or a query from <tt>user_tab_columns</tt>.)
I hit the problem at 274 columns. Such an arbitrary number leads me to think that the problem is not one of the number of columns per se, but is due to some other limit (possibly a 32K VARCHAR2/RAW buffer somewhere).
Workaround:
Updates to the report column attributes are actually being saved, and you can navigate them using the Page Definition tree view as described in Appendix B.
Getting More Help:
This is probably a bug. If you have a support agreement with Oracle raise an SR with Oracle Support.
Also:
<li>Search the forum using the "ORA-20503" code and other possible terms to see if there's anything relevant. I had a quick look but the only thread in this context recommended an upgrade on an Oracle 9 DB version that's not compatible with APEX 4.0.
<li>To get the attention of the Oracle APEX team or anyone else who may know more about this problem than we do, edit your original post and change the Subject to be more specific about the actual nature of the problem: <em>BUG? APEX 4.0: ORA-20503 error editing report with 400+ columns</em>, and include your database version/edition and the definition of the <tt>PVTAB</tt> table.
Finally:
Somebody's bound to ask, so we might as well get started:
<li>Why so many columns?
<li>What requirement is this trying to fulfil? -
Interactive Report with PL/SQL Function Source
Is it possible to create interactive report with PL/SQL function source returing a query? If not, has anyone done any work to simulate the interactive reporting feature for a normal report using API?
I haven't tried that before but you could:
1. create a collection from your result set returned by a dynamic query,
2. create a view on that collection,
3. use the view in your interactive report.
The usability of this proposal depends from a question how "dynamic" your query is - does it always have the same number of columns or not.
Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.opal-consulting.de/training
http://apex.oracle.com/pls/otn/f?p=31517:1
------------------------------------------------------------------- -
Report with multiplying columns and WITH clause
Hello
I saw sth strange in my report. I assume that it could happens very often.
I have report with few columns which two of them ar most complicated (many joins subqueries aggreagations on joined values etc.) These two columns (i.e C3,C4) should be multiplied (C3*C4).
When i do pure report without multiplying only columns C1,C2,C3,C4 everything is ok - duration about 15 sec. but... when I put next column on report which multiply these columns (in Answers C5=C3*C4)
I wait 3-4 minutes and my database hungs :(. After investigation I saw that in first case to databese goes pure "SELECT" statement it means:
"Select ... as C1, ... as C2, max(...) as C3, sum(xxx)... C4 from yyy,sss,ttt WHERE aaa"
but in second case BI uses WITH clause it means:
WITH SAWITH0 AS
( Select ... as C1, ... as C2, max(...) as C3, sum(xxx)... C4 from yyy,sss,ttt WHERE aaa )
SELECT SAWITH0.C1 as C1,
SAWITH0.C2 as C2,
SAWITH0.C3 as C3,
SAWITH0.C4 as C4,
SAWITH0.C3*SAWITH0.C4 as C5 FROM SSS
and this statement is long runninq query and kills my database :(.
I checked that SQL like this:
Select ... as C1, ... as C2, max(...) as C3, sum(xxx)... C4, max(...)*sum(xxx)... As C5 from yyy,sss,ttt WHERE aaa" -
runs few times faster than that above
I know that I can do this multiply in business model layer but sometimes users can multiply(or other operations) on columns in reports without my knowledge and it kills my db :(. Where is bug? Why SQLs with WITH clause takes so much db time?
Thank you for each kind of helpWITH clause or Subquery Factoring allows the set of data to be reused multiple times within the SQL. Oracle will usually materialize the data into a temporary table (you will see it if you take an explain plan of the SQL).
I would be surprised if it was the actual WITH clause that was causing the performance issue, however you can test this by turning the WITH clause feature off. Go to the Physical model, right mouse click on your Database > Properties > Features Tab, scroll down to WITH_CLAUSE_SUPPORTED and switch it off.
I'd be interested to know if you do see actual improvement.
Good Luck. -
Interactive Report with union all in the query
I have an interactive report with the following query in the report region:
select property,saddr1,upostdate,sotherdate1,journal_control-1000000000,account,sdesc,uref,
suserdefined1,trans_notes,samount,detail_notes
from journal_entries
union all
select property,saddr1,upostdate,sotherdate1,journal_control-700000000,account,sdesc,uref,
suserdefined1,trans_notes,stotalamount,detail_notes
from charge_entries;
This gets translated as listed below during runtime. I am trying to pass a value to both SELECT statements instead of the just the bottom select statement. Is this possible using interactive reports.
select
PROPERTY,
SADDR1,
UPOSTDATE,
SOTHERDATE1,
ACCOUNT,
SDESC,
UREF,
SUSERDEFINED1,
TRANS_NOTES,
SAMOUNT,
DETAIL_NOTES,
"JOURNAL_CONTROL-1000000000" "JOURNAL_CONTROL-1000000000"
from (
select property,saddr1,upostdate,sotherdate1,journal_control-1000000000,account,sdesc,uref,
suserdefined1,trans_notes,samount,detail_notes
from journal_entries
union all
select property,saddr1,upostdate,sotherdate1,journal_control-700000000,account,sdesc,uref,
suserdefined1,trans_notes,stotalamount,detail_notes
from charge_entries
) r
where ("PROPERTY" = :APXWS_EXPR_1)
0.14: IR binding: ":APXWS_EXPR_1"="APXWS_EXPR_1" value="prop1"
Thanks for any help,
JimThe bottom query is actually the third query, it encompasses the two that are unioned. It is generated by APEX to allow for the search facility - to achieve what you want ignore the larger query, and get your query working in something like SQL developer. Once it's working then put it into APEX, and the search wrapper will be generated.
select property,saddr1,upostdate,sotherdate1,journal_control-1000000000,account,sdesc,uref,
suserdefined1,trans_notes,samount,detail_notes
from journal_entries
where property = :YOUR_CRITERIA
union all
select property,saddr1,upostdate,sotherdate1,journal_control-700000000,account,sdesc,uref,
suserdefined1,trans_notes,stotalamount,detail_notes
from charge_entries
where property = :YOUR_CRITERIA;
Then you need to think about how you are using the report, if it is linked to from another report, then create a hidden variable and pass it from the parent.
If the report is standalone , then you could create an item , that can be edited and when submitted, re-executes the report based on the criteria entered.
Steve
Hot and bothered in sunny Dubai -
Interactive Report with specific rows editable
I have an interactive reports, with the edit (pencil) link to a maintenance form. I only want the link to show for specific records in the reports. Can you put a condition in the link column to the pencil for certain records?
If so, how can you access the value of the field? ie. I need to check the value of 'USER_NAME' in the select below against :APP_USER
select A.pk_id as "PK_ID",
A.fk_sis_user as "FK_SIS_USER",
A.list_name as "LIST_NAME",
A.list_description as "LIST_DESCRIPTION",
B.user_name as "USER_NAME",
A.creation_date as "CREATION_DATE"Not exactly what you are asking for, but it may give you an idea hot to create conditional
icon and link.
From always excellent examples from Denes Kubicek:
http://apex.oracle.com/pls/otn/f?p=31517:23:3086073313243153::NO
HTH
Thomas -
BO xi 3.1 u2013 schedule a template for multiple reports with different column
Hi,
I need to migrate the existing reports from SQL Server Reporting Services to BO, and the column order in the report is very important to the clients since clients have existing code to ingest these reports into their database. Now I want to schedule a single template with different parameters for all reports in BO, or create a single template with lot of parameters for all reports. My question is how I might use one template to create multiple reports with different column orders in the reports?
For example, client A has the following column order in their report: firstName, LastName, DateBirth, SSN. Client B has the following column order in their report: SSN, DateBirth, LastName, FirstName. Can I use one template to create these multiple reports?
Thanks!Hi,
The only approach I can think of is to create a template report which uses variables
For each column you would need to variable
v_columnAName and v_columnAValue
v_columnAName would have a if statement in it
=if([client]="clientA" or [client]="clientC";NameOf([firstName]);if([client]="clientB";NameOf([SSN]);NameOf([lastName]));
v_columnA would have a if statement in it
=if([client]="clientA" or [client]="clientC";[firstName];if([client]="clientB";[SSN],[lastName]));
This would only work when you had a small set of clients.
This might be more managable if it was done in the universe
Regards
Alan -
Change source (sql) of interactive report based on column value?
I've got an Interactive report displaying 10 columns. What I'd like to do is show different columns depending on the value of the first column. All the rows in the result will have the same value in the first column.
If value in column 1 (on any row) = 'aaaa' then
display columns 1,2,3,4, 9, 10
If value in column 1 (on any row) = 'bbbb' then
display columns 1,2,3,4, 7, 8
If value in column 1 (on any row) = 'cccc' then
display columns 1,2,3,4, 5, 6
Should i somehow make the sql query dynamically change or can I use apex to dynamically hide the columns I don't want in the interactive report?
Appreciate if you could point me in the right direction...
/AHello Andy,
You can solve that in your SQL query:
select col1, col2, col3, col4
, case col1
when 'aaaa' then col9
when 'bbbb' then col7
when 'cccc' then col5
end newcol5
from tableYou may have to use to_char or to_number conversions when the datatypes of the col5,7 and 9 are different.
Greetings,
Roel
http://roelhartman.blogspot.com/
You can reward this reply by marking it as either Helpful or Correct ;-) -
Sparse table with many columns
Hi,
I have a table that contains around 800 columns. The table is a sparse table such that many rows
contain up to 50 populated columns (The others contain NULL).
My questions are:
1. Table that contains many columns can cause a performance problem? Is there an alternative option to
hold table with many columns efficiently?
2. Does a row that contains NULL values consume storage space?
Thanks
dyahav[NULLs Indicate Absence of Value|http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10743/schema.htm#sthref725]
A null is the absence of a value in a column of a row. Nulls indicate missing, unknown, or inapplicable data. A null should not be used to imply any other value, such as zero. A column allows nulls unless a NOT NULL or PRIMARY KEY integrity constraint has been defined for the column, in which case no row can be inserted without a value for that column.
Nulls are stored in the database if they fall between columns with data values. In these cases they require 1 byte to store the length of the column (zero).
Trailing nulls in a row require no storage because a new row header signals that the remaining columns in the previous row are null. For example, if the last three columns of a table are null, no information is stored for those columns. In tables with many columns, the columns more likely to contain nulls should be defined last to conserve disk space.
Most comparisons between nulls and other values are by definition neither true nor false, but unknown. To identify nulls in SQL, use the IS NULL predicate. Use the SQL function NVL to convert nulls to non-null values.
Nulls are not indexed, except when the cluster key column value is null or the index is a bitmap index.>
My guess for efficiently storing this information would be to take any columns that are almost always null and place them at the end of the table definition so they don't consume any space.
HTH! -
Hi,
i just wanted to know how to create interactive reports with check box and whether we can use av with interactive reports.hi,
this the code for interactiv ALV
*& Report ZINT_ALV
REPORT zint_alv.
TYPE-POOLS:slis.
TABLES:mara,
makt,
mseg.
DATA:BEGIN OF itab OCCURS 0,
matnr LIKE mara-matnr,
maktx LIKE makt-maktx,
END OF itab.
DATA:BEGIN OF itab1 OCCURS 0,
mblnr LIKE mseg-mblnr,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
werks LIKE mseg-werks,
END OF itab1.
DATA:BEGIN OF itab2 OCCURS 0,
mblnr LIKE mseg-mblnr,
budat LIKE mkpf-budat,
END OF itab2.
DATA:fcat TYPE slis_t_fieldcat_alv,
fcat1 TYPE slis_t_fieldcat_alv,
fcat2 TYPE slis_t_fieldcat_alv,
eve TYPE slis_t_event,
eve1 TYPE slis_t_event.
DATA:t_mat LIKE mara-matnr,
t_doc LIKE mseg-mblnr,
s_mat LIKE mara-matnr,
g_repid LIKE sy-repid,
subtot TYPE slis_t_sortinfo_alv,
g_subtot LIKE LINE OF subtot.
SELECTION-SCREEN:BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:mat FOR mara-matnr OBLIGATORY.
SELECTION-SCREEN:END OF BLOCK blk1.
INITIALIZATION.
PERFORM build_fcat USING fcat.
PERFORM build_eve.
START-OF-SELECTION.
PERFORM get_data.
PERFORM dis_data.
*& Form build_fcat
text
-->T_FCAT text
FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.
DATA:wa_fcat TYPE slis_fieldcat_alv.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MATNR'.
wa_fcat-ref_fieldname = 'MATNR'.
wa_fcat-ref_tabname = 'MARA'.
wa_fcat-seltext_m = 'Material'.
wa_fcat-input = ' '.
wa_fcat-edit = 'X'.
wa_fcat-input = 'X'.
wa_fcat-key = 'X'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
wa_fcat-tabname = 'ITAB'.
wa_fcat-fieldname = 'MAKTX'.
wa_fcat-seltext_m = 'Description'.
APPEND wa_fcat TO t_fcat.
CLEAR wa_fcat.
ENDFORM. "build_fcat
*& Form build_eve
text
FORM build_eve.
DATA:t_eve TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "build_eve
*& Form get_data
text
FORM get_data.
SELECT maramatnr maktmaktx INTO CORRESPONDING FIELDS OF TABLE itab
FROM mara INNER JOIN makt
ON maramatnr = maktmatnr
WHERE mara~matnr IN mat.
ENDFORM. "get_data
*& Form dis_data
text
FORM dis_data.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND'
i_grid_title = 'Interactive ALV'
it_fieldcat = fcat
it_events = eve
TABLES
t_outtab = itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "dis_data
*& Form user_command
text
-->U_COM text
FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.
CLEAR fcat1.
CASE u_com.
WHEN '&IC1'.
READ TABLE itab INDEX sel_field-tabindex.
IF sel_field-fieldname = 'MATNR'.
IF sy-subrc = 0.
t_mat = itab-matnr.
PERFORM build_cat1 USING fcat1.
PERFORM build_eve1.
PERFORM get_data1.
PERFORM dis_data1.
ENDIF.
ENDIF.
SET PARAMETER ID 'MAT' FIELD t_mat.
CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM. "user_command
*& Form build_fcat1
text
-->T_FCAT1 text
FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.
DATA:wa_fcat1 TYPE slis_fieldcat_alv.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MBLNR'.
wa_fcat1-seltext_m = 'Material Doc.'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MENGE'.
wa_fcat1-seltext_m = 'Quantity'.
wa_fcat1-do_sum = 'X'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'MEINS'.
wa_fcat1-seltext_m = 'UOM'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
wa_fcat1-tabname = 'ITAB1'.
wa_fcat1-fieldname = 'WERKS'.
wa_fcat1-seltext_m = 'Plant'.
APPEND wa_fcat1 TO t_fcat1.
CLEAR wa_fcat1.
g_subtot-spos = 1.
g_subtot-fieldname = 'MBLNR'.
g_subtot-tabname = 'ITAB1'.
g_subtot-up = 'X'.
g_subtot-group = 'X'.
g_subtot-subtot = 'X'.
g_subtot-expa = 'X'.
APPEND g_subtot TO subtot.
g_subtot-spos = 2.
g_subtot-fieldname = 'MENGE'.
g_subtot-tabname = 'ITAB1'.
g_subtot-up = 'X'.
g_subtot-group = 'X'.
g_subtot-subtot = 'X'.
g_subtot-expa = 'X'.
APPEND g_subtot TO subtot.
ENDFORM. "build_fcat1
*& Form build_eve1
text
FORM build_eve1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = eve1
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "build_eve1
*& Form get_data1
text
FORM get_data1.
SELECT mblnr menge meins werks FROM mseg
INTO CORRESPONDING FIELDS OF TABLE itab1
WHERE matnr = t_mat.
ENDFORM. "get_data1
*& Form dis_data1
text
FORM dis_data1.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
i_callback_user_command = 'USER_COMMAND1'
it_fieldcat = fcat1
it_events = eve1
i_save = 'A'
it_sort = subtot
TABLES
t_outtab = itab1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "dis_data1
*& Form user_command1
text
-->U_COM1 text
-->SEL_FIELD text
FORM user_command1 USING u_com1 LIKE sy-ucomm sel_field TYPE slis_selfield.
CASE u_com1.
WHEN '&IC1'.
READ TABLE itab1 INDEX sel_field-tabindex.
IF sy-subrc = 0.
t_doc = itab1-mblnr.
PERFORM build_cat2 USING fcat2.
PERFORM get_data2.
PERFORM dis_data2.
ENDIF.
ENDCASE.
ENDFORM. "user_command
*& Form build_cat2
text
-->P_FCAT1 text
FORM build_cat2 USING t_fcat2 TYPE slis_t_fieldcat_alv.
DATA:wa_fcat2 TYPE slis_fieldcat_alv.
wa_fcat2-tabname = 'ITAB2'.
wa_fcat2-fieldname = 'MBLNR'.
wa_fcat2-seltext_m = 'Material Doc.'.
APPEND wa_fcat2 TO t_fcat2.
CLEAR wa_fcat2.
wa_fcat2-tabname = 'ITAB2'.
wa_fcat2-fieldname = 'BUDAT'.
wa_fcat2-seltext_m = 'Material Date'.
APPEND wa_fcat2 TO t_fcat2.
CLEAR wa_fcat2.
ENDFORM. " build_cat2
*& Form get_data2
text
--> p1 text
<-- p2 text
FORM get_data2 .
SELECT mblnr budat FROM mkpf
INTO CORRESPONDING FIELDS OF TABLE itab2
WHERE mblnr = t_doc.
ENDFORM. " get_data2
*& Form dis_data2
text
--> p1 text
<-- p2 text
FORM dis_data2 .
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid "'ZINT_ALV'
it_fieldcat = fcat2
i_save = 'A'
TABLES
t_outtab = itab2
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " dis_data2
reward if useful... -
Can i have a sample BSP INTERACTIVE Reports with step by step.
Hi Friends,
Can i have a sample BSP INTERACTIVE Reports with step by step.
MoosaHello,
Please find the sample Code below.
FIRST PAGE
Layout Code.
<htmlb:label for="emp" text="Employee id" width="10"/>
<htmlb:inputField id="emp" value="<%= w_input1%>"/>
<p>
<htmlb:label for="Employee Details"/>
<htmlb:button id = 'get'
text = 'Display'
on Click = 'OnInput Processing' /> <p>
<h1>Employee Details</h1>
<htmlb:tableView id="Employee"
table="<%= ZTABLE%>" <- Give the table name
selectionMode = "lineEdit"
design="ALTERNATING">
ONINITILIZATION EVENT.
data:
fs_yhtable like line of TABLE.
select * from yhtable into table ZTABLE.
ONINPUT PROCESSING CODE:
* event handler for checking and processing user input and
* for defining navigation
class cl_htmlb_manager definition load.
case event_id.
when cl_htmlb_manager=>event_id.
data: event type ref to if_htmlb_data,
fs_yhtable like line of t_yh1205,
selrow type ref to cl_htmlb_tableview.
event = cl_htmlb_manager=>get_event_ex( request ).
selrow ?= cl_htmlb_manager=>get_data( request = request
name = 'tableView'
id = 'Employee' ).
data: tv_data type ref to cl_htmlb_event_tableview,
t_tab type int4_table.
* tv_data1 type ref to cl_htmlb_event_tableview.
tv_data = selrow->data.
t_tab = selrow->selectedrowindextable.
if event is not initial
and event->event_name = 'tableView'.
w_int = tv_data->rowselection.
navigation->set_parameter( 'Employee' ).
navigation->set_parameter( name = 'w_int'
value = w_int ).
navigation->set_parameter( name = 'table'
value = table ).
navigation->goto_page( 'second.htm' ).
endif.
endcase.
SECOND PAGE CODE:
LAYOUT CODE:-
<htmlb:content design="design2003">
<htmlb:page title = "Employee Details">
<htmlb:form>
<h1>Employee Details</h1>
<htmlb:tableView id="Employee"
table="<%= t_yh1205%>"
selectionMode = "lineEdit"
design="ALTERNATING">
</htmlb:tableView>
</htmlb:form>
</htmlb:page>
</htmlb:content>
Hope this is helpful.Let me know if you need any more help.
Thanks
kalyan
Maybe you are looking for
-
My sounds and audio is not working. it's not in mute. help please
i need help. my sounds and audio is not working. but it's not in mute button.
-
App Error 523 reset - Curve 8320
Hey there. My BB curve is showing the app error 523 reset screen over and over. I cant get it to do much. Every now and then when I do a battery reset it will eventually load the main screen on the phone and say something about exception 3 error...so
-
Where's my windows vista bootable cd rom?
i got a lenovo g550 laptop last week with genuine windows vista home basic... since i need nearly 3 partitions to split up my work i tried to format it..but found my vista bootable dvd missing.. when i asked my dealer he said tht there is backup in m
-
In iTunes, how do I switch to an Ipod nano from and old ipod that doesn't work any more
in iTunes on your computer, how do I switch to an Ipod nano from and old ipod that doesn't work any more? It has all the folders and songs I had on my old ipod, but does not recognize my ipod nano and cannot sync with it?
-
Will photos be lost during update?
OS X 10.9.2 is not compatible with my iPhoto 9.2.1, which version should I upgrade to? Also, I have read lots of threads where people have lost their photo's. Is this bound to happen?