Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
IMPRIMIR DESDE FORM
Enviado por jvolarte el día 31 de mayo de 2006
Se Puede imprimir algún reporte desde form sin tener que levantarel developer report, es decir se me ocurre con un botón o un procedimiento invocar la impresión de dicho reporte.
Enviado por Rodolfo Reyes el día 31 de mayo de 2006
Lo que se puede es ejecutar un reporte desde form, y por medio de parametros le indicas que no quieres previsualizarlo en la pantalla si no que se imprima. Esto causa el efecto de que al oprimir un boton se imprime el reporte.
Para esto utilizas el parametro DESTYPE y le pones como valor PRINTER.
yo para imprimir directamente desde form lo que hago es lo siguiente:
un program unit ,
PROCEDURE IMPRIMIR (Informe in varchar2, PARAMETROS IN VARCHAR2) IS
report_id REPORT_OBJECT;
report_job_id VARCHAR2(100);
rep_status VARCHAR2(20);
JOB_NUMBER number;
BOTON NUMBER;
BEGIN
report_id := FIND_REPORT_OBJECT ('INFORME');
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_DESTYPE, PRINTER);
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_FILENAME, Informe||'.rdf');
--SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_DESFORMAT, 'HTML');
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_DESNAME, :GLOBAL.PRINTER);
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_EXECUTION_MODE, RUNTIME);
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_COMM_MODE, SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY (report_id, REPORT_SERVER, :global.rep_server);
--
if parametros is not null then
set_report_object_property(report_id, REPORT_OTHER,PARAMETROS);
end if;
--
report_job_id := RUN_REPORT_OBJECT (report_id);
rep_status := REPORT_OBJECT_STATUS (report_job_id);
WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
rep_status := report_object_status (report_job_id);
END LOOP;
IF rep_status != 'FINISHED' THEN
MESSAGE('Se ha producido un error');pause;
raise form_trigger_failure;
END IF;
END;