我在以下代码中运行oracle reports 6i
IF :Global.Report_id IN ('XB_RFMODSM_DESA') THEN
Add_Parameter(pl_login1,'P_MONTH',TEXT_PARAMETER,:BLK_REPORT.BILL_CYCLE_CODE);
Add_Parameter(pl_login1,'LOCATION_CODE',TEXT_PARAMETER, vvc_location);
Add_Parameter(pl_login1,'FEEDER_NO1',TEXT_PARAMETER,vch_feeder);
Rep_id := LTRIM(rtrim(:Global.Report_id));
Run_Product(REPORTS, Rep_id, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_login1, NULL);
END IF;
现在我想在oracle 10g
中跑步。
我对oracle reports
中的运行10g
进行了哪些更改?
谢谢
答案 0 :(得分:1)
通常的做法是使用WEB.SHOW_DOCUMENT
。
这是Sarah在OTN forums上张贴的示例的(略有格式的)复制/粘贴(以防链接断开)。看看是否有帮助。
DECLARE
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
plid ParamList;
vParamValue number;
BEGIN
plid := Get_parameter_List('tmp');
IF NOT Id_Null(plid) THEN
Destroy_parameter_List( plid );
END IF;
plid := Create_parameter_List('tmp');
add_parameter(plid, 'p_parameter',text_parameter,to_char(:block.item));
add_parameter(plid, 'PARAMFORM', TEXT_parameter, 'NO');
repid := FIND_REPORT_OBJECT('REPORT6');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,cache);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER, 'paramform=no');
v_rep := RUN_REPORT_OBJECT(repid,plid);
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;
/*Display report in the browser*/
WEB.SHOW_DOCUMENT('http://Machine_name:Port/reports/rwservlet/getjobid' ||
substr(v_rep,instr(v_rep,'_',-1)+1) || '?' ||
'server=Report_server_name&P_parameter=' ||:block.item ||
'¶mform=no');
END;
答案 1 :(得分:1)
@Littlefoot指出的替代方法,您可以使用融合中间件的Report conversion tool
。使用该工具处理后,Rp2Rro.pll
应该通过表单的附加库部分附加。
毕竟,您可以将临时过程添加为:
Procedure Pr_Print_Rp2Rro(
Rep_id in out varchar2,
i_param_name varchar2,
i_param_var varchar2,
i_param_frm varchar2, -- 'Yes','No'
i_repsrv varchar2,
i_desname varchar2,
i_destype varchar2 default 'FILE',
i_desformat varchar2 default 'PDF'
) Is
pl_login1 ParamList;
arr_param_name owa.vc_arr;
arr_param_var owa.vc_arr;
Begin
pl_login1 := Get_Parameter_List('REPPARAM');
if not Id_Null(pl_login1) then
Destroy_Parameter_List('REPPARAM');
end if;
pl_login1 := Create_Parameter_List('REPPARAM');
Add_Parameter(pl_login1, 'PARAMFORM', Text_Parameter, i_param_frm);
Add_Parameter(pl_login1, 'RP2RROREPORTSERVER', Text_Parameter, i_repsrv );
Add_Parameter(pl_login1, 'RP2RRODESTYPE', Text_Parameter, i_destype );
Add_Parameter(pl_login1, 'RP2RRODESNAME', Text_Parameter, i_desname );
Add_Parameter(pl_login1, 'RP2RRODESFORMAT', Text_Parameter, i_desformat );
for i in 1..100
loop
arr_param_name(i) := substr(i_param_name,instr(i_param_name,'|',1,i)+1,
instr(i_param_name,'|',1,1+i)-instr(i_param_name,'|',1,i)-1);
arr_param_var(i) := substr(i_param_var,instr(i_param_var,'|',1,i)+1,
instr(i_param_var,'|',1,1+i)-instr(i_param_var,'|',1,i)-1);
if length(arr_param_name(i)) > 0 then
Add_Parameter( pl_login1, arr_param_name(i) , Text_Parameter, arr_param_var(i) );
end if;
end loop;
Rep_id := ltrim(rtrim(:Global.Report_id));
Rp2rro.Rp2rro_Run_Product(Reports, Rep_id, Synchronous, Runtime,Filesystem, pl_login1,null);
End;
可以这样称呼(例如,通过按钮 ):
declare
vvc_location tabFeederDesign.vvc_location%type;
vch_feeder tabFeederDesign.vch_feeder%type;
v_Rep_id varchar2(500):='Rep123';
v_server varchar2(500):='mySrv';
v_file varchar2(500):='file456';
begin
Pr_Print_Rp2Rro(v_Rep_id,'|P_MONTH|LOCATION_CODE|FEEDER_NO1|','|'||:BLK_REPORT.BILL_CYCLE_CODE||'|'||vvc_location||'|'||vch_feeder||'|','No',v_server,v_file);
end;