Como ejecutar un report en 9i

Rive
06 de Febrero del 2004
Pueden mostrarme el codigo de ejecucion de un report desde un form, esto es en version 9i
Gracias

mbejar
06 de Febrero del 2004
Hola

Este es el procedimieto que uso para ejecutar listados.

Ten encuenta que tienes que crear un objecto informe en el form, con el nombre del fichero asociado

No hagas caso al parametro p_item
El tema de las condiciones es grave si pasa más de dos parámetros comienzas a tener porblemas al ejecutar yo paso solo el PARAMFORM y el Código de ejecucion y todo lo demás lo guardo en una tabla



PROCEDURE pr_imprimir(p_report varchar2
, p_type varchar2
, p_name varchar2
, p_format varchar2
,p_cond varchar2
,p_item varchar2) IS
vserver varchar2(100):=fu_valor('RSER');
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status VARCHAR2(20);
vjob_id VARCHAR2(100); /* job_id as number only string*/
vc_ReportServerJob VARCHAR2(100); /* unique id for each Report request */
vc_rep_status VARCHAR2(100);
cursor c is
select nvl(max(cod_ejecucion),0) +1
from tejecuciones;
l_cod_ejecucion number;
BEGIN

-- return;

open c;
fetch c into l_cod_ejecucion;
close c;
insert into tejecuciones
values (l_cod_ejecucion,p_cond);
copy('25','system.message_level');
commit;
copy('0','system.message_level');

repid := FIND_REPORT_OBJECT(p_report);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,vserver);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,P_FORMAT);
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'p_cod='||to_char(l_cod_ejecucion)||' paramform=no');

vc_ReportServerJob:=RUN_REPORT_OBJECT(repid);

vjob_id:=substr(vc_ReportServerJob,length(vserver)+2,length(vc_ReportServerJob));

-- vc_rep_status := REPORT_OBJECT_STATUS(vc_ReportServerJob);

/* WHILE vc_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
LOOP
vc_rep_status := REPORT_OBJECT_STATUS(vc_ReportServerJob);
END LOOP;
*/
WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'
|| vjob_id||'?server='||vserver,'_blank');

/* IF vc_rep_status='FINISHED' THEN
WEB.SHOW_DOCUMENT ('/reports/rwservlet/getjobid'
|| vjob_id||'?server='||vserver,'_blank');
ELSE
-- PR_MENSAJE ('El listado no se ha podido ejecutar');
null;
end if;*/
/* If finished, check the report status .
vc_rep_status := REPORT_OBJECT_STATUS(vc_ReportServerJob);
IF vc_rep_status='FINISHED' THEN*/
END ;


Un saludo


RICARDO
06 de Febrero del 2004
HOLA SOY UN ESTUDIANTE DE LA UNIV
TENGO interes de aprende oracla

miCORREO ES
[email protected]