Hola amigos lectores y seguidores de Software Galaxia Blogs, el día de hoy traemos un tutorial en el cual aprenderemos a utilizar la biblioteca de Jasperreport en su versión mas reciente (6.11.0) y de esta manera poder incorporarla a tus proyectos de JAVA. Realizaremos un ejemplo en el cual mostraremos el proceso de diseño de un informe utilizando JasperSoft Studio, Crearemos un adaptador de tipo JRDataSource el cual será nuestra fuente de datos y de esta manera proveer con datos dinámicos nuestro informe.
Estamos en proceso de creación de un curso relacionado a la generación de informes con JAVA, el cual hemos llamado: Curso Jasperreport Nivel I, en este aprenderás las bases que necesitas saber para empezar a desarrollar tus informes y poder incorporarlos a tus proyectos; si deseas saber mas acerca de dicho curso te invito a que visites el siguiente Link... CURSO JASPERREPORT NIVEL I - INTRODUCCIÓN Y GENERALIDADES.
Estamos en proceso de creación de un curso relacionado a la generación de informes con JAVA, el cual hemos llamado: Curso Jasperreport Nivel I, en este aprenderás las bases que necesitas saber para empezar a desarrollar tus informes y poder incorporarlos a tus proyectos; si deseas saber mas acerca de dicho curso te invito a que visites el siguiente Link... CURSO JASPERREPORT NIVEL I - INTRODUCCIÓN Y GENERALIDADES.
Links de código fuente
JAVA + JASPERREPORT |
Explicación por VideoTutorial:
Creamos un videotutorial especialmente para ti en el cual te brindamos información detallada acerca de la temática que trataremos el día de hoy, lo hemos divido en dos partes.
Explicación por Foto-Tutorial:
Iniciamos explicando lo que deseamos hacer en nuestro ejemplo, vamos a crear un informe de tal forma que me permita listar varios países del mundo, los cuales tendrán información relevante de estos tales como: Capital, N° De Habitantes.
La información de dichos países estará almacenada en un colección de datos o arreglo Bidimensional.
1. Diseño del Informe.
Iniciamos trabajando con JasperSoft Studio el cual será la herramienta de diseño que utilizaremos para crear nuestro informe, lo primero que haremos sera crear un nuevo archivo.
Para crear dicho archivo de diseño: Seleccionamos la opción File>New>Jasper Report.
Luego tendremos un cuadro de dialogo similar al que podemos ver en la imagen, debemos elegir la plantilla que vamos a utilizar para nuestro ejemplo; seleccionaremos la plantilla de diseño Coffe_landscape, oprimimos el botón next.
Para finalizar debemos seleccionar el espacio de trabajo (Workspace) donde alojaremos nuestro archivo de diseño .jrxml, podremos asignarle un nombre a nuestro archivo y oprimimos el botón finish.
Creamos un nuevo archivo .JRXML |
Realizamos el proceso para crear un nuevo archivo .jrxml |
Seleccionamos la plantilla para diseñar nuestro reporte |
Para finalizar debemos seleccionar el espacio de trabajo (Workspace) donde alojaremos nuestro archivo de diseño .jrxml, podremos asignarle un nombre a nuestro archivo y oprimimos el botón finish.
Asignamos un nombre a nuestra archivo - Jasperreport |
Una vez realizado el proceso de creación de nuestro archivo, tendremos un diseño similar al que vemos en la imagen, lo siguiente que tendremos que hacer será mejorar dicho diseño y adaptarlo a las necesidades que queramos suplir; la finalidad de utilizar una plantilla de diseño es tener una base en cuanto al diseño y no realizar el proceso desde cero.
Plantilla de diseño del archivo generado - Jasperreport |
En nuestra interfaz de diseño tendríamos algo similar a lo que vemos en la siguiente imagen y con esto terminaríamos la etapa de diseño de nuestro informe.
Lo siguiente que haremos será compilar nuestro archivo de diseño(.jrxml) y de esta manera generar nuestro archivo .jasper recordemos que cuando estamos trabajando con reportes utilizamos dos extensiones de archivo; una(.jrxml) para la etapa de diseño y así crear nuestro informe y la otra(.jasper) simplemente tendrá nuestro informe compilado y este es el que vamos a utilizar en nuestro proyecto de Java.
Una vez compilado nuestro reporte en la consola podremos seguir el proceso de compilación y conocer la ubicación de dicho archivo compilado.
2. Configuración de Bibliotecas Jasperreport en Java NetBeans 8.2.Diseño Terminado Ejemplo Jasperreport |
Compilamos nuestro reporte |
Proceso de compilación terminada |
La fase de diseño esta completamente terminada, tenemos los archivos necesarios por lo tanto copiaremos los dos archivos (.jrxml, .jasper) y los agregaremos a nuestro proyecto Java.
Archivos Jasperreport |
Cuando trabajamos reportes en nuestro proyectos JAVA debemos agregar una serie de bibliotecas que son necesarias para que nuestra aplicación se ejecute de manera optima, a continuación mostraremos el proceso para agregar dichas bibliotecas, son todas las que podemos ver en la imagen.
Para agregar las bibliotecas que necesitamos en nuestro proyecto debemos posicionarnos en el mismo, seleccionar la carpeta libraries, oprimimos click derecho y seleccionamos la opción add JAR/Folder... es importante resaltar que este proceso lo debemos hacer en nuestro entorno de desarrollo (IDE) NetBeans.
Tendremos el siguiente cuadro de dialogo, en el cual debemos encontrar la ubicación de las bibliotecas que deseamos agregar en este caso serian todas las que están seleccionadas.
3. Estructura de proyecto JAVA (ejemploJasper).
Listado de bibliotecas Jasperreport |
Proceso para agregar bibliotecas |
Agregamos bibliotecas de Jasperreport |
Nuestro proyecto Java tiene una distribución bastante sencilla, por un parte tenemos el paquete ejemplojasper; en este tenemos la clase principal donde realizaremos el proceso para generar el informe con Jasperreport, por otra parte tenemos la clase PaisesDataSource.java la cual será nuestra fuente de datos la utilizaremos para proveer los datos que se desean mostrar en el informe.
Tenemos el paquete reports; en dicho paquete irá todo lo referente al informe que deseamos generar, tenemos la imágenes que utilizaremos en dicho informe y los archivos .jrxml y .jasper.
Estructura de Proyecto |
4. Creando la Fuente de Datos (DataSource) de tipo JRDataSource.
Método next():
Tenemos un método de tipo boolean el cual sobre-escribimos de tal forma que nos permita recorrer todos los registros que tenemos almacenado en nuestro arreglo(listadoPaises), la variable index será la encargada de iterar y recorrer una a una cada posición(filas) del arreglo.
el método devolverá false cuando la variable index sea igual o mayor a la cantidad de filas existentes de nuestro arreglo bidimensional.
Método getFielValue(JRField jrf):
Arreglo Bidimensional - Colección de datos:
A continuación mostramos el arreglo bidimensional en el cual estarán los datos que se van a mostrar en nuestro informe, las dimensiones de dicho arreglo son de 30x4 (30 filas por 4 columnas).
La 1ra Columna hace referencia al campo Id.
La 2da Columna hace referencia al campo Pais.
La 3ra Columna hace referencia al campo Capital.
la 3ra Columna hace referencia al campo num_habitantes.
Código Fuente - Clase PaisesDataSource.java
5. Proceso de generación de informe - Clase Principal.
En nuestra clase principal crearemos un objeto de la clase JasperReport con el fin de cargar el archivo .jasper (getClass().getResource("/reports/practica_paises.jasper")).
Seguido a esto realizaremos el proceso de llenado de nuestro informe, hacemos uso del método fillReport() perteneciente a la clase JasperFillManager, pasamos tres parámetros los cuales serán; nuestro reporte (report), los parámetros a utilizar el cual lo pasaremos como null y por ultimo la fuente de datos pasaremos una instancia de la clase PaisesDataSource.
Para finalizar obtendremos una vista previa del informe generado, hacemos uno de la clase JasperViewer la cual generara un JFrame donde podremos visualizar nuestro informe.
Al ejecutar nuestro proyecto obtendríamos un reporte final con los respectivos datos del arreglo bidimensional asignados de manera correcta y ordenada a nuestro informe.
Código Fuente - Clase EjemploJasper.java.
Con esto hemos concluido con el desarrollo del capítulo de hoy, te recomiendo que mires los vídeos ya que allí brindamos una explicación mucho mas detallada.
La definición tomada de la documentación oficial dice lo siguiente:
Esta interfaz representa la representación abstracta de una fuente de datos JasperReports. Todos los tipos de fuentes de datos deben implementar esta interfaz. Cada vez que se llena un informe, el motor de informes proporciona o crea una instancia de esta interfaz detrás de escena. JasperReports proporciona implementaciones predeterminadas de conjuntos de resultados, colecciones de beans y fuentes de datos de arrays de beans.Para crear nuestra fuente de datos hemos creado una clase llamada PaisesDataSource.java la cual implementa de la interfaz JRDataSource, dicha interfaz posee dos métodos abstractos los cuales vamos a estudiar a continuación.
Método next():
Tenemos un método de tipo boolean el cual sobre-escribimos de tal forma que nos permita recorrer todos los registros que tenemos almacenado en nuestro arreglo(listadoPaises), la variable index será la encargada de iterar y recorrer una a una cada posición(filas) del arreglo.
el método devolverá false cuando la variable index sea igual o mayor a la cantidad de filas existentes de nuestro arreglo bidimensional.
Método Abstracto JRDataSource (next) |
Método getFielValue(JRField jrf):
Tenemos un método el cual devolverá un valor de tipo Object, el valor a devolver dependerá de muchos factores: el mas importante sin duda será conocer el campo al cual deseamos agregar dicha información; estos campos los creamos con anterioridad en la fase de diseño de nuestro informe en JasperSoft Studio (revisar linea 17 a 20 del código fuente del archivo .jrxml), por esta razón creamos una estructura de control del tipo switch-case en la cual determinamos el campo seleccionado y en base a eso obtenemos una posición especifica del arreglo bidimensional.
Método Abstracto JRDataSource(getFieldValue) |
A continuación mostramos el arreglo bidimensional en el cual estarán los datos que se van a mostrar en nuestro informe, las dimensiones de dicho arreglo son de 30x4 (30 filas por 4 columnas).
La 1ra Columna hace referencia al campo Id.
La 2da Columna hace referencia al campo Pais.
La 3ra Columna hace referencia al campo Capital.
la 3ra Columna hace referencia al campo num_habitantes.
Colección de datos - Array |
5. Proceso de generación de informe - Clase Principal.
En nuestra clase principal crearemos un objeto de la clase JasperReport con el fin de cargar el archivo .jasper (getClass().getResource("/reports/practica_paises.jasper")).
Seguido a esto realizaremos el proceso de llenado de nuestro informe, hacemos uso del método fillReport() perteneciente a la clase JasperFillManager, pasamos tres parámetros los cuales serán; nuestro reporte (report), los parámetros a utilizar el cual lo pasaremos como null y por ultimo la fuente de datos pasaremos una instancia de la clase PaisesDataSource.
Cargamos y realizamos proceso de llenado de informe |
Para finalizar obtendremos una vista previa del informe generado, hacemos uno de la clase JasperViewer la cual generara un JFrame donde podremos visualizar nuestro informe.
Obtenemos una vista previa del informe |
Al ejecutar nuestro proyecto obtendríamos un reporte final con los respectivos datos del arreglo bidimensional asignados de manera correcta y ordenada a nuestro informe.
Resultado Final Reporte |
Con esto hemos concluido con el desarrollo del capítulo de hoy, te recomiendo que mires los vídeos ya que allí brindamos una explicación mucho mas detallada.
Suscribete
si deseas aprender más sobre esta tecnología y Java en general oprime el botón de suscripción para estar atento a todo nuestro contenido.
¡Suscribete!
Si tienes alguna otra forma de implementar esta ejemplo no dudes en compartirla, y así poder compartir opiniones sobre el tema.
¿Quieres aprender a realizar aún más cosas y personalizar tus programas hechos en el lenguaje de programación JAVA?, si tu respuesta es "Sí", puedes acceder a todos los tips de JAVA que hemos estado publicando en este blog, dando clic aquí.
Suscríbete a nuestro blog, vía Email o RSS; además puedes seguirnos a través de nuestras redes sociales como: Facebook, Twitter, YouTube y Google+.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Si te fue de gran ayuda este material, no olvides compartirlo con tus amigos.
Si tienes dudas o sugerencias al respecto; puedes dejarnos tus comentarios.
Bendiciones...
No hay comentarios.:
Publicar un comentario