0

我能够成功调用报告,但我没有得到报告的输出。reoprt 必须生成 PDF。报告无法生成 pdf 。代码是

DECLARE 
rept REPORT_OBJECT; 
v_rep VARCHAR2(100); 
rep_status varchar2(200); 
BEGIN 

rept := find_report_object('EMP.RDF'); 

SET_REPORT_OBJECT_PROPERTY(rept ,REPORT_SERVER , 'repsrv'); 
SET_REPORT_OBJECT_PROPERTY(rept,REPORT_DESTYPE,CACHE); 
SET_REPORT_OBJECT_PROPERTY(rept,REPORT_DESFORMAT,' HTML');


v_rep := RUN_REPORT_OBJECT(rept); 
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 
message('REPORT WAS CORRECTLY RUN'); 
ELSE 
message('REPORT FAILED WITH STATUS: '||rep_status); 
END IF;  
END;

请帮助我

4

2 回答 2

1

您将要使用web.show_document来获取报告的输出。例如:

web.show_document('/reports/rwservlet/getjobid' || substr(v_rep,length('repsrv')+2) || '?server=' || 'repsrv','_blank');

或者,使用内置函数copy_report_object_output()将输出复制到文件:

copy_report_object_output(v_rep, 'c:\myreport.pdf');

此外,如果您想要 PDF 输出,您需要将您的 DESFORMAT 参数更改为:

SET_REPORT_OBJECT_PROPERTY(rept,REPORT_DESFORMAT,'PDF'); 
于 2012-04-13T13:12:53.503 回答
1

你需要看的两件事

1) find_report_object 应该具有您在表单生成器中创建的报告名称

2)你需要使用

SET_REPORT_OBJECT_PROPERTY(rept, REPORT_FILENAME, 'C:\EMP.RDF');

其中 C:\EMP.RDF 是生成报告的路径

有关执行此操作和测试的完整示例,请查看以下链接

https://forums.oracle.com/forums/thread.jspa?threadID=2238519

于 2012-04-13T11:45:11.253 回答