Desarrollador

Traducciones e información del usuario en los informes Jasper

3 min de lectura

Resumen rápido

El módulo `jasper_reports` incorpora un campo de relación virtual de usuario para que los informes accedan a los datos de quien los ejecuta, incluso cuando el documento no está relacionado con una empresa. También permite diseñar y previsualizar traducciones en iReport mediante `i18ngroovy`, las bibliotecas necesarias y las funciones `tr()`.

Contenidos

Hemos mejorado recientemente un par de cosas en el módulo jasper_reports para OpenERP que encontrarás en bazaar.

Campo de usuario

Una de ellas es la adición de un campo de relación virtual llamado Usuario. Este nuevo campo proporciona al diseñador de informes acceso a toda la información relacionada con el usuario que está ejecutando el informe, lo cual es especialmente interesante en aquellos documentos que no tienen una relación directa o indirecta con la empresa, como pedidos de venta/compra o albaranes.

El campo Usuario recién agregado, al final de la lista de campos para el modelo stock.picking.

i18n en iReport

Otra mejora ha sido en el área de traducciones. Para facilitar el diseño de informes, hemos modificado el código Java para que sea posible utilizar nuestro idioma i18ngroovy dentro de iReport. Aquí están los pasos que debes seguir para configurar iReport (las bibliotecas se pueden encontrar en jasper_reports/java/lib):

Agregar la biblioteca gettext

Si trabajas en Linux, ve a la opción del menú Herramientas -> Bibliotecas, haz clic en el botón Nueva biblioteca.... Establece Nombre de la biblioteca como "i18n" y agrega un nuevo JAR: "gettext-commons-0.9.6.jar"

Configuración de la biblioteca gettext en Linux

Agregar la biblioteca i18n

Ve a la opción del menú Herramientas -> Opciones -> Classpath. Si trabajas en Linux, agrega el nuevo JAR "i18n.jar". Si trabajas en Windows, también debes agregar el archivo "gettext-commons-0.9.6.jar" que agregamos en el paso anterior en Windows.

Configuración de la biblioteca i18n en Linux

Agregar la propiedad i18ngroovy

Ve a la opción del menú Herramientas -> Opciones -> Propiedades de Jasper y agrega una nueva propiedad llamada net.sf.jasperreports.compiler.i18ngroovy con el valor com.nantic.jasperreports.I18nGroovyCompiler

Configuración de la propiedad i18ngroovy

Ten en cuenta que los usuarios de Windows se verán molestados por el hecho de que esta propiedad no es recordada por la aplicación al reiniciarla (al menos con la versión 3.5.3) y, por lo tanto, debe restablecerse cada vez que abras iReport. Esperamos que los desarrolladores de iReport solucionen este problema en versiones futuras.

Configurar el idioma del informe

Una vez que todo esté configurado, puedes usar el nuevo idioma i18ngroovy en tus informes.

Configuración del idioma del informe a i18ngroovy

Uso

Ahora puedes usar libremente el conjunto de funciones tr() para traducir tus informes y previsualizarlos dentro de iReport. Por ejemplo, en el siguiente informe tenemos la variable L definida como:

$F{Idioma-lang} != null && $F{Idioma-lang}.length() == 5 ? new Locale( $F{Idioma-lang}.substring(0,2), $F{Idioma-lang}.substring(3,5) ) : ( $F{Idioma-lang} != null && $F{Idioma-lang}.length() == 2 ? new Locale( $F{Idioma-lang}.substring(0,2) ) : $P{REPORT_LOCALE} )

Uso de funciones tr() en iReport

Vista previa del informe en iReport

Ten en cuenta que los informes que usan Groovy en lugar de i18ngroovy seguirán funcionando cuando se ejecuten en OpenERP. Esto solo es necesario para previsualizar informes que utilizan el sistema de traducción de NaN.

Preguntas frecuentes

¿Para qué sirve el campo virtual Usuario de los informes?

Permite al diseñador acceder a la información de la persona que ejecuta el informe, incluso en documentos sin relación directa o indirecta con la empresa, como pedidos o albaranes.

¿Qué lenguaje se puede utilizar para previsualizar traducciones en iReport?

Se puede utilizar el lenguaje i18ngroovy, habilitado en iReport mediante modificaciones del código Java del módulo.

¿Qué bibliotecas hay que añadir para configurar i18ngroovy?

Hay que añadir gettext-commons-0.9.6.jar como biblioteca i18n e incorporar i18n.jar al classpath; en Windows también hay que añadir allí el JAR de gettext.

¿Qué propiedad de iReport activa el compilador i18ngroovy?

La propiedad es net.sf.jasperreports.compiler.i18ngroovy y su valor es com.nantic.jasperreports.I18nGroovyCompiler.

¿Los informes que utilizan Groovy dejan de funcionar en OpenERP?

No. Los informes que usan Groovy en lugar de i18ngroovy siguen funcionando al ejecutarse en OpenERP; i18ngroovy solo es necesario para previsualizar informes que utilizan el sistema de traducción de NaN.