Usar Jasper Chulupí (Preinscripción y 3W)

Hola Emiliano,
agrego algunas observaciones a las repuestas de Leo que sería importante que tengan en cuenta.
En general, las plantillas en jasper pueden obtener datos a partir de tres medios:

[ol]- A partir de los parámetros enviados a las mismas.

  • A partir de archivos xml enviados a las mismas como fuente de datos.
  • A partir de queries que se realizan en las mismas, contando con una conexión a una base de negocios y que, normalmente, se filtrarán a partir del valor de algún parámetro.[/ol]

En la opción que te propone Leo en la respuesta anterior, es decir que todos los datos que muestre el reporte sean a partir de los parámetros sin utilizar conexión a la base, en el iReports verás que en principio en ReportDataSources deberás elegir la vacía (EmptyDataSource) para poder previsualizar el reporte con esta herramienta. Por otro lado, si tienen como fuente de datos la base, en las propiedades del reporte (haciendo click sobre el nombre del reporte), verás que hay una denominada WhenNoData con opciones: Blank Page, No Pages, etc. Esa propiedad define qué se mostrará en el reporte si no hay datos. Cuando no existe una query asociada al reporte, se considera que no hay datos, por lo tanto deberán tener cuidado de cómo setean esa propiedad si utilizan plantillas sin queries. En la que armé de ejemplo que te enviamos, verás que esa propiedad tiene el valor “All sections, no detail” y por otro lado, que los datos que se quieren mostrar se podrían incluir, más allá del título, en una banda No Data Section. Esa sección les será útil para estos casos, ya que la sección Detail, donde usualmente se ponen los datos, no se mostrará al no haber consulta asociada. Esta opción puede servirles para los casos de reportes y certificados más simples, aunque si requieren listados dinámicos ya no sería factible. En G3 no tenemos reportes ni certificados implementados de esta forma ya que es bastante restrictiva en cuanto a lo que permite diseñar.

Con respecto a la segunda opción, en G3 nosotros la utilizamos mucho cuando previsualizamos un reporte o listado y luego se imprime lo mismo que se ve en pantalla. De esta forma en lugar de volver a realizar la sql en la plantilla, se recuperan los datos que se ven en pantalla en formato xml y se envían a la plantilla. En estos casos lo que se define en el iReports es: en la Query se setea como lenguaje XPath (en lugar de sql), la consulta la definimos como:

/tabla/datos/fila

y cada campo cuyo contenido vendrá en el archivo xml, se define en el reporte como un Field cuya expresión es:

dato[@clave="id_clave_del_campo"]/@valor

En G3 utilizamos directamente un método de Toba vista_xml que recupera ese formato a partir de los componentes como cuadros, etc. Aquí deberían armar el XML ustedes manualmente para luego enviarlo por código:

$report->set_xml(utf8_e_seguro($cadena_con_archivo_xml));

La tercer opción tambíen la utilizamos bastante en G3 y sirve para a partir de algunos parámetros conocidos al momento de la impresión, que la plantilla incluya la query a partir de la cual recupera todos los campos que son mostrados en el texto del Reporte/Certificado. Aquí directamente sólo se setean los parámetros como anteriormente te mostró Leo, y el iReports al definir la plantilla se utiliza la fuente de datos adecuada, definiendo en la query del reporte el lenguaje sql y la consulta deseada (verás que hay una opción “Read Fields” que recupera todos los campos como fields del reporte a partir de la sql especificada). Instalando correctamente el driver para informix, la conexión debería funcionar de igual manera que en postgres.

En la primer parte de este link de constancias y certificados en G3 hay algún detalle de cómo usamos esos diferentes tipos de plantillas en gestión, por si necesitás ampliar algún concepto. Luego hay varias otras opciones y detalles que utilizamos en G3 respecto al diseño de cada plantilla, como el uso de SubDatasets, el uso de cada Sección, las variables internas para conteo de páginas, etc. Si te sirven para diseñas sus plantillas, podés ver ejemplos en los diferentes jrmxl de gestión.

Leo estuvo probando la instalación del driver y pudo hacer funcionar la conexión a informix, así que en breve te enviará un detalle de cómo modificar el código de Chulupí para realizar la conexión, junto con ejemplos de cada tipo de plantilla que armamos para adjuntarles.

Cualquier cosa no dudes en consultarnos!
Saludos,
Gabriela.