Tutorial de JasperReports: ¿Para qué sirve JasperReports? Java?

⚡ Resumen inteligente

JasperReports para Java Jaspersoft Studio es un motor de informes de código abierto que transforma los datos de las aplicaciones en documentos con una precisión impecable. Este artículo explica el ciclo de vida de los informes, la instalación de Jaspersoft Studio, la creación de plantillas de informes, la estructura de bandas, una comparación con Pentaho y las limitaciones prácticas que suelen encontrar los equipos.

  • 📊 Definición básica: JasperReports es un Java Biblioteca de clases que genera datos para pantalla, impresora, PDF, HTML, XLS, RTF, CSV, XML, ODT y TXT.
  • 🔄 Etapas del ciclo de vida: Se llevan a cabo cuatro etapas en orden: diseñar el JRXML, compilarlo en un archivo .jasper, rellenarlo con datos y exportar el resultado.
  • 🖥️ Entorno de diseño: Jaspersoft Studio Community Edition proporciona el diseñador visual, y la versión 6.21.3 es la versión comunitaria actual.
  • 🧩 Estructura de bandas: Las bandas de título, encabezado de página, encabezado de columna, detalle, pie de columna, pie de página y resumen controlan dónde se imprime cada elemento.
  • ???? Flexibilidad de datos: Un único informe puede combinar JavaColecciones de beans, conjuntos de resultados SQL, archivos XML y adaptadores de datos personalizados.
  • 🇧🇷 Comparación de plataformas: Jaspersoft es líder en documentación e inteligencia empresarial móvil, mientras que Pentaho lidera en paneles de control y minería de datos.
  • ⚠️ Limitación conocida: Los informes deben compilarse antes de su ejecución, por lo que cada desarrollador de informes necesita un completo Java SDK instalado.

Tutorial de informes de Jasper

¿Para qué sirve JasperReports? Java?

JasperInformes es una herramienta de informes de código abierto para Java que se utiliza para generar informes de aplicaciones. Esta herramienta de informes ayuda a escribir contenido enriquecido en la pantalla, en la impresora o en una variedad de archivos como HTML, PDF, XLS, RTF, CSV, XML, ODT y TXT. JasperReports también se puede utilizar para Javaaplicaciones habilitadas como Java EE o aplicaciones web para generar contenido dinámico.

En la mayoría de las discusiones, aparecen tres nombres de productos juntos, y separarlos desde el principio evita confusiones más adelante en esta página.

Nombre ¿Qué es? ¿Quién lo usa?
Biblioteca JasperReports El Java biblioteca que compila, rellena y exporta informes Java desarrolladores que integran informes en una aplicación
Estudio Jaspersoft El Eclipse Diseñador visual que produce archivos JRXML Diseños de edificios para diseñadores de informes
Servidor JasperReports Un servidor independiente que almacena, programa y entrega informes. Equipos que distribuyen informes a los usuarios empresariales

Esta página se centra en la biblioteca y en Jaspersoft Studio, ya que estos dos componentes son todo lo necesario para diseñar y ejecutar un primer informe. Cabe destacar que la edición comunitaria ahora solo incluye estos dos componentes, puesto que JasperReports Server ya no se ofrece como descarga comunitaria.

¿Por qué utilizar Jasper Reports?

Existen muchas razones para utilizar una herramienta de informes Jasper:

  • Ofrece rendimiento de generación de informes y entrega a los usuarios.
  • Le ayuda a representar sus datos en formato textual o gráfico.
  • Es un servidor de informes independiente e integrado para la compilación y ejecución de informes.
  • Permite el control de acceso basado en roles a todos los informes del repositorio.
  • Existe un framework de Spring Security disponible para su integración con sistemas de autenticación internos.
  • Ofrece un motor de informes interactivos seguro, programado y de entrega automática.
  • Puede incrustar informes en Java o noJava aplicaciones.
  • Se pueden exportar varios formatos de informes.
  • Puede generar marcas de agua que se colocan sobre la imagen principal.
  • Ofrece un conjunto completo de JABÓN, REST y Servicios Web.
  • Le permite utilizar datos de informes únicos de múltiples fuentes de datos.

Debido a que la biblioteca se publica bajo la licencia LGPL, se puede incluir dentro de productos comerciales sin un cargo por usuario, que es la razón por la que muchos Java Los equipos lo prefieren a los motores de informes propietarios.

