Traduccions i informació de l’usuari als informes Jasper
Resum ràpid
El mòdul `jasper_reports` incorpora un camp virtual d’usuari perquè els informes puguin accedir a les dades de la persona que els executa, fins i tot quan el document no està relacionat amb l’empresa. També permet dissenyar i previsualitzar traduccions a iReport amb el llenguatge `i18ngroovy`, les biblioteques necessàries i les funcions `tr()`.
Continguts
Fa poc hem millorat un parell d’aspectes del mòdul jasper_reports per a OpenERP, que trobareu a Bazaar.
Camp d’usuari
Una de les millores és l’addició d’un camp de relació virtual anomenat Usuari. Aquest camp nou dona al dissenyador d’informes accés a tota la informació relacionada amb l’usuari que executa l’informe, cosa especialment interessant en aquells documents que no tenen una relació directa o indirecta amb l’empresa, com ara les comandes de venda o compra i els albarans.

i18n a iReport
Una altra millora s’ha fet en l’àrea de traduccions. Per facilitar el disseny d’informes, hem modificat el codi Java perquè sigui possible utilitzar el nostre llenguatge i18ngroovy dins d’iReport. A continuació s’expliquen els passos per configurar iReport (les biblioteques es troben a jasper_reports/java/lib):
Afegir la biblioteca gettext
A Linux, aneu a Tools → Libraries, feu clic a New Library..., establiu Library Name com a i18n i afegiu el JAR gettext-commons-0.9.6.jar.

Afegir la biblioteca i18n
Aneu a Tools → Options → Classpath. A Linux, afegiu el JAR i18n.jar. A Windows, afegiu també el fitxer gettext-commons-0.9.6.jar incorporat en el pas anterior.

Afegir la propietat i18ngroovy
Aneu a Tools → Options → Jasper Properties i afegiu una propietat anomenada net.sf.jasperreports.compiler.i18ngroovy amb el valor com.nantic.jasperreports.I18nGroovyCompiler.

Tingueu en compte que els usuaris de Windows poden comprovar que aquesta propietat no es recorda quan es reinicia l’aplicació, almenys amb la versió 3.5.3, i per tant l’han de tornar a establir cada vegada que s’obre iReport. Esperem que els desenvolupadors d’iReport ho solucionin en versions futures.
Establir l’idioma de l’informe
Un cop configurat tot, podeu utilitzar el nou llenguatge i18ngroovy als vostres informes.

Ús
Ara podeu utilitzar lliurement el conjunt de funcions tr() per traduir els informes i previsualitzar-los dins d’iReport. Per exemple, en l’informe següent, la variable L es defineix així:
java
$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})


Tingueu en compte que els informes que utilitzen Groovy en lloc d’i18ngroovy continuaran funcionant quan s’executin a OpenERP. Això només és necessari per previsualitzar informes que utilitzen el sistema de traducció de NaN.
Preguntes freqüents
Per a què serveix el camp virtual Usuari dels informes?
Dona al dissenyador accés a la informació relacionada amb la persona que executa l’informe, també en documents sense relació directa o indirecta amb l’empresa, com comandes o albarans.
Quin llenguatge es pot utilitzar per previsualitzar traduccions a iReport?
Es pot utilitzar el llenguatge i18ngroovy, que s’ha incorporat a iReport mitjançant modificacions del codi Java del mòdul.
Quines biblioteques cal afegir per configurar i18ngroovy?
Cal afegir gettext-commons-0.9.6.jar com a biblioteca i18n i incorporar i18n.jar al classpath; a Windows també cal afegir-hi el JAR de gettext.
Quina propietat d’iReport activa el compilador i18ngroovy?
La propietat és net.sf.jasperreports.compiler.i18ngroovy i el valor és com.nantic.jasperreports.I18nGroovyCompiler.
Els informes que utilitzen Groovy deixen de funcionar a OpenERP?
No. Els informes que utilitzen Groovy en lloc d’i18ngroovy continuen funcionant quan s’executen a OpenERP; i18ngroovy només és necessari per previsualitzar informes que fan servir el sistema de traducció de NaN.
Articles relacionats
Desenvolupador
jasper_reports NG
jasper_reports NG millora el rendiment dels informes evitant reinicis repetits de la màquina virtual de Java i accelerant fins a un 10 % els informes basats en XML. També amplia la localització amb camps traduïbles, paràmetres, formes plurals i selecció de la configuració regional, amb eines per extreure i preparar les traduccions.
Desenvolupador
Generating Jasper Reports from several models
L’article explica com crear informes Jasper que parteixen d’un model, però han de mostrar dades relacionades d’altres models. La solució consisteix a utilitzar un subinforme i configurar la propietat `OPENERP_PATH_PREFIX` amb el camí entre el model principal i el del subinforme; en l’exemple, el prefix és `order_line/product_id`.
ERP i Negoci
Informes comptables amb Jasper
El mòdul `account_jasper_report` aporta informes de Diari, Sumes i Saldos, Llibre Major i Registre d’IVA per a OpenERP v6. Segons l’article, redueix dràsticament el temps de generació dels informes comptables i requereix l’última versió de `jasper_reports`.