0

レポートを正常に呼び出すことはできますが、レポートの出力が得られません。reoprt は PDF を生成する必要があります。reportport は 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

あなたが見る必要がある2つのこと

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 に答える
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 に答える