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

Potigol: Lenguaje de programación en portugues

Potigol: Lenguaje de programación en portugues

Oi galera, en esta oportunidad les traigo una curiosidad que encontré por casualidad perdiendo el tiempo en Internet, se...

Gestión de Stock – La Vista (Parte 3)

Gestión de Stock – La Vista (Parte 3)

En esta tercera parte del tutorial crearemos la interfaz de usuario GUI (VISTA) para el sistema de gestión de stock. Tom...

Cifrado francmasón PigPen

Cifrado francmasón PigPen

El cifrado francmasón es un cifrado por sustitución simple que cambia las letras por símbolos. Sin embargo, el uso de sí...

Simulador de Urna Electrónica en java

Simulador de Urna Electrónica en java

Hola 🙂 en esta ocasión un amigo del Brasil nos envía un proyecto java de una Urna Electrónica o Voto Electronico, desarr...

Introducción al Diseño Web Adaptable (Responsivo)

Introducción al Diseño Web Adaptable (Responsivo)

El diseño web adaptable (Responsive Web Design) va evolucionando como una filosofía de diseño y desarrollo de paginas we...

Autenticación en php con MySql y POO

Autenticación en php con MySql y POO

Autenticación en una pagina web es el proceso de confirmar que un usuario es quien dice ser, asi de simple. En el siguie...

Comparte lo que sabes

Categorias

Últimas entradas

Si te gusta realizar tus propios memes o foto montajes pero tienes poca o nula experiencia en editores gráficos como Pho...

Los procedimientos almacenados no solo pueden retornar valores como números, cadenas, etc, sino también datos como los R...

XAMPP es un software para la gestión de base de datos, servidor web apache e interprete para lenguajes como php o perl....

En post anteriores vimos lo que son los parámetros IN y los parámetros OUT pero existe otro tipo de parámetro que es la...

Android Bolivia

MAUS