Características de los informes Jasper

Ahora, repasaremos las características de JasperReports.

Estas son las características importantes de la herramienta Jasper Reports:

  • Ofrece un diseño de informe flexible que abarca bandas, columnas y regiones de formato libre.
  • Los desarrolladores pueden proporcionar datos de múltiples maneras, incluyendo: JavaColecciones de beans, consultas SQL y documentos XML.
  • Mediante subinformes y adaptadores de datos, se pueden combinar varias fuentes de datos en un único informe.
  • También se pueden aplicar marcas de agua sobre la imagen principal.
  • Puede generar subinformes anidados dentro de un diseño principal.
  • Le ayuda a exportar informes en una variedad de formatos como (PDF), HTML, RTF y Microsoft Archivos de Excel.
  • El motor permite que las definiciones de informes incluyan gráficos como barras, circulares, de líneas y de series temporales.
  • Las expresiones de informe se pueden escribir en Java, Groovy, o JavaGuión.

Estas capacidades se exponen a través de una secuencia de procesamiento fija, que la siguiente sección describe paso a paso.

Ciclo de vida de JasperReports

Ahora aprenderemos sobre el ciclo de vida de JasperReports.

A continuación se describe el flujo general del ciclo de vida de Jasper Reports:

Ciclo de vida de JasperReports

El diagrama anterior muestra las cuatro etapas en orden. Cada etapa produce un archivo que se convierte en la entrada de la siguiente etapa, por lo que la secuencia nunca se puede invertir.

Fase Entrada Resultado Extensión de archivo
Diseño Decisiones de diseño Reportar plantilla .jrxml
Compilación archivo .jrxml Plantilla binaria compilada .jaspe
Ejecutando Archivo .jasper más datos Informe cumplimentado .jrprint
Exportación archivo .jrprint Documento final .pdf, .html, .xls y otros

Diseño del informe

Este será el primer paso, donde crearemos el archivo JRXML. Se trata de un documento XML sencillo que define el diseño del informe. Puedes crear este archivo con cualquier editor de texto o un diseñador de informes.

Sin embargo, si utiliza el diseñador de informes, podemos visualizar el diseño del informe y se puede ignorar la estructura real del JRXML.

Elaboración del informe

En esta etapa del ciclo de vida, el archivo JRXML que se creó en la primera etapa se compila y se genera un objeto binario llamado archivo Jasper (archivo con extensión .jasper).

Esta compilación se realiza para obtener un mejor rendimiento durante la ejecución. Estos archivos Jasper generados deben enviarse junto con su aplicación para ejecutar los informes.

Ejecutar el informe

En esta etapa, los datos de la solicitud se recopilan y se completan en el formato de informe compilado. Existe una clase llamada net.sf.jasperreports.engine.JasperFillManager que ofrece funciones para completar los datos de los informes.

El resultado se almacenará en un archivo de impresión de Jasper (archivo con extensión .jrprint) que podrá utilizarse para imprimir o exportar el informe.

Exportar el informe al formato deseado.

En esta última etapa, debe exportar el archivo de impresión de Jasper que se creó anteriormente a cualquier formato utilizando la clase JasperExportManager. Como Jasper ofrece múltiples formatos de exportación, podemos usar la misma entrada para crear varias representaciones de los datos.

Cómo instalar Jasper Reports: configuración del entorno

Ahora, veamos el proceso paso a paso para configurar el entorno de JasperReports. Las capturas de pantalla que se muestran a continuación se tomaron con el instalador 6.9. La versión comunitaria actual es la 6.21.3, publicada el 23 de abril de 2024, y la secuencia de pantallas no ha cambiado, aunque el número de versión en el nombre del archivo es diferente.

Paso 1) Descargar Jasper Reports Community Edition
Ve a esto Enlace y haga clic en la opción Descargar ahora para instalar la edición comunitaria de Jasper Reports.

Instale Jasper Reports: configuración del entorno

Paso 2) Seleccione Jaspersoft Studio CE
De las ediciones comunitarias, seleccione Jaspersoft Studio CE.

Instale Jasper Reports: configuración del entorno

Paso 3) Descargar Jaspersoft Studio
Ve a esto este enlace y haga clic en el botón Descargar, luego abra el archivo ejecutable del instalador descargado para su sistema operativo.

