Attendance Report in matrix form
Hello Guys,
Here is my table
CREATE TABLE attend
EMPLOYEE_ID NUMBER(20,0),
ATTENDANCE_DATE DATE,
ATTENDANCE_TYPE NUMBER(20,0)
data gets into the table via form, now i need to generate week attendance report, for example if the user selects date 20/11/2012, then it must generate in the following format
11/19/2012 11/20/2012 11/21/2012 11/22/2012 11/23/2012
Emp Id 1 Present Absent Leave Present Present
Emp Id 2 Present Present Present Present Present
Emp Id 3 Present Present Present Present Present
Any ideas
Regards
Anil
Please check the forum for prior posts before starting a new thread.. This has been asked and answered in the past..
(Google is your friend)
https://www.google.com/search?q=oracle%20apex%20cross%20tab%20report&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a&source=hp&channel=np
Thank you,
Tony Miller
Ruckersville, VA
Similar Messages
-
Plz help me...to display in matrix form
Hi sir..
i want to get this report in matrix form...plz i don't have any idea about matrix form...
Right now iam getting like Below format::
emp_name cat_name type_name theme_name levels_skilllevel
rubin FE MODELLING SKILLS A2-Assembly - connectors N
rubin FE MODELLING SKILLS A2-Assembly - welding N
rubin FE MODELLING SKILLS A2-Batch meshing I
rubin FE MODELLING SKILLS A2-CFD meshing None
rubin FE MODELLING SKILLS A2-I order Hex meshing None
rubin FE MODELLING SKILLS A2-I order Tet meshing None
rubin FE MODELLING SKILLS A2-II order Hex meshing None
rubin FE MODELLING SKILLS A2-II order Tet meshing None
rubin FE MODELLING SKILLS A2-Macros None
rubin FE MODELLING SKILLS A2-Mid-plane shell meshing None
rubin FE MODELLING SKILLS A2-Moldflow meshing None
rubin FE MODELLING SKILLS A2-Morphing B
rubin FE MODELLING SKILLS SKILL2 None
rubin POST PROCESSING AUTO[SUB]SYS AUTO-36 N
rubin POST PROCESSING AUTO[SUB]SYS AUTO-6 B
rubin POST PROCESSING AUTO[SUB]SYS AUTO3 I
rubin POST PROCESSING AUTO[SUB]SYS TERMINAL P
freddy FE MODELLING SKILLS A2-Assembly - welding B
freddy FE MODELLING SKILLS A2-Batch meshing P
freddy FE MODELLING SKILLS A2-Macros P
freddy FE MODELLING SKILLS A2-Morphing I
freddy THERMAL SKILLS SKILL-15 None
freddy THERMAL SKILLS SKILL-41 B
freddy THERMAL SKILLS SKILL-42 I
freddy THERMAL SKILLS SKILL-45 P
freddy THERMAL SKILLS SKILL-47 N
freddy THERMAL SKILLS SKILL-57 None
--> .....check the below one...
-->Example:see emp_name rubin->cat_name -> type_name ->theme_name->levels_skilllevel is 'N'
see emp_name freddy->cat_name-> type_name ->theme_name->levels_skilllevel is 'B'
cat_name type_name theme_name rubin freddy
FE MODELLING SKILLS A2-Assembly - connectors N B
I have written the below query To get it as Above::
SELECT ae.emp_name, am.cat_name, am.type_name, am.theme_name, am.levels_skilllevel
FROM alt_employee ae, (
SELECT *
FROM alt_category ac, alt_type at, alt_theme atm, alt_levels al, alt_employee ae
WHERE ac.cat_id
IN (
SELECT cat_id
FROM alt_category
) AND ac.cat_id = atm.theme_catid
AND atm.theme_typeid = at.type_id
AND atm.theme_id = al.levels_theme_id
AND al.levels_skilllevel
IN ('B', 'N', 'I', 'P', 'None')
GROUP BY cat_name, type_name, theme_name, levels_skilllevel
)am
WHERE ae.emp_id = am.levels_employee_id
Regards
NarendraMy solution was a pivot function.
Using that function will give you something like:
SQL> select * from table( pivot(
2 'select cat.cat_name
3 , type.type_name
4 , theme.theme_name
5 , emp.emp_name
6 , levels.levels_skilllevel
7 from alt_theme theme
8 , alt_category cat
9 , alt_type type
10 , alt_levels levels
11 , alt_employee emp
12 where cat.cat_id (+) = theme.theme_catid
13 and type.type_id = theme.theme_typeid
14 and levels.levels_theme_id = theme.theme_id
15 and emp.emp_id = levels.levels_employee_id
16 '
17 ) );
CAT_NAME TYPE_NAME THEME_NAME freddy ruby
FE MODELLING A2-Assembly - welding B B
FE MODELLING A2-Assembly - connectors N
THERMAL SKILLS SKILL-41 B I
THERMAL SKILLS SKILL-42 N P
SQL> Anton
create or replace type PivotImpl as object
ret_type anytype, -- The return type of the table function
stmt varchar2(32767),
cur integer,
static function ODCITableDescribe( rtype out anytype, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number,
static function ODCITablePrepare( sctx out PivotImpl, ti in sys.ODCITabFuncInfo, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number,
static function ODCITableStart( sctx in out PivotImpl, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number,
member function ODCITableFetch( self in out PivotImpl, nrows in number, outset out anydataset )
return number,
member function ODCITableClose( self in PivotImpl )
return number
create or replace type body PivotImpl
as
static function ODCITableDescribe( rtype out anytype, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number
is
atyp anytype;
cur integer;
numcols number;
desc_tab dbms_sql.desc_tab2;
rc sys_refcursor;
t_c2 varchar2(32767);
begin
cur := dbms_sql.open_cursor;
dbms_sql.parse( cur, p_stmt, dbms_sql.native );
dbms_sql.describe_columns2( cur, numcols, desc_tab );
dbms_sql.close_cursor( cur );
anytype.begincreate( dbms_types.typecode_object, atyp );
for i in 1 .. numcols - 2
loop
atyp.addattr( desc_tab( i ).col_name
, case desc_tab( i ).col_type
when 1 then dbms_types.typecode_varchar2
when 2 then dbms_types.typecode_number
when 9 then dbms_types.typecode_varchar2
when 11 then dbms_types.typecode_varchar2 -- show rowid as varchar2
when 12 then dbms_types.typecode_date
when 208 then dbms_types.typecode_urowid
when 96 then dbms_types.typecode_char
when 180 then dbms_types.typecode_timestamp
when 181 then dbms_types.typecode_timestamp_tz
when 231 then dbms_types.typecode_timestamp_ltz
when 182 then dbms_types.typecode_interval_ym
when 183 then dbms_types.typecode_interval_ds
end
, desc_tab( i ).col_precision
, desc_tab( i ).col_scale
, case desc_tab( i ).col_type
when 11 then 18 -- for rowid col_max_len = 16, and 18 characters are shown
else desc_tab( i ).col_max_len
end
, desc_tab( i ).col_charsetid
, desc_tab( i ).col_charsetform
end loop;
open rc for 'select distinct ' || desc_tab( numcols - 1 ).col_name || '
from( ' || p_stmt || ' )
order by 1';
loop
fetch rc into t_c2;
exit when rc%notfound;
atyp.addattr( t_c2
, case desc_tab( numcols ).col_type
when 1 then dbms_types.typecode_varchar2
when 2 then dbms_types.typecode_number
when 9 then dbms_types.typecode_varchar2
when 11 then dbms_types.typecode_varchar2 -- show rowid as varchar2
when 12 then dbms_types.typecode_date
when 208 then dbms_types.typecode_urowid
when 96 then dbms_types.typecode_char
when 180 then dbms_types.typecode_timestamp
when 181 then dbms_types.typecode_timestamp_tz
when 231 then dbms_types.typecode_timestamp_ltz
when 182 then dbms_types.typecode_interval_ym
when 183 then dbms_types.typecode_interval_ds
end
, desc_tab( numcols ).col_precision
, desc_tab( numcols ).col_scale
, case desc_tab( numcols ).col_type
when 11 then 18 -- for rowid col_max_len = 16, and 18 characters are shown
else desc_tab( numcols ).col_max_len
end
, desc_tab( numcols ).col_charsetid
, desc_tab( numcols ).col_charsetform
end loop;
close rc;
atyp.endcreate;
anytype.begincreate( dbms_types.typecode_table, rtype );
rtype.SetInfo( null, null, null, null, null, atyp, dbms_types.typecode_object, 0 );
rtype.endcreate();
return odciconst.success;
exception
when others then
return odciconst.error;
end;
static function ODCITablePrepare( sctx out PivotImpl, ti in sys.ODCITabFuncInfo, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number
is
prec pls_integer;
scale pls_integer;
len pls_integer;
csid pls_integer;
csfrm pls_integer;
elem_typ anytype;
aname varchar2(30);
tc pls_integer;
begin
tc := ti.RetType.GetAttrElemInfo( 1, prec, scale, len, csid, csfrm, elem_typ, aname );
sctx := PivotImpl( elem_typ, p_stmt, null );
return odciconst.success;
end;
static function ODCITableStart( sctx in out PivotImpl, p_stmt in varchar2, p_agg in varchar2 := 'max' )
return number
is
cur integer;
numcols number;
desc_tab dbms_sql.desc_tab2;
t_stmt varchar2(32767);
t_stmt_end varchar2(32767);
type_code pls_integer;
prec pls_integer;
scale pls_integer;
len pls_integer;
csid pls_integer;
csfrm pls_integer;
schema_name varchar2(30);
type_name varchar2(30);
version varchar2(30);
attr_count pls_integer;
attr_type anytype;
attr_name varchar2(100);
dummy2 integer;
begin
cur := dbms_sql.open_cursor;
dbms_sql.parse( cur, p_stmt, dbms_sql.native );
dbms_sql.describe_columns2( cur, numcols, desc_tab );
dbms_sql.close_cursor( cur );
for i in 1 .. numcols - 2
loop
t_stmt := t_stmt || ', "' || desc_tab( i ).col_name || '"';
end loop;
t_stmt := substr( t_stmt, 2 );
t_stmt_end := t_stmt;
type_code := sctx.ret_type.getinfo( prec
, scale
, len
, csid
, csfrm
, schema_name
, type_name
, version
, attr_count
for i in numcols - 1 .. attr_count
loop
type_code := sctx.ret_type.getattreleminfo( i
, prec
, scale
, len
, csid
, csfrm
, attr_type
, attr_name
t_stmt := t_stmt || ', ' || p_agg || '( decode( ' || desc_tab( numcols - 1 ).col_name || ', ''' || attr_name || ''', ' || desc_tab( numcols ).col_name || ' ) )';
end loop;
t_stmt := 'select' || t_stmt || ' from ( ' || sctx.stmt || ' ) group by' || t_stmt_end;
sctx.cur := dbms_sql.open_cursor;
dbms_sql.parse( sctx.cur, t_stmt, dbms_sql.native );
for i in 1 .. attr_count
loop
type_code := sctx.ret_type.getattreleminfo( i
, prec
, scale
, len
, csid
, csfrm
, attr_type
, attr_name
case type_code
when dbms_types.typecode_char then dbms_sql.define_column( sctx.cur, i, 'x', 32767 );
when dbms_types.typecode_varchar2 then dbms_sql.define_column( sctx.cur, i, 'x', 32767 );
when dbms_types.typecode_number then dbms_sql.define_column( sctx.cur, i, cast( null as number ) );
when dbms_types.typecode_date then dbms_sql.define_column( sctx.cur, i, cast( null as date ) );
when dbms_types.typecode_urowid then dbms_sql.define_column( sctx.cur, i, cast( null as urowid ) );
when dbms_types.typecode_timestamp then dbms_sql.define_column( sctx.cur, i, cast( null as timestamp ) );
when dbms_types.typecode_timestamp_tz then dbms_sql.define_column( sctx.cur, i, cast( null as timestamp with time zone ) );
when dbms_types.typecode_timestamp_ltz then dbms_sql.define_column( sctx.cur, i, cast( null as timestamp with local time zone ) );
when dbms_types.typecode_interval_ym then dbms_sql.define_column( sctx.cur, i, cast( null as interval year to month ) );
when dbms_types.typecode_interval_ds then dbms_sql.define_column( sctx.cur, i, cast( null as interval day to second ) );
end case;
end loop;
dummy2 := dbms_sql.execute( sctx.cur );
return odciconst.success;
end;
member function ODCITableFetch( self in out PivotImpl, nrows in number, outset out anydataset )
return number
is
c1_col_type pls_integer;
type_code pls_integer;
prec pls_integer;
scale pls_integer;
len pls_integer;
csid pls_integer;
csfrm pls_integer;
schema_name varchar2(30);
type_name varchar2(30);
version varchar2(30);
attr_count pls_integer;
attr_type anytype;
attr_name varchar2(100);
v1 varchar2(32767);
n1 number;
d1 date;
ur1 urowid;
ids1 interval day to second;
iym1 interval year to month;
ts1 timestamp;
tstz1 timestamp with time zone;
tsltz1 timestamp with local time zone;
begin
outset := null;
if nrows < 1
then
-- is this possible???
return odciconst.success;
end if;
if dbms_sql.fetch_rows( self.cur ) = 0
then
return odciconst.success;
end if;
type_code := self.ret_type.getinfo( prec
, scale
, len
, csid
, csfrm
, schema_name
, type_name
, version
, attr_count
anydataset.begincreate( dbms_types.typecode_object, self.ret_type, outset );
outset.addinstance;
outset.piecewise();
for i in 1 .. attr_count
loop
type_code := self.ret_type.getattreleminfo( i
, prec
, scale
, len
, csid
, csfrm
, attr_type
, attr_name
case type_code
when dbms_types.typecode_char then
dbms_sql.column_value( self.cur, i, v1 );
outset.setchar( v1 );
when dbms_types.typecode_varchar2 then
dbms_sql.column_value( self.cur, i, v1 );
outset.setvarchar2( v1 );
when dbms_types.typecode_number then
dbms_sql.column_value( self.cur, i, n1 );
outset.setnumber( n1 );
when dbms_types.typecode_date then
dbms_sql.column_value( self.cur, i, d1 );
outset.setdate( d1 );
when dbms_types.typecode_urowid then
dbms_sql.column_value( self.cur, i, ur1 );
outset.seturowid( ur1 );
when dbms_types.typecode_interval_ds then
dbms_sql.column_value( self.cur, i, ids1 );
outset.setintervalds( ids1 );
when dbms_types.typecode_interval_ym then
dbms_sql.column_value( self.cur, i, iym1 );
outset.setintervalym( iym1 );
when dbms_types.typecode_timestamp then
dbms_sql.column_value( self.cur, i, ts1 );
outset.settimestamp( ts1 );
when dbms_types.typecode_timestamp_tz then
dbms_sql.column_value( self.cur, i, tstz1 );
outset.settimestamptz( tstz1 );
when dbms_types.typecode_timestamp_ltz then
dbms_sql.column_value( self.cur, i, tsltz1 );
outset.settimestampltz( tsltz1 );
end case;
end loop;
outset.endcreate;
return odciconst.success;
end;
member function ODCITableClose( self in PivotImpl )
return number
is
c integer;
t_id user_objects.object_id%type;
begin
c := self.cur;
dbms_sql.close_cursor( c );
select object_id
into t_id
from user_objects
where object_name = 'PIVOTIMPL'
and object_type = 'TYPE BODY';
-- invalidating of the type body forces that ODCITableDescribe is executed for every call to the pivot function
-- and we do need that to make sure that any new columns are picked up (= new values for the pivoting column)
dbms_utility.invalidate( t_id );
return odciconst.success;
end;
end;
create or replace
function pivot( p_stmt in varchar2, p_agg in varchar2 := 'max' )
return anydataset pipelined using PivotImpl;
/ -
Report Called from FORMS having Printing Problem
Hi all
Guys i have a report problem in reports 6i.
I am calling a report from my FORM 6i directly to printer (a dot matrix printer).
I have set
Add_Parameter(pl_id,'DesType',TEXT_PARAMETER,'printer');
The report is actually a confirmation report and i have given its layout height equal to 3.7 . But when i send it to printer it ejects the paper equal to 11 (equal to height of a portarait report).
How can manage this ejection from Form or Report Side.
NOTE : This problem occurs even if print the report from report preview(means not printed directlty from FORM).
Kindly help me with this if any.
I need it urgent.
Thanx.Hello All
The furthur detail to my previous problem is given as follows:
I am getting problem
with the Oracle reports. I have a dot matrix printer (Epson LQ-300, which is a
tractor feed printer). While printing a report which is always not more than half a
page, the printer does not stop after printing the report(the half page). It stops at
the end of the page. I mean that half the page is printed and the rest half is blank.
I want that the printer should print only at half a page. On the blank half it should
print another copy of same report.
Regards,
Qaiser Qayyum Malik. -
Dear Experts,
Oracle Developer = 6i
Oracle Database = 10g
I want to make a *"Dynamic Matrix Form"*
I have developed it already but it was not dynamic I have to fix no. of columns in it and give name of series to these columns like col1, col2, col3 etc...
Now I have new task that have dynamic columns from 1 to 100.
Is there any way to display it dynamic on forms builder?
Thx.Dear François,
Thanks for help, But it display only tabular wise data.
I want to display my data like Matrix report Rows and columns wise.
All data are depends on these rows and columns join conditions that same like Matrix report.
Thanks. -
Hi Expert,
I want to call a report from a form.My problem scenario like, a user is login to his account and there is a option called ADMIT CARD(Push Button).Now when he pressed the button a report will generate.I want that when he pressed the button the user id of the user will passed to the report and the report will generate corresponding to his details which was stored in the database.This scenario is like any online admit card.
Suppose I want a details report of employee whose employee_id=100.How could I pass this value(employee id) to report which will generate a report details.
Thanks,
TAPAN
Message was edited by:
user630863Thanks for replying.
Actually I am a beginner.I think that I have to use RUN_REPORT_OBJECT built-in.But I cannot understand the parameterlist.Can u plz give me any example or code then I am very thankful.
Suppose I want a details report of employee whose employee_id=100.How could I pass this value(employee id) to report which will generate a report details.
Thanks,
TAPAN -
Report 9i parameter form problem, is it a bug?
Hi all,
I am using Dev 9i IDS, rel. 9.0.2, running in windows 2000. I've been converting my forms and reports from previous versions to 9i, and I came across an issue with the report's parameter form.
First, I thought it could be a problem during the conversion , but to make sure I developed a new form and a new report straight in the 9i IDS suite, using Scott's DEPT table. The new form is simple having a button to call the new report which is based on the DEPT table and accepts an user's input for a dept. no.
The same problem occurs:
- in the form, if I set PARAMFORM=HTML then it could not open the report parameter form, hence the report could not run.
- if I set PARAMFORM=YES, then the report parameter form is displayed, then I can enter a value for the department number. BUT, when I clicked the Submit Query button the report failed, and I received the following error:
REP-52007: Parameter form format error.
java.lang.IllegalStateException: Response is already committed!
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.EvermindHttpServletResponse.setContentType(EvermindHttpServletResponse.java:973)
at javax.servlet.ServletResponseWrapper.setContentType(ServletResponseWrapper.java:27)
at oracle.reports.rwclient.RWReportRunner.setContentType(RWReportRunner.java:261)
at oracle.reports.rwclient.RWReportRunner.getMainFile(RWReportRunner.java:135)
at oracle.reports.rwclient.CommandManager.handleCmdGetjob(CommandManager.java:1219)
at oracle.reports.rwclient.CommandManager.handleWebCommand(CommandManager.java:369)
at oracle.reports.rwclient.RWClient.handleWebCommand(RWClient.java:651)
at oracle.reports.rwclient.RWClient.processRequest(RWClient.java:1053)
at oracle.reports.rwclient.RWClient.doPost(RWClient.java:318)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:283)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:59)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:523)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:735)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:243)
at com.evermind[Oracle9iAS (9.0.2.0.0) Containers for J2EE].util.ThreadPoolThread.run(ThreadPoolThread.java:64)
I have no problem integrating others reports that don't have parameter form using run_report_object. And, I've checked and tried different ways of manipulating the parameter value using to_number in the report's where clause etc., it never worked.
I guess the only workaround is to create the parameter form in Forms builder. Is there other ways of doing it , or is it a bug of the 9i IDS suites that needs to be fixed?
- ThanksHi Frank,
There's a note published on Metalink, note 139546.1, showing a workaround to thi problem. but
- it is rather lengthy and confusing, may not be practical .
- it only applies to Forms and Reports 6i.
However, it shows that the problem comes from 2 items in the source code of the parameter form which is produced by the RUN_REPORT_OBJECT built-in:
1. <form method=post action=""> where action contains an empty string, it needs to have a valid entry, e.g.
<form method=post action="http://hostname:port/cgi/rwci60.exe?">
2. <input name="hidden_run_parameters" type=hidden value=""> where hidden value is also empty. It should contains all parameter values passed to the report parameter form, e.g.
<input name="hidden_run_parameters" type=hidden value="report%3test+destype%3Dcache+userid%Dscott.....">
And that is what I found, but I am reluctant to try it in 9i IDS, hoping Oracle has a better solution than that.
Tho. -
Hi All,
I tried to call a report from a form (using this form as a parameter form)but unfortunately it is not working out for me. I used the run_product built in.
Could someone examine my code and tell me what is wrong?
DECLARE
pl_id ParamList;
BEGIN
pl_id := Get_Parameter_List('OPEN');
IF NOT Id_Null(pl_id) THEN
Destroy_Parameter_List( pl_id );
END IF;
pl_id := Create_Parameter_List('OPEN');
Add_Parameter(pl_id,'P_BUNIT',TEXT_PARAMETER, :BLOCK3.BUNIT);
Add_Parameter(pl_id,'P_AGRMT',TEXT_PARAMETER,:BLOCK3.AGRMT);
add_parameter(pl_id,'DESTYPE',TEXT_PARAMETER,'SCREEN');
add_parameter(pl_id,'PARAMFORM',TEXT_PARAMETER,'NO');
run_product(REPORTS, 'APRIL11', SYNCHRONOUS,RUNTIME,
FILESYSTEM, pl_id, NULL);
END;
nullOlan,
Your code looks good, and it should work.
Maybe you should check your report to make sure it is under oralce report path, user-defined parameters in the report are same name, type,lengh as in the form parameters, and correct system parameters.
good luck.
Jingning -
How to make a link in a report open a Form in a different region of the same page ?
Hi,
I developped a report and a form for the same table. I also created a link and used it in my report so that when I click on the link of one record, the form is opened and display this record.
My problem is that when I include my report as a portlet and I click on a link, the form is opened in full screen mode by replacing the page containing my report.
What should I do in order to open this form in another region of the same page ?
Thanks a lotI presume that the two regions are working fine with their individual buttons and your issue is how to make them both save with one button.
Here is how
a. You will have 2 ApplyMRU and 1 ApplyMRD processes for each of the regions. Right? Lets say you have 2 "Save" (i.e. label=Save) buttons, one has name SUBMIT and the other SAVE ( SUBMIT and SAVE being the requests that will be sent when they are clicked , respectively)
b. Make the Display condition on one of the buttons 'Never'. Now it won't show when you run the page. Lets say you made SAVE's conditional Display 'Never'
c. Go and change the condition on all ApplyMRU and ApplyMRD processes from "When Button Pressed" to "Request is contains in Expression1". In Expression1 enter SUBMIT,SAVERegards -
How to run a report from a form?
i created a report from reports 6i. now i want to design an interface in oracle forms and want to call all information from report according to paramaters which i designed in oracle forms.
i found some information that i can do that using Procedure Run_Report or Run_report_object but i could not achieved it.
Can anyone explain me that step by step? Or anybody made an example before so a connection from form to report and send to me as a muster. probably i can find a solution for me too..thanks a lot..Abdetu thanks for your quickly reply but i have to say that i could not understand it very clearly because i don't have any experience about Forms and Reports. Therefore i am trying to ask my question again with examples.
I made a report and now i am trying to connect this report to my forms. My forms has 2 search item. Account_no and Date and i have a Run button.
If i write date "Oct" and push button "Run" i want to see whole list of Oct from Report. Therefore i made a trigger "When-Button-Pressed" and i wrote this and now my question about the parameters.
In Forms under menu parameters should i create 2 parameters parameter01 and parameter02. and now my questions:
1) After i create parameters should i write as a Parameter Initial Value
2) Should i extra add paramters to reports too?
declare
v_Report_Id Varchar2(20) := 'RAPOR_NAME';
v_Parameter_List Varchar2(15) := 'FormParameter';
v_Parameter_List_Id Paramlist;
v_Return_Code Number;
Begin
v_Parameter_List_Id := Get_Parameter_List(v_Parameter_List);
If Not id_null(v_Parameter_List_Id) Then
Destroy_Parameter_List(v_Parameter_List_Id);
End If;
v_Parameter_List_Id := Create_Parameter_List(v_Parameter_List);
Add_parameter(v_Parameter_List_Id, 'PAR_01', TEXT_PARAMETER,:Parameter01);
Add_parameter(v_Parameter_List_Id, 'PAR_02', TEXT_PARAMETER,:Parameter02);
Add_parameter(v_Parameter_List_Id, 'PARAMFORM', TEXT_PARAMETER,'NO');
Add_parameter(v_Parameter_List_Id, 'DESTYPE', TEXT_PARAMETER,'SCREEN');
Run_product(REPORTS,'v_Rerpot_Id',SYNCHRONOUS,RUNTIME,FILESYSTEM,v_Parameter_List_Id,null);
End; -
Calling Report from Oracle form 11g
I am new to Forms 11g, trying to call report from Oracle forms 11g .
I want to call report from oracle forms, but its giving error.
Below is the code
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
BEGIN
repid := FIND_REPORT_OBJECT('empreport'); -- report node in forms builder
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid, REPORT_EXECUTION_MODE, BATCH);
set_report_object_property ( repid, report_filename, 'empreport.rdf' ); -- report name
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,cache);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'RptSvr'); -- report server name
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := REPORT_OBJECT_STATUS(v_rep);
if
rep_status = 'FINISHED'
then
WEB.SHOW_DOCUMENT('http://inorasrv-pc:7001/reports/dtd/rwservlet/getjobid='||v_rep||'?server='||'RptSvr','_blank');
else
message ( 'error while running reports-object ' || error_text );
message ( ' ' );
clear_message;
end if;
end;
Above code giving following error :
Unable to connect to report server RptSvr
I think my report servername is wrong
Where to find report server name in 11g.
I am Using weblogic server, so can i give weblogic server name
Thanks in advance.
Edited by: parapr on Aug 17, 2012 1:52 AM
Edited by: parapr on Aug 17, 2012 3:21 AMHi,
You have to have the report server
a. Installed and configured
b. Running.
See
http://docs.oracle.com/cd/E21764_01/bi.1111/b32121/pbr_strt001.htm
http://docs.oracle.com/cd/E17904_01/bi.1111/b32121/pbr_verify004.htm
http://docs.oracle.com/cd/E17904_01/bi.1111/b32121/pbr_conf003.htm#i1007341
If you are using rwservlet then you will find the name from the Configuration file referred to in the last link.
Cheers, -
Calling report from a form with user input parameters
Hello,
I am new to Oracle reports. I have an application coded in 6i. I am currently running the application in Oracle Forms Builder 9i. There are also few reports which are called from the forms. Since the application was developed in 6i, the report was called using Run_Product. The forms pass a set of user parameters to the report using the parameter list pl_id. The syntax used was Run_Product(REPORTS, 'D:\Report\sales.rdf', SYNCHRONOUS, RUNTIME,FILESYSTEM, pl_id, NULL);
I learnt that the Run_product doesnt work in 9i and we need to use run_report_object. I have changed the code to use run_report_object and using web.show_document () i am able to run the report from the form. There are 2 parameters that need to be passed from forms to reports. The parameters are from_date and to_date which the user will be prompted to enter on running the form. In the report, the initial values for these parametes are defined. So, the report runs fine for the initial value always. But when i try to change the user inputs for the form_date and to_date, the report output doesnt seem to take the new values, instead the old report with the initial values(defined in the report) runs again.
Can someone give me the code to pass the user defined parameters to the report from the forms? I have defined a report object in the forms node as REPTEST and defined a parameter list pl_id and added form_date and to_date to pl_id and used the following coding:
vrepid := FIND_REPORT_OBJECT ('REPTEST');
vrep := RUN_REPORT_OBJECT (vrepid,pl_id);
But this doesnt work.
Also, Should the parameters defined in the forms and reports have the same name?Thanks for the quick response Denis.
I had referred to the document link before and tried using the RUN_REPORT_OBJECT_PROC procedure and ENCODE functions as given in the doc and added the following SET_REPORT_OBJECT_PROPERTY in the RUN_REPORT_OBJECT_PROC :
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,' FROM_DATE='||:BLK_INPUT.FROM_DATE||' TO_DATE='||:BLK_INPUT.TO_DATE||' paramform=no');
But this also dint work. Please help me understand what difference does setting paramform=no OR paramform=yes make?
In the report, i have defined the user parameters as FROM_DATE and TO_DATE respectively so that they match the form datablock BLK_INPUT items FROM_DATE and TO_DATE.
My WHEN_BUTTON_PRESSED trigger is as below:
DECLARE
report_id report_object;
vrep VARCHAR2 (100);
v_show_document VARCHAR2 (2000) := '/reports/rwservlet?';
v_connect VARCHAR2 (30) := '&userid=scott/tiger@oracle';
v_report_server VARCHAR2 (30) := 'repserver90';
BEGIN
report_id:= find_report_object('REPTEST');
-- Call the generic PL/SQL procedure to run the Reports
RUN_REPORT_OBJECT_PROC( report_id,'repserver90','PDF',CACHE,'D:\Report\sales.rdf','paramform=no','/reports/rwservlet');
END;
... and the SET_REPORT_OBJECT_PROPERTY code in the RUN_REPORT_OBJECT_PROC procedure is as:
PROCEDURE RUN_REPORT_OBJECT_PROC(
report_id REPORT_OBJECT,
report_server_name VARCHAR2,
report_format VARCHAR2,
report_destype_name NUMBER,
report_file_name VARCHAR2,
report_otherparam VARCHAR2,
reports_servlet VARCHAR2) IS
report_message VARCHAR2(100) :='';
rep_status VARCHAR2(100) :='';
vjob_id VARCHAR2(4000) :='';
hidden_action VARCHAR2(2000) :='';
v_report_other VARCHAR2(4000) :='';
i number (5);
c char;
c_old char;
c_new char;
BEGIN
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,report_file_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,report_server_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,report_destype_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,report_format);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,' FROM_DATE='||:BLK_INPUT.FROM_DATE||' TO_DATE='||:BLK_INPUT.TO_DATE||' paramform=no');
hidden_action := hidden_action ||'&report='||GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME);
hidden_action := hidden_action||'&destype='||GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE);
hidden_action := hidden_action||'&desformat='||GET_REPORT_OBJECT_PROPERTY (report_id,REPORT_DESFORMAT);
hidden_action := hidden_action ||'&userid='||get_application_property(username)||'/'||get_application_property(password)||'@'||get_application_property(connect_string);
c_old :='@';
FOR i IN 1..LENGTH(report_otherparam) LOOP
c_new:= substr(report_otherparam,i,1);
IF (c_new =' ') THEN
c:='&';
ELSE
c:= c_new;
END IF;
-- eliminate multiple blanks
IF (c_old =' ' and c_new = ' ') THEN
null;
ELSE
v_report_other := v_report_other||c;
END IF;
c_old := c_new;
END LOOP;
hidden_action := hidden_action ||'&'|| v_report_other;
hidden_action := reports_servlet||'?_hidden_server='||report_server_name|| encode(hidden_action);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,'pfaction='||hidden_action||' '||report_otherparam);
-- run Reports
report_message := run_report_object(report_id);
rep_status := report_object_status(report_message);
IF rep_status='FINISHED' THEN
vjob_id :=substr(report_message,length(report_server_name)+2,length(report_message));
message('job id is'||vjob_id);pause;
WEB.SHOW_DOCUMENT(reports_servlet||'/getjobid'||vjob_id||'?server='||report_server_name,' _blank');
ELSE
--handle errors
null;
END IF;
In the code - " hidden_action := hidden_action ||'&'|| v_report_other; " in the RUN_REPORT_OBJECT_PROC procedure above, how do i make sure that the v_report_other variable reflects the user input parameters FROM_DATE and TO_DATE ??? v_report_other is initialised as v_report_other VARCHAR2(4000) :=''; in the procedure. Will ensuring that the v_report_other contains the user input parameters FROM_DATE and TO_DATE ensure that my report will run fine for the input parameters?
Thanks in advance.
Edited by: user10713842 on Apr 7, 2009 6:05 AM -
How to convert oracle report in html form into excel form?
Hi friends !! I m trying to convert oracle 10g report into excel form.Its coming in excel form but not with all formats.How to solve the problem?
Hello,
Please give us more information what kind of report(s). Sample example etc.,
Sri -
I have uploaded my form to the app server and compiled to Linux. I have copied my RDF file to the reports_path/demo directory. I can run the report via a link from our portal using the URL as follows:
/reports/rwservlet?report=IndRpt.rdf&desformat=pdf&destype=cache&userid=' target="_blank"
That opens the report in a separate window, which is what we want. So far, so good.
I can run the form via a link from our portal as well using the URL as follows:
/forms/frmservlet?config=bsc_ind
The config section hides all the form parameters very nicely.
In the portal, I created a Report Server Access portlet, REP_OMHAST2_MIDTIER, and use the following set_report_object calls in my form:
repid := find_report_object('IndRep');
SET_REPORT_OBJECT_PROPERTYrepid,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTYrepid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTYrepid,REPORT_SERVER,'rep_omhast2_midtier');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,ls_param);
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
/*Display report in the browser*/
WEB.SHOW_DOCUMENT('http://omhast2.omh.state.ny.us:7777/reports/rwservlet/getjobid'||
substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=rep_omhast2_midtier ','_blank');
All that comes right out of the white paper.
Now here's the weird part, I have never seen this before. When I click my "Show Report" button in my form, the report seems to be running, but then I get a very strange dark grey, square icon superimposed over my mouse pointer. The icon has a small yellow "starburst" pattern with a tiny red exclamation point inside. The report does not appear on screen.
Incidentally, all of this works correctly when I run the same scenario on my workstation using the call to rwserver as: rwserver server=rep_omhast2_midtier. But when we port it to the app server, it does not run. I think it has to be in the way the form calls the report because the report will run as a stand-alone object.
Anything apparent to anyone out there?Well, it looks like I stumped the band. And with good reason. Sorry for the error. The problem was that the user running the form and the report had a pop-up blocker that was blocking the report. The form and the report ran from another machine. I allowed pop-ups from the report's URL and that enabled the report to appear.
So, here we have another example of how to call a report from a form. Again, I am sorry for any angst this may have caused. -
Calling a report from oracle form 10g
how to call a report from oracle form 10g
Please see the link:
http://www.oracle.com/technology/products/forms/pdf/10g/frm10gsrw10g.pdf -
Calling a report from a form and outputting to the screen.
Hi all, I created a report from the Report node in Forms called Monthly_rep. It points to a .rdf file on the server that produces a monthly usage report. When run from Reports Builder both the web and paper version are fine.
I have a button on a form using the When-Mouse-Click trigger, here is the code:
declare
report_id Report_Object;
report_job_id VARCHAR2(100);
begin
report_id:= find_report_object('monthly_rep');
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_EXECUTION_MODE,RUNTIME);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,ASYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,CACHE;
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,'rskei015');
report_job_id:=run_report_object(report_id);
END;
When run, when the button is clicked, I get some disk activity and then nothing happens. If I change the "SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE" attribute to screen I get a FRM-41214 unable to run report message displayed.
I am not fussed if the report runs as a web style or paper style, I just want to get it to work ... for now LOL.
Do the "SET_REPORT_OBJECT_PROPERTY" settings in the trigger override the settings in the report node ?
Any help greatly appreciated.
KevinYou can use WEB.SHOW_DOCUMENT. See http://www.oracle.com/technology/products/forms/pdf/10g/frm10gsrw10g.pdf
There you'll find a complete example of RUN_REPORT_OBJECT with WEB.SHOW_DOCUMENT.
Maybe you are looking for
-
Time machine icon in Menu bar no longer rotates during backups
Ever since upgrading to Mavericks, the Time Machine icon in my menu bar does not turn while it's doing a backup. I have to click on it to see whether it's doing a backup. This started with Mavericks, and was not fixed in 10.9.1. Will it be addres
-
Xi mail sender adapter for outlook express configuration
hi, can somone please tell me how to configure xi mail sender adapter for reading from inbox of outlook express? i keep getting errors in communication channel monitor: "exception caught during processing mail message; java.io.IOException: unexpected
-
Keyboard Update Broke Apple Bluetooth Keyboard
Nice going, Apple. Your handy little update now prevents my (formerly) flawlessly working Apple Bluetooth keyboard from pairing. Bravo! Maybe you can teach Microsoft some lessons...
-
Hi, could not install 9i R2 on SUSE9. Copying process hung when it started to copy JRE. and the copy status says "Link Pending". My error log shows : java.lang.UnsatisfiedLinkError: /tmp/OraInstall2005-07-14_07-5doPost=true
-
RDP Port Forwarding non-functional
OK, so I'm having yet another issue with my RV220w. I thought this would be a wise buy, but I keep finding reasons to hate myself for buying this router. Anyway, I need to forward port 3389, Windows Remote Desktop Protocol to one of my internal serve