Como conectar JasperStudio a SAP HANA

JasperStudio trae precargado controladores para base de datos, pero no el de SAP HANA.

NOTA: Recuerda que los Data-sources son independientes, por lo que se debe configurar por cada datasource a menos que se agreguen las librerías en las carpetas del programa. Eso lo veremos en otra ocasión.

En este articulo damos por hecho que ya haz descargado e iniciado JasperStudio

Paso 1. Descargar el jar del JDBC

Lo mas importante es tener obtener el driver correcto, si no estas utilizando Maven o Gradle lo puedes descargar manualmente desde:

https://mvnrepository.com/artifact/com.sap.cloud.db.jdbc/ngdbc

Vista de Maven Central:

NOTA : Hacer click en VIEW ALL

Una vez entrar a la lista de archivos descargar el correspondiente.

Vista de los archivos posibles a descargar.

Una vez descargado ubicarlo en una ruta apropiada según su forma de trabajo, como una carpeta para todos los jars o para todos los JDBC o por proyecto.

Referencia:
https://help.sap.com/docs/SAP_HANA_PLATFORM/0eec0d68141541d1b07893a39944924e/ff15928cf5594d78b841fbbe649f04b4.html

https://developers.sap.com/tutorials/hana-clients-jdbc.html

Paso 2. Configurar en JasperStudio.

Lo primero que debemos hacer es Agregar el DataSource.

Dado que estamos haciendo una conexión manual, sin usar jasperreport o un servidor EE, en la ventana que aparecerá elegiremos JDBC Connection:

JasperStudio: Ventana de opciones para nuevo adaptador

.

JasperStudio: Ventana de asistente para nueva conexión JDBC

Si hacemos click en el combobox del driver aparecerán muchas opciones pero no la de SAP HANA, por lo que debemos agregarlo manualmente.

Primero le pondremos el nombre: Conexion a SAP HANA Pruebas. y luego se hace click en el tab: ” Driver ClassPaht”

JasperStudio: Asistente de configuración de adaptador.

Al hacer click aparecerá una ventana de búsqueda para localizar el JAR, el que acabamos de descargar, el driver para SAP HANA.

Una vez localizado Regresamos al tab inicial yconfiguramos.

JasperStudio: Asistente de configuración de adaptador. Propiedades
  • 1) hacer click en el tab “Database Location”
  • 2) JDBC Driver Class: com.sap.db.jdbc.Driver
  • 3) JDBC URL: jdbc:sap://192.168.30.100:305 (la ruta y puerto del nuestro servidor)
  • 4) El username
  • 5) la clave
  • 6) Hacemos click en Test.
JasperStudio: Test OK

Si todo está correcto deberá aparecer este mensaje.

Paso 3. Probar.

Una vez configurado nuestro driver y el DataSource ya podemos probar nuestro reporte con datos.

¿como probamos el reporte?

JasperStudio : Ventana principal de trabajo.

En esta ventana, en el punto uno seleccionamos la vista de nuestro proyecto para ver todos los reportes.
En el punto 2, seleccionamos el reporte que nos interesa.

En el punto 3 podemos ver y/o editar la consulta del reporte.

y en el punto 4: es para ver la vista previa del reporte, si tiene parámetro, este pedirá que ingrese el valor para ejecutar la consulta apropiada.

Agregar imágenes en un reporte de JasperReport

Una de las características de Jaspersoft Reports es la capacidad de incluir gráficos estáticos (logotipos, por ejemplo) en los informes completos. Estos archivos gráficos (jpg, png, etc) normalmente se especifican en el archivo fuente del reporte el archivo JRXML registrándolos por referencia, lo que significa que lo que se almacena es la ruta absoluta o relativa mas el nombre de archivo, no el gráfico en sí. En una implementación empresarial o enfocado en reportes la norma es que el archivo fuente y los archivos de gráficos auxiliares se cargan en un servidor JasperReports para su ejecución.

Dependiendo de nuestra solución o del requerimiento podemos usar recursos externos relativos o cargar los datos desde una base de datos. En este post vamos a dar ejemplos de 4 escenarios y mostrando como hacerlo.

Imagen en JasperReport : Estas son las opciones del contenedor de imagen.

Opción 1 . Usando recursos Externos

Un recurso externo es la forma mas común de colocar una imagen en el reporte

Opción 2: Incrustando la imagen en el reporte (Base64)

Paso 1: codifica tu imagen en base64

Definición: Base64 es un estandar que permite tomar un archivo binario y codificarlo en caracteres ASCII. Como sabemos los archivos XML tienen limitaciones en cuanto a lo que pueden contener, por lo que codificar el archivo de imagen binario en base64 proporciona una forma de incrustar los datos de la imagen en XML manteniendonos dentro del ASCII de XML. Hay muchas opciones de codificar; en este caso puedes usar este codificador de imágenes Base64 online, al terminar lo que obtendrá es una cadena de texto que comienza así:

data:image/jpeg;base64,/9j/4AAQSkZJRAABCCCQEAY...

Esta cadena llamada URI DE DATOS contiene detalles al principio que no forman parte de los datos de la imagen en sí. Desde el inicio hasta la coma incluida – data:image/jpeg;base64,– debe eliminarse. El resto de la cadena son los datos de imagen codificados en base64 que vamos a utilizar.

imagen convertida en Base64

Paso 2: coloque los datos de la imagen base64 en una variable de informe

Primero debemos crear la variable.

Creando una variable en JasperReport.
Asignamos nombre a la variable, y dejamos el resto de los campos iguales.

Se deja todos los demás valores iguales (el nombre de clase de valor es java.lang.String, sin función de cálculo o tipo de incremento, el tipo de restablecimiento es Reporty sin datos en la expresión de valor inicial o el nombre de clase de fábrica de incrementador).

Paso 3: Agregar imagen al informe

Haga clic y arrastre un elemento de imagen desde la Paleta hasta el informe. Aparece un cuadro de diálogo “Crear nuevo elemento de imagen” con varias opciones para el “Modo de creación de imagen”, incluido un recurso de espacio de trabajo, una ruta absoluta o una URL. Elija la última opción, “Expresión personalizada”, e ingrese este fragmento de Java a continuación. Hay un lugar en el fragmento donde se incluye la variable con la imagen codificada en base64,  reemplácelo con el nombre de la variable del paso anterior.

Seleccione “Expresión personalizada” y pegue el fragmento de Java.
Expresion

Paso 4: agregue la importación de clase Base64 al informe

Último paso… para usar la Base64.decodeBase64función cuando se ejecuta el informe, necesitamos importar explícitamente esa clase cuando se ejecuta el informe. En el editor de informes hay pestañas para “Diseño”, “Fuente” y “Vista previa”. Haga clic en “Fuente” para ver el JRXML sin procesar. Debajo de la última línea que comienza con <property name="</code">y encima de la <querystring>línea, agregue esta línea:

<import value="org.apache.commons.codec.binary.Base64"></import>
Agregando la importacion de clase Paso 01.

Hemos terminado: Guarde y obtenga una vista previa de su informe, y verá la imagen incluida en el informe.

Las otros métodos de inserción desde la base de datos se describe en el siguiente post.

Nosotros y terceros seleccionados utilizamos cookies o tecnologías similares con fines técnicos y, con su consentimiento, para otras finalidades (“interacciones y funcionalidades básicas”, “mejora de la experiencia”, “medición” y “segmentación y publicidad”) según se especifica en la política de cookies. Usted es libre de otorgar, denegar o revocar su consentimiento en cualquier momento.    Configurar y más información
Privacidad