Instale Jasper Reports: configuración del entorno

Paso 4) Haz clic en el botón "Aceptar"
Aparecerá la siguiente pantalla. Seleccione el botón "Acepto".

Instale Jasper Reports: configuración del entorno

Paso 5) Elegir la ubicación
Seleccione la ubicación de instalación y haga clic en el botón Siguiente.

Instale Jasper Reports: configuración del entorno

Paso 6) El progreso está en marcha ahora
Verás el progreso en la siguiente pantalla.

Instale Jasper Reports: configuración del entorno

Paso 7) Haga clic en el botón Finalizar
En la siguiente pantalla, haga clic en el botón finalizar.

Instale Jasper Reports: configuración del entorno

Paso 8) El progreso está completo
La siguiente pantalla aparecerá en su ventana.

Instale Jasper Reports: configuración del entorno

Paso 9) Empezar
A continuación, haga clic en la opción "Comenzar".

Instale Jasper Reports: configuración del entorno

Paso 10) Empieza a trabajar con el estudio Jasper Reports
Aparecerá la siguiente pantalla y podrá comenzar a trabajar con Jasper Reports Studio.

Instale Jasper Reports: configuración del entorno

💡 Consejo: Jaspersoft Studio es un Eclipse aplicación basada en y necesita un compatible Java El entorno de ejecución debe estar presente en la máquina. Si el instalador no se inicia, confirme la versión de JDK instalada antes de reinstalar.

Ejemplo de creación de una plantilla de informe

Ahora vamos a aprender cómo crear una plantilla de informe en JasperReports.

El archivo de plantilla de informe utilizado en JasperReports es un archivo XML simple con la extensión .jrxml. Este archivo contiene la etiqueta jasperReport como elemento raíz. El marco de trabajo JasperReports puede gestionar diferentes tipos de fuentes de datos.

Se diseña y crea una plantilla de informe siguiendo los siguientes pasos.

Paso 1) Creando el archivo JRXML en Jaspersoft Studio.

  1. Ve a la opción Archivo.
  2. Seleccione el submenú Nuevo.
  3. Haz clic en la opción Informe Jasper.

Ejemplo de creación de una plantilla de informe

Paso 2) Seleccionando la plantilla deseada.

  1. Seleccione su plantilla, por ejemplo, cereza.
  2. Haga clic en el botón "Siguiente".

Ejemplo de creación de una plantilla de informe

Paso 3) Seleccionar una carpeta principal.

  1. Seleccione la carpeta Mis informes.
  2. Ingrese el nombre del archivo, por ejemplo, "Cherry Report".
  3. Haga clic en el botón "Siguiente".

Ejemplo de creación de una plantilla de informe

Paso 4) En la ventana Origen de datos, haga clic en el botón "Nuevo" para crear un nuevo adaptador de datos.

Ejemplo de creación de una plantilla de informe

Paso 5) Seleccionar un adaptador de datos.

  1. Seleccione el adaptador de datos de la lista desplegable. Por ejemplo, “Colección de JavaFrijoles."
  2. Haga clic en el botón "Siguiente".

Ejemplo de creación de una plantilla de informe

Paso 6) Introducir los detalles del adaptador de datos y seleccionar la clase de fábrica.

  1. Ingrese un nombre para su adaptador.
  2. Seleccione la clase de fábrica haciendo clic en el botón “…”.

Ejemplo de creación de una plantilla de informe

Paso 7) Introducir el prefijo o patrón.

  1. Introduzca el prefijo o patrón del nombre.
  2. Haga clic en elementos coincidentes.
  3. Haga clic en el botón "Aceptar".

Ejemplo de creación de una plantilla de informe

Paso 8) Definir la clase de fábrica y agregar la ruta a los archivos jar.

  1. Ingrese el nombre de un método estático en la clase de fábrica. En este ejemplo de informes de Jasper, esto es createBeanCollection.
  2. Si JavaLa definición de los beans tiene descripciones de campo, y si desea utilizarlas como nombres en Jaspersoft Studio, marque la casilla de verificación "Usar descripción de campo".
  3. Agregue una ruta a sus archivos jar.
  4. Haz clic en el botón “Finalizar”.

Ejemplo de creación de una plantilla de informe

Paso 9) Haga clic en el botón "Siguiente".

Ejemplo de creación de una plantilla de informe

