Formatos Numericos con IReport
Hola que tal, soy nuevo en este foro, mi problema mortal es el siguiente:
Estoy desarrollando un reporte en IREPORT que llama un SP y muestra los datos, ahora bien estos datos son cantidades, que tendré que utilizar como valores monetarios y quiero darles el formato "123,456.10" y lo intento hacer con la opción de pattern que tiene el mismo IReport "$ #,##0.00" y al momento de ejecutarlo se compila y se muestra correctamente en la pre-visualización del IReport, ok entonces me decido publicarlo en la web, y hago mi pagina JSP, Ok va bien, se presenta en el explorador pero en la visualización el formato de los numeros se muetras asi: "123.456,00" Osea el separador de millares es el puinto "." y no la coma "," y el de los decimales es la coma "," y no el punto "." En realidad este tema me tiene casi muerto, por que ya tambien he usado esta manera, new java.text.DecimalFormat("$#,##0.0000").format($V{SumaGrupos}) y vale lo mismo, en la visualización del IReport funciona y se ve de maravilla, pero cuando lo publico y ya lo veo en la WEB me cambia los signos.
Espero me puedan ayudar por que la verdad estoy muriendo ya desde el viernes... Muchas gracias.. Aqui dejo mi codigo por si puede servir de algo... Tambien quisiera comentar que estoy utilizando IE
8 para ver el reporte en PDF.. AYUUDAAAAA por favor....
<%@ page import="net.sf.jasperreports.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="database.*" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %>
<%
Connection connection;
DataBase conect = new DataBase();
conect.connect();
connection=conect.getConnection();
%>
<%
/*Establecemos la ruta del reporte*/
File reportFile = new File(application.getRealPath("jsp//Reportes//Ireport//Pagos_proveedor.jasper"));
%>
<%
/* No enviamos parámetros porque nuestro reporte no los necesita asi que escriba cualquier cadena de texto ya que solo seguiremos el formato del método runReportToPdf*/
/* Con Parametros*/
Map parameters = new HashMap();
parameters.put("pConvenio", 0);
parameters.put("pProveedor", 0);
parameters.put("pFecha_Pago1", "06/09/2011");
parameters.put("pFecha_Pago2", "07/09/2011");
parameters.put("pUsuario", "Elidet");
byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, connection);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
- Inicie sesión o regístrese para enviar comentarios
Si nada más vas a presentar
Si nada más vas a presentar cantidades en tu reporte, porqué no mejor formateas tus cantidades desde la consulta, y en el reporte integras sólo las cadenas que representen ésas cantidades..se me ocurre algo así como el
de Óbstacle ( si ya sé que aquí no deberíamos resolver cosas de bases de datos, pero pues se me ocurre más fácil así y no te metes en complicaciones en el código ).
Ejemplo:
y el resultado te debería de dar ( si por ejemplo el valor de
es 2550.69
Formateado, y ya no te metes en código ;¬)
Espero te sirva...
IE
Hola, en alguna ocacion me paso algo parecido con el explorador, y es que IE estaba configurado en otro idioma, es decir, en la opcion de Herramientas/Opciones de Internet/General/Idiomas, se encontraba el idioma Españo, pero no el de México [ex-MX], sino el de españa creo que era, y e ahi mi problema, lo solucione poniendo el de México y eliminando el de españa, y tan tan. Espero y te sirva esto a ti.
Saludos.
mm ok, podria ser una
mm ok, podria ser una solución, solo que tendria que realizar las modificaciones pertinentes en el reporte, y bueno ver la forma de sacar la suma de las columnas que estoy mostrando ya no seria la misma ya que ahora las columnas no serían numericas sino cadena y copn esto pues no podemos realizar sumatorias... Pero es muy buena idea solo tendria que ver que tanto impacta en el desarrollo del reporte muchas gracias...
voy a checar lo del
voy a checar lo del explorador por que acabo de revisar y tengo el es-MX creo que te equivocaste y pusiste ex-MX, pero bueno voy a reinstalar aunq no creo pero ya estoy desesperado y cualquier idea o intento es bienvenida... Muchas gracias.
No es el explorador
amm realizando pruebas en otros equipos y versiones de IE y demas Browsers, se encontro que no es la actualización del browser, lo comento para que futuras personas que tengan el mismo problema que yo ya no desperdicien tiempo demas aunque es valido tambien probar y desconfiar jejeje. Sigo pidiendo ayuda... Muchas gracias...
!!!
Me quedé con cara de WTF!... las sumatorias hazlas, lo único que tienes que formatear es el resultado, es decir, si quieres hacer operaciones, pues colócalas en donde puse
..
Por ejemplo
O bien agrégalas de tal modo que sea una subconsulta.... es decir en
Por BD se puede.
Es correcto mi estimado neko069, por BD no hubo problema con los formatos, salen correctos ya que es una cadena la que muestra y bueno por lo mientras asi deje mi reporte, pero si me gustaria llegar a finalizar este tema de IREPORT y sus formatos o cual es el motivo o la causa de que en el reporteador si me muestre la información correcta, pero al momento de publicarlo, me cambia las comas por los puntos y viceversa, ya tambien con el DecimalFormat intente y sucede los mismito, la version de mi IE 8 esta correcta, no se que mas pueda ser o por donde manejarlo. De antemano agradezco mucho sus sugerencias y comentarios, no dejaré de investigar sobre este tema y cualquier cosa que sepa estaré comentandolo para mantenerlos informados. Muchas Gracias.
Por base de datos no hubo
Por base de datos no hubo problema, porque no mandabas mas que cadenas formateadas, que representan tus operaciones, pero no el resultado en sí ... el formato, originalmente lo tendrías que establecer en el reporte ( pero éso, ya lo hiciste ) .... entonces, pues no se me ocurre otra cosa, y así como lo expone @bimboso_d no me había pasado....
Si llegaras a encontrar alguna otra solución, puedes compartirla, digo, igual a alguien no le gustará meterse a modificar consultas, pero como viste, es lo más rápido ;¬)
Saludos.
creo haber conseguido la solucion
no se si ya has encontrado la respuesta a este problema, que no sea la que aplikst, ya consegui el origen del problema, cuando tu señalas en jasper report un Textfield, que por lo general es donde van almacenados, las variables, parametros o fields, en la hoja del reporte, este Textfield posee una pestaña propiedades en la parte derecha de ireport, en la propiedad que se llama Expression Class, uno lo cambia al tipo de variable en Java que corresponda a ese Textfield, bueno que pasa, que en la version iReport 4.5.1 este cambio solo lo hace visualmente , y no en el .xml del reporte, que por decirlo asi, es lo que en realidad vale cuando aplikmos el reporte en cualkier sistema, entonces accedes a este .xml con un editor de texto, busks los campos Textfield, y los que correspondan a formatos numericos le colocas class="java.lang.Double" guardas los cambios y ejecutas el reporte .
Asi aparece los texfield en el xml antes de editarlos manualmente :
y al editarlos quedarian asi:
espero te haya podido ayudar