Pass column names dynamically in report
Hello experts,
I am creating an ALV report where i need to pass the column names dynamically. if the current month is March and year is 2009. the column names should be as below
March 2009 April 2009 May 2009 June 2009 ..............till Feb 2010 (total columns are 12)
if the current month is June and year is 2010 it shoud be displayed as
June 2010 July 2010 Aug 2010................till May2011
I am actually calculating the forecast qty for each month and displaying in a report from the current month.
How to write field catelog for this requirement?
Thanks in Advance.
Rajesh.
I think in the fieldcat, at the time of declearation, you can alter the field description depending on the present month.
If present_month = January
wa_fieldcat-reptext_ddic = 'January'. " Field description
elseif present month = February.
wa_fieldcat-reptext_ddic = 'February'. " Field description
on so on.....................
Kuntal
Similar Messages
-
Execute immediate with using clause to pass column name dynamically
Hai,
Is there any way using execute immeidate to pass the column name dynamically. I used to pass the column value as dynamic with the help of "Using clause" . But if i use to pass column name, it is giving numberic error at run time. Eg,. for testing has been given below.
1. Column value as dynamic, which is working correctly.
create or replace function testexeimm (acctnum char)
return number as
acctbal number;
begin
execute immediate 'select balance from acct_master where acct_no=:a' into acctbal using acctnum;
return acctbal;
end;
2. Column name as dynamic which is not working
create or replace function testexeimm (colnam char)
return char as
acctbal char;
begin
execute immediate 'select :a from ch_acct_mast where rownum=1' into acctbal using colnam;
return acctbal;
end;
Any help in this regard will be highly appericated.
Regards
SridharSo the variable has to be numeric too:
create or replace function testexeimm (colnam char)
return number as
acctbal number;
begin
execute immediate 'select '|||colnam||' from ch_acct_mast where rownum=1' into acctbal;
return acctbal;
end;Max
http://oracleitalia.wordpress.com -
Pass column-name as a parameter to reports
Hello,
the code below calls a report. But now I want to sort the rows in the report. For example I have a text-item in my form-modul. If I type a column-name and press the button then the rows should be sorted in the report. Is it possible tp pass column-names as parameter to reports?
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
BEGIN
repid := find_report_object('STATIONSTOPOLOGIE');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,RUNTIME);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'html');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'rep_oracle-dev');
-- SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no pdeptno='||:dept.deptno);
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := REPORT_OBJECT_STATUS(v_rep);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
rep_status := report_object_status(v_rep);
END LOOP;
IF rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('http://oracle-dev:8888/reports/rwservlet/getjobid'||
substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=rep_oracle-dev','_blank');
ELSE
message('Error when running report');
END IF;
END;Hi,
the work has been done in reports. You can use a lexical parameter in reports to add a condition for sorting to the query like:
select .. from .. where ... &p_order.
Then add another parameter to the report (for example p_param). Fill p_param via your interface in forms (SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER, ....) with the column name. Then build a report trigger like:
if :p_param is null
then
:p_order:= null;
else
:p_order:= 'order by '||:p_param;
end if;
But have a look, that p_param can only get correct values.
Rainer -
How to pass column name as a values from one page to another
hi
i have created a report(pivot) from a table
SQL> SELECT * FROM T;
C1 C2 C3 D SEQ
A AA 2 1
A AB 3 2
A AC 2 3
B AB 5 4
B AC 6 5
SQL> SELECT C1
2 ,NVL(MAX(CASE WHEN C2='AA' THEN C3 END),'') AA
3 ,NVL(MAX(CASE WHEN C2='AB' THEN C3 END),'') AB
4 ,NVL(MAX(CASE WHEN C2='AC' THEN C3 END),'') AC
5 ,SUM(C3) FROM T GROUP BY C1;
C1 AA AB AC SUM(C3)
A 2 3 2 7
B 5 6 11
SQL>
my requirement in Apex is like this(reverse)
eg-
when i click on cell values '2' then,it should return
C1 C2 C3 D SEQ
A AA 2 1
{quote}how to pass column name as a values from one page to another
for example i have to pass 'c2' as a value to next page{quote}for report pivot you can reffer below link
Report
Amuthanks for your reply
i 'm doing what exactly you mention here .
my problem here is
i have 15 columns
i am executing a query based on the values of the column(column name) in the target page
1)here i am passing(all) the column values to the next page-but i want to pass only one column values(column name)
when i click on any cell of that column
OR
2)i can pass all column name to target page -there(in the target page) i can filter out
i think option 1 would good if you filter out the unwanted columns
Regards
Amul -
How to pass column name at run time in function.
how to pass column name at run time in function as parameter.
thank in advance
pramod patelHello,
Using dynamic sql you can pass column name to function. well I am not getting what you really want to do ? Please write in more detail. By the way I am providing one example here. see it uses dynamic sql.
Create or replace function fun_updtest (p_columnname_varchar2 in varchar2,
p_value_number in number)
return number is
v_stmt varchar2(500);
begin
v_stmt := 'update emp
set '||p_columnname_varchar2||' = '||to_char(p_value_number)||'
where empno = 7369';
execute immediate v_stmt;
return 0;
commit;
end;
call to this function can be like this..
declare
v_number number;
begin
v_number := fun_updtest('SAL',5000);
end;
Adinath Kamode -
HTML DB Chang column name dynamically
Can I change the column name dynamically. for instance
Today run my apply it will display the title of the columns this
Column title: Wed Thu Fri
04/22/05 04/23/05 04/24/05
Data 45 34 34
54 56 23
Next week
Column title: Wed Thu Fri
05/03/05 05/04/05 05/05/05
45 34 34
54 56 23
The date Change Dynamically?Go to your report and open report atributes. There you can choose the options for column names. Click on the pl/sql function and type this in:
DECLARE v varchar2(20);
begin
v := to_char(SYSDATE, 'dd.mm.yy')||':'||to_char(SYSDATE+1, 'dd.mm.yy');
RETURN v;
END;
This will set the first two columns to the specified dates. You can use this as one option.
If the case is more complicated than you can do the following:
1. create a number of items on your page - hidden
2. compute the items with values once the page is loaded
3. use item substitute string &ITEM. in the column name, which will use the item value as a name for the column.
This way you are more flexible since you can use the item values for some columns only and have the other columns hardcoded.
Denes Kubicek -
Passing Column name(String) in setting CallableStatement
Is it possible to pass Column Name while setting the CallableStatement while using drivers for JDK 1.4, if yes how do I do it.
Thanks!You don't necessarily need to use dynamic SQL;
create or replace procedure p
p_a number default null,
p_b number default null,
p_c number default null
) is
begin
insert into t
values
(p_a, p_b, p_c);
end;
Procedure createdUsing named notation;
exec p(p_a =>1, p_c => 3);
PL/SQL procedure successfully completed
exec p(p_b =>20, p_c => 30);
PL/SQL procedure successfully completedPassing NULLs;
exec p(4, null, 6);
PL/SQL procedure successfully completed
exec p(40, 50, null);
PL/SQL procedure successfully completed
select * from t;
A B C
1 3
20 30
4 6
40 50 -
Getting the column names dynamically
hi gurus,
i have list item populated with many table names from a schema.
i have grid in oracle forms 10g and i want to fill the grid with the data that should come at least four/more columns.
i want to fire the list change trigger when each time any one table name is selected/changed.
how can i get the column names dynamically
please give me the step by step process
for filling the grid..hi ,
by getting column names dynamically i am creating a record group
using this below query
SELECT COLUMN_NAME, DATA_TYPE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = <table_name>
but when timestamp datatype is there then it is showing error cannot create group groupname
but the record group is running successful on varchar2,number,date dayatypes
if any alternative is there i mean to say without using record group then tell me or where is the problem -
Column names dynamically in Dynamic SQL
Hi All,
We can use Table Name dynamically in Dynamic SQL.
Can we use column names dynamically?
Thanks,
UmasankarHi Todd Barry,
Thanks lot for your immediate response.
Could you please tell me, how can we use column name dynamically?
I tried but, I didnt get the correct result.
Here is my coding.
Declare
SQL_String Varchar2(2000);
Category varchar2(50):= 'ELECTRO_PLATING_413';
Type ConstCurTyp is REF CURSOR;
Const_Cv ConstCurTyp;
vLab_name varchar2(80);
Begin
Execute Immediate 'Truncate table tto_lab_names';
dbms_output.put_line(category);
dbms_output.put_line(' ');
SQL_String := 'Select lab_name from tto_constituents where :category is not null';
Open Const_cv for SQL_String using category;
Loop
Fetch Const_Cv into vLab_Name;
Exit When Const_Cv%NotFound;
Insert into lab_names values(vLab_name);
End Loop;
Commit;
Close Const_Cv;
End;
I am getting all the lab_names as result.
Thanks,
Umasankar
null -
Dynamic Column Name on Interactive Report
Hi all,
Is it possible to assign a SQL result to a Column name on an interactive report?
I have been able to do this on a standard SQL Report though the use of page items but have not had much luck with interactive reports.
Any help is appeciated.
Thanks,
Dancould you please explain step 4 a bit more?
as with the standard report, i just created an item with SQL query with a corresponding computation with same SQL query and that works great.
i tried the same method with interactive and it did not work.
in step 4 it mentions creating a process to populate the items.
how is this done?
Thanks,
Dan -
Passing column names in as a variable
I know in SQL server there is a way you can pass a variable in to the procedure and put that variable as a column name, Oracle doesn't seem to pick the variable up as a column name. Can anyone show me how with a simple select statement
bgulcu wrote:
I'm having a similar problem. I didn't want to open up another thread since it's related.
Problem:
I have 107 columns on a table. The number of columns increases almost every month.
I have an array of columns, which I have gathered from the db. I need to pivot the whole table, but due to indefinite number of columns, it had to be dynamic sql.
Premature Solution:
Right now, the solution that we have runs through the array of columns and uses dynamic sql to query for every single cell to get the value. Considering that we have 1000+ rows on this table, in order to do the transformation, we send 107000+ queries which is just ugly. It works, but I don't feel comfortable about it.
Solution:
Since we are able to get a single row of 107 columns, why don't we gather the whole row, and get the information out from it instead of tiring up the server? The indefinite number of columns is a problem, but we have the whole list in an array, lets say feature_array. So what I want to do is to get the date from the row, ie myRow.feature_array(1), myRow.feature_array(2), ..., myRow.feature_array(i).
I just learned that it's not possible to do it (from this thread).You just misunderstood the contents of this thread. What we said is that you can't do such things with static SQL, so you need to use dynamic sql.
What has also been told was that using dynamic sql for such a purpose is just the result of a bad design. Use a relational table as a bi-dimensional array is not right, it is possible but it's not right for the simple reason that you need a procedural language to process the dynamic SQL that is needed to retrieve data.
Probably on database programming there's only a rule of thumb and it says: "Maximize SQL minimize PL/SQL" (or any procedural language like java). The only exceptions to keep code in procedural language must depend on a complexity reduction determined by its use. In your case there is no complexity reduction determined by the use of a procedural language.
In the thread on this link(Schema integrity I discussed about how to implement a solution you can use as alternative for submitting queries with variable column names.
If you introduce parameter management in your model probably you could have your problem solved with the use of only a single SQL statement. And that may be a good designed model.
Bye Alessandro -
Passing column name dianamically in an insert query
i have a procedure hwre i used an inser query.eg
insert into table (a,b,c) values(...)
i need to pass a,b,c ie column names as parameter.depending upon the condition the column name will change.You don't necessarily need to use dynamic SQL;
create or replace procedure p
p_a number default null,
p_b number default null,
p_c number default null
) is
begin
insert into t
values
(p_a, p_b, p_c);
end;
Procedure createdUsing named notation;
exec p(p_a =>1, p_c => 3);
PL/SQL procedure successfully completed
exec p(p_b =>20, p_c => 30);
PL/SQL procedure successfully completedPassing NULLs;
exec p(4, null, 6);
PL/SQL procedure successfully completed
exec p(40, 50, null);
PL/SQL procedure successfully completed
select * from t;
A B C
1 3
20 30
4 6
40 50 -
Passing INLCUDE name dynamically
Hi,
Is there any way of passing the INCLUDE name dynamically?
Scenario is as follows
Requirement is to consolidate approx 6 enhancements (user exits) of the same name from 6 different systems into 1system . Objective is to put each of the code in an INCLUDE and then call the relevant INCLUDE based on some data maintained in a z-table
Z-table would have entries like this
Scenario Include
S1 I1
S2 I2
S3 I3
Hence final enhancement code should read the entry from z-table and accordingly pass the relevant INCLUDE name
INCLUDE <include name from z-table>
Valuable suggestions are needed.
PoonamHi Poonam,
<li> Create one function group.
<li> Write your 6 includes code in 6 function modules. function module is nothing but include in Function group.
<li>Try to give importing and exporting parameters are same.
<li>Try the below way.
REPORT ZTEST_NOTEPAD.
DATA: BEGIN OF IT_FUNC OCCURS 0,
NAME TYPE RS38L-NAME,
END OF IT_FUNC.
"Build your it_func with function modules.
LOOP AT IT_FUNC.
CALL FUNCTION IT_FUNC-NAME "You can call fm dynamically
EXPORTING
DAY_IN = IMPORTING
LAST_DAY_OF_MONTH = EXCEPTIONS
DAY_IN_NO_DATE = 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.
ENDLOOP.
Thanks
venkat.O -
Passing Display Name to Portlet(report) as a parameter???
Does anyone know if we can pass the Display Name for a report dynamically to the portlets?
For now, I have had to create one page for each report(portlet) by Overwriting the report display
option and using specific Query Option for each portlet. Preferably I would just call the report
with two parameters, one used in the sql to narrow down the query and the second for the Display
Name.
Thanks in advance,
Yahya
nullYahya -
For Portal specific questions such as this, you might also want to post them to the Portal specific forums we have on OTN.
Members of the Portal development team monitor and answer questions on those forums.
cheers!
-steve- -
Change column header dynamically at report run time
how to use LOV In report column definition under column attributes for display..
If it suceeded will it dynamicaly change header name at time of running report
my requirement is actually to change column header dynamically at time of run report
is it possible with above mentioned way?
Apex 4.1, Oracle 11g, PL/SQL Gateway configuration
Please help me on this
ThanksHi,
by making use of specific report column templates and column template conditions you can change the headers dynamically.
See this http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21674/ui_templt.htm#HTMDB25708 for more info.
regards,
Erik-jan
Maybe you are looking for
-
How can I change the style of a google map in Adobe Muse?
I have seen some nice changes of google maps out there. This tool helps you to customize your maps. http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html When I want to integrate a google map I copy in something like this: <if
-
What's the simplest way to transfer photos from iPhone to MacBook
Since AirDrop evidently is worthless, how do you quickly move pictures from your iPhone (or iPad) to you computer? I've used various services like DropBox and DeskConnect, even email. Is there something built in to the OS that would let me do this
-
On-board RAID and PCI RAID controller
Hello everybody, I am new to the forum. So, please excuse me if that topic was already covered... I have MSI MAX2-LR (MS-6398E) board. It works just fine, no problem so far. Though I have 2 problems with add-on cards: 1. I was planning to use on-boa
-
A member was added or deleted to a security-enabled local group. (4732 and 4733)
Hi Team, We are getting below alerts continuously. it is specifying that user is adding and removing from security group. But it is happening automatically and we've checked no one is performing such operation. And we read on some site it happened on
-
Adobe Photoshop CS5 no me reconoce la tarjeta de vídeo
Hola, necesito trabajar con las funciones 3D, pero al querer acceder a ellas me sale un cuadro que me dice que mi tarjeta de video no cumple con los requisitos de aceleración de hardware 3D rendering. Me dirijo a Edición-preferencias y en la parte de