Paso 10) ¡Enhorabuena! Has añadido correctamente toda la información necesaria para la creación del informe. Haz clic en el botón «Finalizar».

Ejemplo de creación de una plantilla de informe

El informe se generará tal como se muestra en la pantalla a continuación.

Ejemplo de creación de una plantilla de informe

El archivo mencionado anteriormente requiere ser compilado al formato binario de JasperReport, que se denomina archivo jasper.

La interfaz net.sf.jasperreports.engine.design.JRCompiler, que forma parte de la biblioteca JasperReports, desempeña un papel importante en la compilación de este archivo de plantilla de informe.

La implementación de esta interfaz se puede escribir en Java, JavaScript, Groovy, o cualquier otro lenguaje de programación.

Puedes compilar un archivo JRXML utilizando los dos métodos siguientes:

  • Compilación programática de Java código.
  • Compilación utilizando un Hormiga Apache tarea.

El fragmento a continuación muestra la ruta programática, donde una línea compila la plantilla y una segunda línea la rellena con un JavaColección de frijoles.

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class ReportRunner {

    public static void main(String[] args) throws JRException {

        // 1. Compile the JRXML template into a .jasper file
        JasperReport report = JasperCompileManager.compileReport("CherryReport.jrxml");

        // 2. Fill the compiled template with a collection of beans
        JRBeanCollectionDataSource source =
                new JRBeanCollectionDataSource(EmployeeFactory.createBeanCollection());

        JasperPrint print = JasperFillManager.fillReport(report, null, source);

        // 3. Export the filled report to PDF
        JasperExportManager.exportReportToPdfFile(print, "CherryReport.pdf");

        System.out.println("Report exported successfully");
    }
}

Salida:

Report exported successfully

Comprender las diferentes bandas de informe

Un diseño de JasperReports se divide en secciones horizontales llamadas bandas. Cada banda tiene una regla de impresión fija, y comprender esas reglas es lo que permite al diseñador controlar con precisión dónde aparece un valor en el documento final.

A continuación se muestran las bandas de informe estándar adoptadas por la mayoría de las herramientas comerciales de generación de informes.

  • Título
  • Encabezado de página
  • Encabezado de la columna
  • Detail
  • Pie de columna
  • Pie de página
  • pie de página de la última página
  • Resumen
  • Encabezado de grupo
  • Pie de página del grupo
  • Fondo
  • No hay datos

Analicemos en detalle cada rango de frecuencia de reporte.

Título

Esta banda se muestra al inicio del informe. Se puede colocar en su propia primera página configurando el atributo. isTitleNewPage="true".

Encabezado de página

La banda de encabezado de página se muestra al principio de cada página. Excluye la primera página si se utiliza la banda de título y la última página si se utiliza la banda de resumen con la configuración isSummaryWithPageHeaderAndFooter="false".

Encabezado de columna

Los encabezados de columna aparecen antes de la banda de detalles en cada página.

Detail

La sección de detalles se itera para cada registro de la fuente de datos proporcionada. También se permite que tenga varias bandas de detalles (1, 2, etc.).

Pie de columna

Esta sección aparece debajo de la banda de detalles en cada página donde esta esté presente. La configuración predeterminada es el final de la página, pero se puede cambiar para que se ubique debajo de la última banda de detalles configurando el atributo. isFloatColumnFooter="true".

Pie de página

Esta sección se mostrará al final de cada página, excluyendo la banda de resumen, la banda de título y la última banda que no sea de resumen.

Pie de página de la última página

Esta sección aparece en la última página, en lugar del pie de página habitual, cuando no se incluye una banda de resumen.

Resumen

La sección de resumen solo aparece al final del informe en una página nueva cuando isSummaryNewPage="true" está configurado, y con encabezado y pie de página cuando isSummaryWithPageHeaderAndFooter="true" se establece.

Encabezado de grupo

Esta sección solo aparece cuando está definida, cada vez que cambia la expresión del grupo, antes de la banda de detalles.

Pie de página del grupo

Esta sección solo se muestra si se ha definido un grupo, siempre antes de que cambie la expresión del grupo, después de la banda de detalles.

Fondo

Se muestra en todas las páginas como fondo para todas las demás bandas de información.

Sin límites

