【问题标题】:report is working but can't able to get output of the report报告正在工作,但无法获得报告的输出
【发布时间】:2012-04-13 11:09:49
【问题描述】:

我能够成功调用报告,但我没有得到报告的输出。 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;

请帮帮我

【问题讨论】:

    标签: forms oracle plsql oracle10g report


    【解决方案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

    【讨论】:

      【解决方案2】:

      您需要使用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'); 
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-24
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多