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();

%>

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

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 TO_CHAR 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:

--le dejamos el mismo nombre para que no tengas problemas con los nombres de las columnas, nada mas cambias el tipo de columna en el reporte
--por una que sea String....
select ( to_char( <LA_COLUMNA> ,  '$9,999.00' ) ) )LA_COLUMNA FROM LA_TABLA

y el resultado te debería de dar ( si por ejemplo el valor de LA_COLUMNA es 2550.69

$2,550.69

Formateado, y ya no te metes en código ;¬)
Espero te sirva...

Imagen de bimboso_d

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...

Imagen de neko069

!!!

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...

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 <LA_COLUMNA> ..

Por ejemplo

SELECT ( TO_CHAR(  < LA_COLUMNA_1 + LA_COLUMNA_2 >,  '$9,999.00' ) ) )LA_COLUMNA FROM LA_TABLA

O bien agrégalas de tal modo que sea una subconsulta.... es decir en

SELECT  TO_CHAR( LA_COLUMNA ,  '$9,999.00' ) FROM  (

    SELECT (LA_COLUMNA_1 + LA_COLUMNA_2 )LA_COLUMNA FROM LA_TABLA
)

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.

Imagen de neko069

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 :

 <textField pattern="###0.0">
<reportElement x="354" y="2" width="53" height="12"/>
<textElement textAlignment="Right">
<font size="8"/>
</textElement>
<textFieldExpression><![CDATA[$V{variable1}]]></textFieldExpression>

y al editarlos quedarian asi:

 <textField pattern="###0.0">
<reportElement x="354" y="2" width="53" height="12"/>
<textElement textAlignment="Right">
<font size="8"/>
</textElement>
<textFieldExpression class="java.lang.Double" ><![CDATA[$V{variable1}]]></textFieldExpression>

espero te haya podido ayudar