Formatação decimal errada

185 views
Skip to first unread message

Robson

unread,
Jun 14, 2016, 11:43:12 AM6/14/16
to JasperReports / iReport Brasil
Prezados boa tarde.

Estou com um problema no pattern aplicado em um objeto do tipo Double, a questão é que no meu ambiente de desenvolvimento e teste não tem problema, já um Cliente que tem o SO Windows Server 2008 em Inglês sim o problema existe apesar de suas configurações Regionais estarem corretas para Data, Numero e Valores ( Moeda )

O relatório esta no Tomcat 7 com Java 7 64bits

a formatação aplicada é #,##0.00#;#,##0.00#-  mesmo assim um valor que deveria sair 7.325,36 sai com trocado assim 7,325.36

Denis Alves

unread,
Jun 14, 2016, 12:16:16 PM6/14/16
to jasperreports-...@googlegroups.com

Boa Tarde


Amigo mesmo que diga que os valores de moeda estao corretos, o problema é no sistema operacional,  justamente nessa parte, tem de verificar e trocar os simbolos e região da uma verificada nesta parte que printei na maquina dele.

--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Robson

unread,
Jun 14, 2016, 12:32:34 PM6/14/16
to JasperReports / iReport Brasil
Olá Denis boa tarde, obrigado pela interação.

Então eu não estou usando Monetário, apenas Número e não tem nada errado na configuração do Servidor vou colocar uma imagem em anexo.
Format Numbers.jpg

Wellington Chagas

unread,
Jun 14, 2016, 12:36:22 PM6/14/16
to jasperreports-...@googlegroups.com

Amigo,

Passa um parâmetro de Locale para o Jasper.. já existe um nome específico de parâmetro para isso

Em 14 de jun de 2016 1:32 PM, "Robson" <robson...@hotmail.com> escreveu:
Olá Denis boa tarde, obrigado pela interação.

Então eu não estou usando Monetário, apenas Número e não tem nada errado na configuração do Servidor vou colocar uma imagem em anexo.

--

Denis Benjamim

unread,
Jun 14, 2016, 12:38:04 PM6/14/16
to jasperreports-...@googlegroups.com

Pelo  print  está correto,   olhou  no System.getProperties(), qual  o valor  q a VW  está assumindo.?  Também  é possível  settar via código  a unidade  monetária.  Eu só tive problemas  em usar moedas  e máscaras   deste  tipo  por  causa do sistema operacional

Em 14/06/2016 13:32, "Robson" <robson...@hotmail.com> escreveu:
Olá Denis boa tarde, obrigado pela interação.

Então eu não estou usando Monetário, apenas Número e não tem nada errado na configuração do Servidor vou colocar uma imagem em anexo.

--

Denis Benjamim

unread,
Jun 14, 2016, 12:40:58 PM6/14/16
to jasperreports-...@googlegroups.com

Ah manda um print  desta parte  aqui

Em 14/06/2016 13:32, "Robson" <robson...@hotmail.com> escreveu:
Olá Denis boa tarde, obrigado pela interação.

Então eu não estou usando Monetário, apenas Número e não tem nada errado na configuração do Servidor vou colocar uma imagem em anexo.

--
DSC_0014.JPG

Robson

unread,
Jun 14, 2016, 1:04:32 PM6/14/16
to JasperReports / iReport Brasil
Olá Wellington boa tarde.

Vc diz passar um parâmetro da mesma forma como eu passo parâmetros para filtragem de dados? só que para locale? vi que existe sim um com o nome REPORT_LOCALE , nunca fiz uso dele alias acho que poucas pessoas fizeram mais existe sim exemplos deste.

O problema é o seguinte tem de alterar tudo o que é relatório para enviar este parâmetro e é só isto enviar este parâmetro e tá tudo certo? ou teria que fazer uso dele.....

Robson

unread,
Jun 14, 2016, 1:05:22 PM6/14/16
to JasperReports / iReport Brasil
Segue os Prints
Region and Language.jpg
Currency.jpg

Wellington Chagas

unread,
Jun 14, 2016, 1:17:12 PM6/14/16
to jasperreports-...@googlegroups.com
Cara, 