Esta banda aparecerá cuando no se haya pasado ninguna fuente de datos, o la fuente de datos esté vacía y whenNoDataType="NoDataSection" se establece.

Jasper contra Pentaho

Ahora aprenderemos sobre la diferencia entre Jasper y Pentaho.

Estas son las principales diferencias entre Jasper y Pentaho:

Parámetros Jaspe Pentaho
Informes Jasper utiliza Jaspersoft Studio para diseñar los informes. Utiliza el Diseñador de Informes de Pentaho.
Soporte ETL Jaspersoft utiliza la versión Talend Open Studio para fines ETL. Utiliza Pentaho Data Integrator por defecto Herramienta ETL.
Panel de Control La funcionalidad del panel de control solo está presente en la edición Enterprise de Jaspersoft. Pentaho ofrece una amplia gama de funciones en sus paneles de control.
Inteligencia empresarial móvil Jaspersoft ofrece mejor soporte para BI móvil. Pentaho necesita recurrir a una herramienta de terceros para mejorar la experiencia de BI móvil.
Documentación Mejor marketing, sitios y documentación. El soporte de documentación es deficiente.
Mejores características Es más fácil investigar y encontrar lo que necesitas. Ofrece minería de datos e integración con iPhone.
Versión de pago La versión paga ofrece funciones como consulta ad hoc Interfaz de usuario web e interfaz de usuario web para la creación de paneles de control. Ofrece funciones como integración LDAP, inicio de sesión único (SSO) y auditoría.

Los equipos ya invirtieron en el Java Los equipos suelen elegir Jasper, mientras que los equipos que necesitan una gran integración de datos junto con la generación de informes suelen elegir Pentaho.

Desafíos enfrentados al crear JasperReports

Estos son algunos de los desafíos a los que te enfrentarás al crear informes con JasperReports:

  • Cambios fundamentales: cuando las reglas de negocio cambian o se mejoran, es necesario modificar la lógica central del informe.
  • Los informes complejos, como los subinformes y los informes de tablas cruzadas, son buenos ejemplos.
  • Informes gráficos o gráficos visuales, por ejemplo, gráficos de barras, gráficos de líneas XY, gráficos circulares, gráficos de series temporales y gráficos de medidores.

Desventajas de utilizar Jasper Reports

Estas son las desventajas de usar Jasper Reports.

  • Una vez que se empiezan a realizar cambios en partes del paquete y a eliminar funciones, resulta muy difícil volver a la configuración predeterminada del paquete.
  • Es demasiado rígido, y editar líneas y crear tablas cruzadas es una tarea complicada.
  • Algunas tareas comunes, como especificar subtotales para un informe agrupado, son más fáciles en otros programas de diseño de informes.
  • Jasper requiere que recopile informes antes de ejecutarlos. Esto significa que los desarrolladores de informes deben tener toda la información Java SDK instalado.
  • A veces, cuando se edita el informe, no se muestra la misma vista previa que se muestra en la web.

Preguntas Frecuentes

El archivo .jrxml es la plantilla XML legible por humanos que los diseñadores editan. El archivo .jasper es el binario compilado que se genera a partir de él, y solo el archivo compilado se ejecuta en tiempo de ejecución.

La biblioteca JasperReports y la edición comunitaria de Jaspersoft Studio se distribuyen bajo una licencia de código abierto y pueden integrarse en productos comerciales. Las funciones de paneles de control, programación y seguridad requieren la edición de pago.

Sí. Cree un adaptador de datos JDBC en Jaspersoft Studio, proporcione el archivo JAR del controlador y la cadena de conexión, y luego escriba la consulta dentro del informe. Los parámetros se pasan con la sintaxis de signo de dólar y corchete.

Sí. Añade la dependencia jasperreports, coloca los archivos .jasper compilados en el classpath y llama a JasperFillManager desde una clase de servicio. Los bytes exportados se pueden transmitir directamente a una respuesta HTTP.

Los asistentes de IA pueden generar rápidamente esqueletos JRXML y sintaxis de expresiones. Abra siempre el archivo generado en Jaspersoft Studio, ya que las alturas de las bandas y las coordenadas de los elementos suelen requerir corrección manual.

Gestiona los documentos operativos con precisión milimétrica que los paneles de control de IA no generan, como facturas y extractos. Los resultados del modelo se escriben en una base de datos y Jasper los procesa para su distribución.

Resumir este post con: