Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Jaspersoft Studio / Java / Generar reportes con origen de datos JSON

Generar reportes con origen de datos JSON

Autor jc mouse jueves, enero 10, 2019

JSON es un formato de texto ligero para el intercambio de datos ampliamente usado en los Servicios Web.

En este post utilizaremos este formato de texto como origen de datos para la generación de un reporte.

Necesitamos:

  • Jaspersoft Studio
  • Objeto JSON

Tiempo: 20 minutos

Paso 1. JSON

Nuestro objeto JSON contiene los datos del universitario Homero y a la vez este objeto contiene otro objeto json con los datos de la universidad a la cual asiste, también cuenta con un array con los teléfonos de contacto de Homero.

{
  "dni": "1234567",
  "nombre": "Homero Jay",
  "apellido": "Simpson",
  "universidad": {
    "nombre": "Universidad de Springfield",
    "direccion": "Av. Siembre Viva 777",
    "mail": "springfield@mail.com"
  },
  "telefono": [
    {
      "numero": "800-123-9000"
    },
    {
      "numero": "+591 78900012"
    }
  ]
}

Guarda este objeto json en un archivo con el nombre de “homero.json”, la extensión “*.json” es importante. Usaremos este archivo más adelante.

Paso 2. Crear el reporte

  • Con tu JasperSoft abierto, crea un nuevo reporte desde el menú File -> New -> Jasper Report.
  • Elige el tamaño de papel Blank Letter o cualquiera que gustes.
  • Elige el proyecto donde se guardara el reporte (en nuestro caso el proyecto se llama Mouse) y escribe un nombre para el archivo, nosotros lo llamaremos “HomeroReporte.jrxml”
  • Te preguntara si quieres crear un Data Source (podemos hacerlo ahora pero lo dejaremos para más adelante), deja el Data Adapter con la opción por defecto, “One empty record” y presiona [FINISH] para crear el reporte.

proyecto jasper

Paso 3. Creación del Data Adapter

Con nuestro proyecto seleccionado, ve al menú File – New -> Data Adapter

Escribe como nombre “HomeroDATAADAPTER.xml”, presiona [NEXT]a continuación busca y selecciona la opción “JSON File”.

En la siguiente ventana completa los siguientes datos:

  1. Name: Homero Data Adapter
  2. Busca el archivo homero.json que creaste en el paso 1, también puede ser una URL.
  3. Selecciona la opción “Use the report JSON expression when filling the report”
  4.  Si trabajamos con fechas y números podemos personalizar el formato de estos para que se acomode a nuestras necesidades. En esta ocasión dejamos como esta.
  5. Realizamos un test para comprobar la correcta conexión a nuestro origen de datos presionando el botón [test]
  6. Presionamos el botón [finish] para terminar con la creación del Data Adapter

Data Adapter

Podemos modificar estos parámetros en cualquier momento.

Paso 4. Configuración inicial del Data Apdater

Presionamos el botón “Data Set and Query Editor Dialog”

query report

En la venta de dialogo que se despliega, realiza los siguientes pasos:

  1. Busca el Adapter que creaste en el paso anterior “Homero Data Adapter”
  2. En lenguaje busca y selecciona la opción JSON, se cargara la estructura del objeto JSON
  3. Presiona el botón [Read Fields] para cargar los campos del JSON
  4. En la pestaña [Data preview] puedes obtener una vista previa de tus datos contendidos en el JSON
  5. Para terminar presiona el botón [OK]

Data and Query

Paso 5. Iniciando el reporte

Una vez completado el paso 4 nuestros fields estarán disponibles para usarlos en la hoja del reporte. Arrastra los campos “dni”, “nombre” y “apellido” y lanza un “preview”

diseño de reporte

Paso 6. Objetos dentro objetos JSON

Dentro de nuestro objeto JSON tenemos otro objeto JSON llamado “universidad“, este objeto no podemos usarlo tal como esta, debemos primero hacer una modificaciones.

