1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
PROCEDURE run_report_excel_proc (v_nom varchar2, v_other varchar2) IS
report_id report_object;
report_message VARCHAR2(1000);
v_rapport VARCHAR2(52) := 'V_RAPPORT';
vjob_id Varchar2(100);
v_rep_status Varchar2(100);
serveur Varchar2(100);
BEGIN
TOOL_ENV.Getvar ('myReportServer', serveur);
report_id := find_report_object(V_RAPPORT);
set_report_object_property(report_id,report_execution_mode,batch);
set_report_object_property(report_id,report_comm_mode,synchronous);
set_report_object_property(report_id,report_desformat,'DELIMITEDDATA');
set_report_object_property(report_id,report_server,serveur);
set_report_object_property(report_id,report_destype,cache);
set_report_object_property(report_id,report_FILENAME,v_nom);
set_report_object_property(report_id,report_other,v_other||' paramform=no ENVID='||'"'||Upper(substr(get_application_property(connect_string), 4))||'"');
report_message := run_report_object(report_id);
vjob_id := substr(report_message,length(serveur)+2,length(report_message));
v_rep_status:= REPORT_OBJECT_STATUS(report_message);
WHILE v_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
v_rep_status := report_object_status(report_message);
END LOOP;
IF v_rep_status='FINISHED' THEN
--WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'||vjob_id||'?envid='||substr(get_application_property(connect_string), 4)||'+mimetype=application/vnd.ms-excel','_blank');
WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'||vjob_id||'?envid='||substr(get_application_property(connect_string), 4)||'+mimetype=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','_blank');
ELSE
message('La production du rapport a échoué avec le message d''erreur '||v_rep_status);
END IF;
IF NOT form_success THEN
CG$FORM_ERRORS.PUSH(CG$FORM_ERRORS.MSGGETTEXT(16, 'PL/SQL held against Button failed to execute'), 'E', 'OFG', 16);
CG$FORM_ERRORS.RAISE_FAILURE;
END IF;
END; |