You will have to use WEB.SHOW_DOCUMENT in your Print or Run Button
for e.g.
Declare
repid REPORT_OBJECT;
v_rep VARCHAR2(1000);
rep_status VARCHAR2(20);
BEGIN
repid := find_report_object('YOURREPORTNAME');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'YOURREPORTEXTENSION');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'servername');
v_rep := RUN_REPORT_OBJECT(repid);
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
web.show_document ('http://<server>:<port>/reports/rwservlet/showjobs?server=servername' ||
substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=servername','_blank');
ELSE
message('Error when running report');
END IF;
END;
Javed