Traduccions i informació de l’usuari als informes Jasper
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.