Ja tive problema parecido.. sim acredito que apenas isso (enviar parametro), você vai instanciar um locale (pt-br) no código java da sua aplicação e adicionar no mapa de parâmetros no momento de gerar o relatório. A engine do Jasper vai detectar e trabalhar com ela internamente, independente das configurações do SO. Faz um teste pra ver se funciona, quando precisei na época acho que apenas isso resolveu.

--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Atenciosamente,

Wellington Chagas
Programmer

Denis Benjamim

unread,
Jun 14, 2016, 1:23:55 PM6/14/16
to jasperreports-...@googlegroups.com

E mano no SO parece certo...  Bom  sobre oque o Robson  falou  vc define  o locale ao iniciar  sua aplicação,  aí a vm onde a aplicação  vai rodar  é  que vai assumir  o novo  valor,  aí pergunta é  desktop ou web?

Em 14/06/2016 14:05, "Robson" <robson...@hotmail.com> escreveu:
Segue os Prints

Denis Benjamim

unread,
Jun 14, 2016, 1:25:42 PM6/14/16
to jasperreports-...@googlegroups.com

Da uma olhada  em como pegar  o locale  e modificar na jvm http://stackoverflow.com/questions/8809098/how-do-i-set-the-default-locale-for-my-jvm

Robson

unread,
Jun 14, 2016, 1:41:48 PM6/14/16
to JasperReports / iReport Brasil
Olá Denis boa tarde.

Então eu estava com uma configuração setada no Tomcat onde eu tinha 

-Duser.language=pt_BR

vai anexo a imagem, eu até Retirei esta configuração quando vi que nem estava Adiantando Nada ( na verdade eu tinha esta configuração por conta do Horário de Verão ) 
agora vendo este link que vc enviou eu não sei qual o certo 

-Duser.language=pt_BR

ou -Duser.language=pt-BR


Tomcat - Configuracao.jpg

Denis Alves

unread,
Jun 14, 2016, 2:16:02 PM6/14/16
to jasperreports-...@googlegroups.com

Bom se tem tomcat é um possivel projeto WEB, na sua maquina esta assim certo ? e onde o projeto esta hospedado na produção como esta ?

Sobre mudar o Locale achei este link http://knowm.org/set-tomcats-default-locale/

Agora vai precisar consultar a documentação do tomcat ou procurar no google pelo correto ou testar um a um

Robson

unread,
Jun 14, 2016, 2:34:43 PM6/14/16
to JasperReports / iReport Brasil
Olá boa tarde.

Então eu tinha esta configuração setada mais mesmo assim não resultava em nada.

Fiz um pequeno programa e executei no servidor via linha de comando e o valor foi apresentado corretamente

String pattern = "###,##0.00";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
Locale locale = Locale.getDefault();
Double valor  = 1750.36;
System.out.println("Linguagem: " + locale.getDisplayLanguage() + '\n'
        +  "Valor: "     + decimalFormat.format(valor)   );

Denis Alves

unread,
Jun 14, 2016, 2:48:14 PM6/14/16
to jasperreports-...@googlegroups.com

........ reveja entao o pattern... eu desisto rs.

Robson

unread,
Jun 14, 2016, 4:03:51 PM6/14/16
to JasperReports / iReport Brasil
Olá Boa tarde.


Então o programa em java usando linha de comando não precisou de "Configurações" e "printou" o valor de forma correta agora eu refiz a configuração que o Tomcat manda para a JVM

-Duser.language=pt_BR isto esta errado 

-Duser.language=pt isto esta certo

e então experimentei e o relatório foi impresso corretamente, agora uma pergunta e a Data, todo relatório tem uma data, este em nenhum momento saiu errada, bem cada dia com sua Batalha, 

Obrigado!
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-ireport-brasil+unsub...@googlegroups.com.

Denis Benjamim

unread,
Jun 14, 2016, 4:59:53 PM6/14/16
to jasperreports-...@googlegroups.com

Datas! = Double ou valores monetários suscetíveis a modificação.  No máximo  ia trocar  o separador  de / por -

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "JasperReports / iReport Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jasperreports-irepor...@googlegroups.com.

Thiago Rodrigues

unread,
Jan 15, 2017, 5:21:23 PM1/15/17
to JasperReports / iReport Brasil
Excelente solução. Já havia pego este problema utilizando webphere, mas não com tomcat. Acabei de resolver através deste post. Obrigado.
Reply all
Reply to author
Forward
0 new messages