Abre la ventana “Dataset and Query ” y :

  1. Presiona el botón [add] para agregar un nuevo campo
  2. Escribe un nombre para identificar al campo, los nombres deben ser únicos
  3. Si es necesario especifica el tipo de clase, en nuestro caso es un String así que lo dejamos como esta.
  4. Aquí lo importante, para especificar un determinado campo del objeto json, se debe escribir el nombre del objeto seguido de un punto “.” y el nombre del campo, es decir, “objeto.campo”. Si este objeto tuviera otro objeto entonces hacemos algo como esto, “objeto.objeto.campo”.
  5. El campo “universidad” no lo usamos así que podemos eliminarlo. Selecciona el campo y presionas el botón [Delete]
  6. Ya para terminar presiona el botón [OK]

Jasper Object JSON

Nuestro nuevo campo se agrega a la lista de fields listo para ser usado en cualquier momento.

fields java

Añade este nuevo campo al reporte y para comprobar que todo anda bien, lanza un preview del mismo

Paso 7. Arrays dentro de un objeto

Los pasos para agregar campos contenidos dentro de un array son similares al paso anterior, veamos un ejemplo

Abrimos la ventana “Dataset and Query” y entonces:

  1. Presiona el botón [add] para agregar un nuevo campo
  2. Escribe un nombre único para el field
  3. Especifica el tipo de clase
  4. De la misma forma que hicimos para un objeto json, para acceder el campo de un array json, debemos indicar el nombre del array y entre paréntesis el indice del objeto que queremos acceder seguido de un punto y nombre del campo. Es decir “nombre_array[indice].nombre_campo”
  5. Para terminar presionamos [OK]

Repite esos pasos para el siguiente objeto en el array

Arrays report jasper

Los campos ya están disponibles para su uso en nuestro reporte

Arrays campos

Para terminar, añade estos nuevos campos al reporte y ejecuta el preview.

Jasper reporte tutorial

enjoy!!!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Gestión de productos – El modelo (Parte 4)

Gestión de productos – El modelo (Parte 4)

En la estructura del proyecto, nuestro modelo mvc esta compuesto por tres paquetes, la vista, el modelo y controlador. L...

Java Webservices – Servicios Web

Java Webservices – Servicios Web

Un servicio web (Web Services) es un sistema de software en la web que nos ofrece la posibilidad de realizar una o múlti...

Mapas interactivos – El proyecto – Parte 2

Mapas interactivos – El proyecto – Parte 2

Comenzando este tutorial, primero necesitamos definir la “estructura” de nuestro proyecto. Haremos uso del I...

Tres cursos de programación de la Universidad de Stanford

Tres cursos de programación de la Universidad de Stanford

La Universidad Leland Stanford Junior, conocida mundialmente como la Universidad Stanford, es una universidad privada es...

¿Qué es AngularJS?

¿Qué es AngularJS?

Bienvenido a este artículo soy Jose Pedraza Desarrollador Web por más de 7 años, escribiré una serie de artículos para i...

MariaDB: Tablas Virtuales (Vistas – View)

MariaDB: Tablas Virtuales (Vistas – View)

¿Qué es una vista? Una vista (View) o Tabla Virtual, es una forma lógica de ver los datos ubicados en varias tablas, es...

Comparte lo que sabes

Categorias

Últimas entradas

“MyBatis es una herramienta de persistencia Java que se encarga de mapear sentencias SQL y procedimientos almacena...

MyBatis es un framework de persistencia Java que se encarga de mapear sentencias SQL y procedimientos almacenados a part...

Webcam Capture es un API  que permite usar una cámara web incorporada o externa directamente desde código Java utilizand...

im4java es una interfaz pura de Java para la línea de comandos de ImageMagick. La interfaz de la línea de comandos de IM...

Herramientas

Generador de Enlaces a Whatsapp