Abrir un reporte desde una forma

cdiaz
16 de Febrero del 2005
Tengo una forma y deseo abrir un reporte dando click en un boton, y que cuando haa click llame el reporte y pregunte por los parametros que ese reporte tiene.

GonzaTbo
16 de Febrero del 2005
DECLARE
Report_Id report_object;
v_rep varchar2(200);
document varchar2(500);
rep_status VARCHAR2(20);
BEGIN
Report_id := FIND_REPORT_OBJECT('PRUEBA');
v_rep := RUN_REPORT_OBJECT(report_id);

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;
-- When the report is done, open up a new window and display it
IF rep_status = 'FINISHED' THEN
WEB.SHOW_DOCUMENT('http://localhost:8888/reports/rwservlet/getjobid'|| substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=nombre','_blank');
END IF;
END;

--------
Esto no es todo, tenes que instalar el server en DOS, usando

rwserver – intal nombre
llenar las propiedades del reporte (dentro del form). Cache, html, syncrhonic, etc

Luis Fernando Piedrahita Avila
16 de Febrero del 2005
Puedes usar el RUN_PRODUCT built-in. Te explico como enviar parametros con una lista de parametros llamada p_id.

Ejemplo:

pl_id := Create_Parameter_List('tmpdata');
Add_Parameter(pl_id,'ORACLE_SHUTDOWN',TEXT_PARAMETER,'YES');
Add_Parameter(pl_id,'PAGESIZE', TEXT_PARAMETER,'20 x 20');
Add_Parameter(pl_id,'parametro_en_e_lreporte', TEXT_PARAMETER,:bloquedatos.item);

Run_Product(REPORTS, 'mireporte', SYNCHRONOUS, BATCH, FILESYSTEM, pl_id, NULL);

En cuanto a los parámetros te los mostrará si los has definido en el reporte en una Forma de parámetros.

Para mas información consulta la ayuda de FORMS.

Verodelarosa
16 de Febrero del 2005
Puedes poner en un botón en el when-button-pressed o en un boton de menu un codigo host de la siguiente manera:

DECLARE
comando varchar2(500):=null;
BEGIN
comando:='rwrun60'||' report='||:global.ruta_reportes||'areas'||
' userid='||:global.nom_us||'/'||:global.contra||'@'||:GLOBAL.CONEXION;
host(comando);
END;

obviamente en el when-new-form-instance debes asignar los valores del nombre d eusuario y password a las variables globales que ahi se utilizan.