Oracle - Report ejecutado desde Forms -6i

 
Vista:

Report ejecutado desde Forms -6i

Publicado por Fernando (1 intervención) el 13/04/2007 16:11:46
Hola a todos!!
Podrian ayudarme hace mucho que no agarro Report y no me acuerdo como hacerlo: Tengo que ejecutar un listado desde una pantalla de Forms con una serie de campos con LOV obligatorios y otros campitos sinLOV, el caso es que si no pongo nada en uno de los campos que no tienen LOV (por ejemplo :P_CD_PRODUCTO), el Report me tendria que traer todo, pero no lo puedo lograr, ¿ que me sugieren?
Tengo un AFTERPARAMETERFORM QUE se dispara para traerme los datos en el mismo armo la condicion. Les dejo el codigo de este trigger:

Muchas gracias de antemano !
Saludos.

function AfterPForm return boolean is

W_CLAUSULA VARCHAR2(2000);
begin
W_CLAUSULA := NULL;
IF :P_RAMO IS NOT NULL THEN
W_CLAUSULA := ' CJSI_CARP_CD_RAMO = :P_RAMO ';
END IF;
-- W_CLAUSULA := ' CJSI_CARP_CD_RAMO = 4 ';

IF :P_PERIODO IS NOT NULL THEN
IF W_CLAUSULA IS NOT NULL THEN
W_CLAUSULA := W_CLAUSULA || ' AND ';
END IF;
W_CLAUSULA := W_CLAUSULA ||' ( CJCL_FE_ESTADO BETWEEN TRUNC(:P_PERIODO,' || '''' ||'DD'||''''||') AND LAST_DAY(TRUNC(:P_PERIODO,'||''''||'DD'||''''||') ) ) ';
END IF;

IF :P_CD_PRODUCTOR IS NOT NULL THEN
IF W_CLAUSULA IS NOT NULL THEN
W_CLAUSULA := W_CLAUSULA || ' AND ';
END IF;
W_CLAUSULA := W_CLAUSULA || ' CACE_CAPD_CD_PRODUCTOR = :P_CD_PRODUCTOR ';
END IF;

IF :P_CD_ASEGURADO IS NOT NULL THEN
IF W_CLAUSULA IS NOT NULL THEN
W_CLAUSULA := W_CLAUSULA || ' AND ';
END IF;
W_CLAUSULA := W_CLAUSULA ||' CACE_CABU_NU_PERSONA = :P_CD_ASEGURADO ';
END IF;

:P_WHERE_CLAUSULA := W_CLAUSULA;
return (TRUE);
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Report ejecutado desde Forms -6i

Publicado por Rodolfo Reyes (445 intervenciones) el 18/04/2007 21:40:20
Yo para eso utilizo NVL y los datos los envio a los parametros de usuario.

Por ejemplo, supon que tienes dos parametros.

1) Fecha
2) Empleado

Ahora supon que tienes el siguiente query que forma el reporte

select codigo, nombre, fecha_Marcas, hora
from marcas_empleado
where codigo = nlv(:empleado,codigo) and
fecha_marca = nvl(:fecha,fecha_marca)

Cuando el codigo de empleado sea nulo, saldran todos los empleados, y cuando la fecha sea nula, saldran todas las fechas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar