Pasar directamente de la forma a PDF
Publicado por Anoni (1 intervención) el 16/12/2005 07:55:58
Mi problema es que quiero conseguir que de una forma el informe me aparezca en pdf y no tener que darle a un report y de alli transformarlo.
Lo que hag oes lo siguiente:
1º llamo a una unidad de programa pasandole:
lanza_report_object('.\Rep\nomina_zara\IRPF_FIJO.RDF',lp,'irpf_fijo');
donde lo primero es la direccion del informe, la lista de parametros y e lnombre del fichero a crear.
la unidad de programa tiene estas caracteristicas
PROCEDURE lanza_report_object
(report in varchar2,parametros in paramlist ,nombre_destino in varchar2 default ' ' ) IS
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status varchar2(20);
Wreport_Out varchar2(100);
WCopia varchar2(100);
ReportName varchar2(100);
v_tmp varchar2(100);
v_comando varchar2(100);
BEGIN
--Localizacion del directorio temporal del sistema
Tool_Env.Getvar('TMP',v_tmp);
--Localizacion del report a ejecutar
RepId:=Find_Report_Object(report);
IF not FORM_SUCCESS THEN
error('Error','Imposible localizar el Report, '||REPORT||', a ejecutar');
raise form_trigger_failure;
end if; -- Tipo de salida (FILE para Windows)
Wreport_Out := v_tmp ||nombre_destino;
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESNAME,Wreport_Out);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESTYPE,FILE);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_SERVER,'');
--Borramos el fichero informe.pdf generado en la anterior ejecucion
-- Si command.com tiene la propiedad ejecucion en pantalla completa de un "pantallazo" molesto.
v_comando := 'del '||Wreport_out;
host(v_comando,no_screen);
-- Lanzamiento del report
v_Rep := Run_Report_Object(RepId);
If not form_success then
Error('Atencion','Error al ejecutar el informe: ||Wreport');
raise form_trigger_failure;
end if;
v_comando := 'START '||WREPORT_OUT;
host(v_comando,no_screen);
WCopia:='N';
Rep_Status:=NULL;
ReportName := Get_Report_Object_Property (RepId,REPORT_FILENAME);
end;
Me da error esta sentencia :
RepId:=Find_Report_Object(report);
me pone que no localiza el fichero. Si alguien sabe el solucionarlo u otra forma que me responda, pplissssssss, GRacias por todo y perdon por todo este codigo.
Lo que hag oes lo siguiente:
1º llamo a una unidad de programa pasandole:
lanza_report_object('.\Rep\nomina_zara\IRPF_FIJO.RDF',lp,'irpf_fijo');
donde lo primero es la direccion del informe, la lista de parametros y e lnombre del fichero a crear.
la unidad de programa tiene estas caracteristicas
PROCEDURE lanza_report_object
(report in varchar2,parametros in paramlist ,nombre_destino in varchar2 default ' ' ) IS
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
rep_status varchar2(20);
Wreport_Out varchar2(100);
WCopia varchar2(100);
ReportName varchar2(100);
v_tmp varchar2(100);
v_comando varchar2(100);
BEGIN
--Localizacion del directorio temporal del sistema
Tool_Env.Getvar('TMP',v_tmp);
--Localizacion del report a ejecutar
RepId:=Find_Report_Object(report);
IF not FORM_SUCCESS THEN
error('Error','Imposible localizar el Report, '||REPORT||', a ejecutar');
raise form_trigger_failure;
end if; -- Tipo de salida (FILE para Windows)
Wreport_Out := v_tmp ||nombre_destino;
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESNAME,Wreport_Out);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_DESTYPE,FILE);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_EXECUTION_MODE,BATCH);
SET_REPORT_OBJECT_PROPERTY(RepId,REPORT_SERVER,'');
--Borramos el fichero informe.pdf generado en la anterior ejecucion
-- Si command.com tiene la propiedad ejecucion en pantalla completa de un "pantallazo" molesto.
v_comando := 'del '||Wreport_out;
host(v_comando,no_screen);
-- Lanzamiento del report
v_Rep := Run_Report_Object(RepId);
If not form_success then
Error('Atencion','Error al ejecutar el informe: ||Wreport');
raise form_trigger_failure;
end if;
v_comando := 'START '||WREPORT_OUT;
host(v_comando,no_screen);
WCopia:='N';
Rep_Status:=NULL;
ReportName := Get_Report_Object_Property (RepId,REPORT_FILENAME);
end;
Me da error esta sentencia :
RepId:=Find_Report_Object(report);
me pone que no localiza el fichero. Si alguien sabe el solucionarlo u otra forma que me responda, pplissssssss, GRacias por todo y perdon por todo este codigo.
Valora esta pregunta
0