Buenos dias
Estoy queriendo hacer unas modificaciones al Reporte “Constancia de Actividades Aprobadas”
No encontré una documentación donde se indique como se deben hacer este tipo de personalizaciones.
Me descargué iReport 5.6. Abrí el jrxml en cuestión, pero a la hora de intentar ejecutar el reporte me dice: ERROR: no existe la relación «sga_constancias_solicitud»
Eso es porque no se tiene definido el schema (si modifico la consulta y en el from lo cambio por negocio.sga_constancias_solicitud, la consulta funciona, pero no creo que sea esta la solución correcta)
Alguien me puede indicar la documentación para poder hacer las personalizaciones correctamente?
Asimismo, existe la posibilidad de hacer subreportes?
La documentación sobre estas personalizaciones la podés encontrar en este enlace.
Si lo que necesitás es documentación del uso del editor iReport, podés consultar la documentación de la herramienta, particularmente te puede ser útil este enlace.
Con respecto al reporte que consultás, la SQL está embebida dentro del reporte y no se necesita especificar el schema negocio, se lo pasa el sistema. ¿Cómo estás probándolo? Tal vez acá esté la clave del asunto.
¿A qué te referís concretamente? ¿Podrías dar un ejemplo?
Entiendo que el sistema pasa el schema, por eso creeria que no es la solucion modificar la consulta.
Yo estoy probando… desde iReport, cree una conexion con la siguiente URL jdbc:postgresql://localhost:5432/gestion?currentSchema=negocio
Y luego hago el preview desde el iReport, le paso los parámetros que me pide y lanza el error mencionado.
Respecto a subreportes…
Digamos que quiero un reporte con 3 tablas.
Actividades Aprobadas
Actividades Desaprobadas
Tesis
Cada una de ellas con una estructura diferente.
Entonces mi idea es tener un reporte padre que tiene titulos, y pie
Luego un subreporte que hará la consulta de actividades aprobadas y mostrará unas columnas
Luego otro subreporte que hará la consulta respectiva y mostrará otras columnas
Por ultimo un tercer subreporte con la consulta de tesis y sus columnas
Hola Cristian,
por el tema de probar los reportes utilizando el preview desde el iReports, efectivamente parecería que no está tomando el esquema de la url de la conexión. Lo que podés hacer es setear por defecto el esquema en la base, nosotros acá siempre lo tenemos configurado así en general para facilitar las pruebas de las queries desde el pgadmin, etc, por eso no habíamos notado este tema.
Esto podés configurarlo:
Desde el pgadmin, seleccionando la base, click derecho, properties/variables/search_path y editándola con el valor ‘negocio’.
Alternativamente desde postgres ejecutando: ALTER DATABASE gestion SET search_path = negocio;
De este modo no es necesario que incluyas el esquema en la url de la conexión y podrás probar los reportes ejecutando el preview desde el ireports. Cuando los reportes se levantan desde el sistema, como te indicaba Fernando, esos datos se toman directamente de la conexión utilizada por Toba.
En cuanto a los subreportes, dicha facilidad no era provista por la versión de iReports inicial que utilizamos en Guaraní, por este motivo no tenemos ninguna plantilla que los utilice. Cuando necesitamos más de una query utilizamos elementos List y Subdatasets, como está por ejemplo en el reporte al que hacés mención. Sin embargo en la versión actual (5.6) sí se proveen, así que tranquilamente podrían utilizarlos en sus personalizaciones si lo desean.
Recuerden que los reportes personalizados, serán nuevas plantillas jrxml incluídas en su carpeta de personalizaciones, tal como se indica en la documentación que te pasó Fernando, sin modificar las provistas en el core de Guaraní.
Hola Cristian,
sí es verdad, en las versiones anteriores de jasper teníamos conflictos con las queries que incluían funciones en esquemas diferentes de ‘public’, por eso dicha función se encontraba definida ahí. En la última versión en curso ya fue resuelto y la función fue movida al esquema negocio.
Para que funcione el preview desde el iReports entonces en este caso, deberías agregar el public al search_path, es decir modificar dicha variable como lo realizaste anteriormente pero incluyendo ambos esquemas en ese orden: ALTER DATABASE gestion SET search_path = negocio, public;
posiblemente tenga que ver con que el driver que utiliza en la conexión el iReports para hacer el preview no busque en public por defecto, como sí sucede al levantar los reportes desde el sistema.
Cualquier cosa avisanos.