#37117
Carranza Carlos
Participante

He logrado hacer un reporte que recibe parámetros, llama a un subreporte pasándole parámetros, el subreporte devuelve algún parámetro totalizado y todo funciona de maravillas.
Consideraciones a tener en cuenta :
– El reporte en Libertya se debe convocar (en la configuración de informes) como .jrxml con su path completo.
– Para el subreporte, desde el reporte, se debe convocar al .jasper y se debe colocar el camino completo ó “./nombre_del_subreporte.jasper” si está en la misma carpeta.
– Aún no lo puse en producción, pero estimo que deberé compartir la carpeta en el servidor para que el mismo sea encontrado (path).
– En muchas oportunidades, en los parámetros, se puede elegir un valor o ninguno. Para ninguno se debe agregar en la consulta “and ($P{M_Shipper_ID} is null OR pa.m_shipper_id = $P{M_Shipper_ID})”
“where pa.m_shipper_id = $P{M_Shipper_ID}” es la forma de preguntar por un parámetro en la consulta, siendo M_Shipper_ID el parámetro del reporte.
IMPORTANTE: las fechas no son null (falla la consulta) por lo tanto deben ir como parámetro obligatorio (probé con extract pero no logré la interpretación de nulo).
– Los parámetros Integer de Libertya, son BigDecimal al ser recibidos por el reporte, por lo tanto configurar el párametro como tal.
– Los parámetros deben tener el mismo nombre en la pantalla de solicitud de los mismos y el reporte y en el reporte deben estar marcados para ser solicitados.
– Primero debe funcionar en iReport y luego lo hará en Libertya.
– En las propiedades del subreporte, pestaña subinformes, ventana expresión subreport, se debe colocar el nombre del subreporte (“.//PackList_SubPackages_din2.jasper” – yo lo tengo en la misma carpeta que el reporte padre .jrxml)
– En las propiedades del subreporte, pestaña subinformes, parámetros subinforme, van los parámetros que se pasan al subinforme (un field del reporte padre a un parameters del reporte hijo).
– En las propiedades del subreporte, pestaña subinformes, valores de retorno, van los parámetros que devuelve el subinforme (hay que definir una variable en el reporte padre para que reciba la variable del reporte hijo donde se hicieron cálculo que debe devolver – por ej. la sumarización de una columna en el subreporte).
– Ya no es necesario el parámetro “SUBREPORT_DIR” en el reporte padre (no sé si antes lo era, pero por las dudas).
– Si está fin definido el subreporte, (en el reporte padre) al seleccionarlo (clic derecho) – Abrir Subreporte, los debería llevar al subreporte.

Puse todos los puntos que me dieron algo de trabajo, algunos más otros menos. El resto es “hacer” el reporte, subreporte y la/s consulta/s. Espero que le sirva al resto.