Cambiar coma por punto en Jasper iReport
Hay un problema de que en los reports con iReport y Jasper los importes salen en formato americano en vez del español, cambiados los puntos y comas en decimales y millares.
Esto pasa porque al no indicarle al Jasper nada al Jasper, toma la configuración regional del sistema "default locale".
Hay varias opciones según las necesidades donde se tenga que aplicar esta configuración.
Cambiar configuración regional ireport
En el diseñador IReport hay que ir a las opciones del menú Herramientas -> Opciones -> IReport, y en la pestaña de "Compilation and Execution" seleccionar el valor de "Report Locale" al que se necesite configurar.
A partir de ahí, se compila el informe y ya toma el cambio.
Esta imagen corresponde al iReport Designer versión 5.6.0
Cambiar configuración regional Jaspersoft Studio
Con el report abierto en Jaspersoft Studio, hacer clic con el botón derecho encima del report y seleccionar propiedades.
En la pestaña "Report Execution" cambiar la zona locale por defecto a la deseada.
Definir configuración regional en código
Para definir la configuración regional en el momento de ejecución se puede definir el parámetro REPORT_LOCALE y pasarlo como parámetro al report, a través del fillReport()
import java.util.Map;
import java.util.Locale;
InputStream report = getReportTemplate();
JRDataSource dataSource = getDataSource();
Map params = getParameters();
Locale locale = new Locale( "es", "ES" );
params.put( JRParameter.REPORT_LOCALE, locale );
JasperFillManager.fillReport( report, params, dataSource );
Cambiar la configuración regional al cargar la maquina virtual de java JVM
Al iniciar la máquina virtual Java se le podrían pasar los parámetros
-Dfile.encoding=Cp1252 -Duser.language=es -Duser.country=ES
Otra opción, es especificarlo en la variable de entorno de Windows JAVA_TOOL_OPTIONS que la JVM lo lee al arrancar.
Deja una respuesta