! Urgente! - Ejecutar un reporte con parámetros

Son dos preguntitas super urgentes:
1. Tengo un reporte que deseo llamar desde un botón "imprimir" ubicado en una forma. ¿Cómo hago para llamarlo?
2. ¿Cómo hago para darle parámetros?, es decir, ¿qué cuándo vaya a ejecutar el reporte me pregunte por el nombre de una persona y me ejecute el reporte solo por esa persona y no para todos los registros?

1 respuesta

Respuesta
1
Espero que esto te ayude.
En el caso de pasar un valor se crea el parámetro y lo agregas a la lista de parámetros.
Ejemplo de pasar parámetros
PROCEDURE Ejecuta_Reporte(Nombre_xP In varchar,
Consulta_xP In varchar,
Orden_xP In varchar Default NULL,
titulo_ad_xp in varchar)
Is
Pl_Id ParamList;
Begin
Pl_Id := Create_Parameter_List('Parametros_Reporte');
Add_Parameter(Pl_Id,'p_no_cia',Text_Parameter,:global.n_cia);
Add_Parameter(Pl_Id,'p_order_by',Text_Parameter,orden_xp);
Add_Parameter(Pl_Id,'p_where',Text_Parameter,consulta_xp);
Add_Parameter(Pl_Id,'p_titulo_adicional',Text_Parameter,titulo_ad_xp);
Add_Parameter(Pl_Id,'p_nombre',Text_Parameter,:global.n_nombre);
Add_Parameter(Pl_Id,'p_fecha',Text_Parameter,to_char(:opciones.fecha,'dd/mm/yyyy'));
Add_Parameter(Pl_Id,'p_usuario',Text_Parameter,:global.usuario);
Add_Parameter(Pl_Id,'p_id',Text_Parameter,:global.id_usuario);
/*
if :destino.formato is null then
Add_Parameter(Pl_Id,'desformat',Text_Parameter,'tif1');
else
Add_Parameter(Pl_Id,'desformat',Text_Parameter,:destino.formato);
end if;
*/
Add_Parameter(Pl_Id,'DESTYPE',Text_Parameter,:Destino.Dispositivo);
If :Destino.Dispositivo = 'Printer' Then
Add_Parameter(Pl_Id,'DESNAME',Text_Parameter,:destino.Nombre_Dispositivo);
End If;
if :destino.dispositivo = 'file' then
Add_Parameter(Pl_Id,'destype',Text_Parameter,'file');
Add_Parameter(Pl_Id,'desname',Text_Parameter,:destino.nombre_dispositivo);
end if;
Add_Parameter(Pl_Id,'ParamForm',Text_Parameter,'NO');
-- llama al reporte
Run_Product(Reports,nombre_reporte,Synchronous,RunTime,FileSystem,Pl_Id,Null);
Destroy_Parameter_List(Pl_Id);
End;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas