Quando instalamos aplicações desktop em computadores com sistema operacional que não esteja traduzido para português, temos que nos atentar para a globalização das nossas aplicações. Em alguns casos, os controles podem vir formatados em inglês (ou no formato do idioma que estiver configurado no computador). Se a aplicação conta com relatórios do Report Viewer, esse é um ponto que devemos prestar bastante atenção, uma vez que, por padrão, os relatórios trazem o formato de datas e números em inglês. Como fazemos para alterar o idioma do Report Viewer? É isso que eu mostro para você no vídeo de hoje:
Alterando o idioma do controle
A alteração do idioma do Report Viewer pode ser dividida em duas partes. Primeiro, temos a tradução do controle em si (labels, tooltips, mensagens de erro, etc). E, depois, temos a configuração do idioma do relatório (para que as datas, números e moedas venham no formato correto).
Para alterarmos o idioma do controle do Report Viewer, temos que configurar o idioma da aplicação como um todo. Fazemos isso setando a cultura da thread principal da aplicação. Isso pode ser feito no método “main” ou no construtor do formulário principal da sua aplicação:
// C# var cultura = new System.Globalization.CultureInfo("pt-BR"); System.Threading.Thread.CurrentThread.CurrentCulture = cultura; System.Threading.Thread.CurrentThread.CurrentUICulture = cultura;
' VB.NET Dim Cultura = New System.Globalization.CultureInfo("pt-BR") System.Threading.Thread.CurrentThread.CurrentCulture = Cultura System.Threading.Thread.CurrentThread.CurrentUICulture = Cultura
E com isso o controle do Report Viewer exibirá mensagens, tooltips, etc. no idioma configurado:
Alterando o idioma do relatório
Dentro do relatório, nós provavelmente teremos TextBoxes com formatação de data/hora, número e moeda. Se nós não configurarmos um idioma específico dentro do relatório, muito provavelmente o Report Viewer utilizará as informações de cultura do idioma inglês americano. Ou seja, as datas aparecerão invertidas e os números com ponto como separador (ao invés de vírgula).
Para que esses tipos de controles venham com a formatação correta, nós temos que alterar a propriedade “Language” do relatório:
Ao fazermos isso, as datas e números aparecerão no formato correto. Porém, se tivermos formatado um TextBox com formato monetário, ele ficará “travado” para o formato configurado no computador de desenvolvimento (no meu caso, em Euros):
Formatando moedas
Se quisermos que as moedas também venham formatadas respeitando o idioma selecionado no relatório, nós teremos que configurar uma expressão para fazer a formatação manual (ao invés de fazermos a formatação como indicado acima). A expressão para esses tipos de TextBox seria a seguinte:
=String.Format("{0:c}", Fields!NomeDoCampo.Value)
Aí sim os campos com moedas serão formatados da maneira correta:
Sincronizando o idioma do relatório com o idioma da aplicação
Para não termos que configurar o idioma em dois lugares diferentes (na aplicação e depois em cada um dos relatórios), nós podemos configurar o idioma dos relatórios de maneira dinâmica, de forma que ele respeite automaticamente o idioma configurado na aplicação.
Se você procurar por esse assunto na internet, você encontrará muita gente sugerindo as mais diversas gambiarras para solucionar essa questão (como passar o idioma para o relatório via parâmetro, por exemplo). Porém, isso é algo muito fácil de ser resolvido. Basta configurarmos o idioma do relatório com uma expressão que retornará o idioma da aplicação. Essa informação está disponível dentro de “Built-in fields” na janela de expressões:
Baixe o projeto de exemplo
Para baixar o projeto de exemplo desse artigo, assine a minha newsletter. Ao fazer isso, além de ter acesso ao projeto, você receberá um e-mail toda semana sobre o artigo publicado e ficará sabendo também em primeira mão sobre o artigo da próxima semana, além de receber dicas “bônus” que eu só compartilho por e-mail. Inscreva-se utilizando o formulário no final do artigo.
Concluindo
No vídeo de hoje você conferiu o esquema de tradução de relatórios do Report Viewer. Primeiramente, conferimos como podemos configurar o idioma do controle do Report Viewer. Em seguida, nós aprendemos a configurar os formatos de hora, número e moeda dos nossos relatórios. Por fim, nós vimos como sincronizar o idioma da aplicação e dos relatórios.
E você, já teve problemas com os idiomas e formatações no Report Viewer? Conseguiu resolver esses problemas seguindo os passos que eu indiquei no vídeo? Ficamos aguardando as suas experiências na caixa de comentários logo abaixo.
Até a próxima!
André Lima
The post Configurando o idioma do Report Viewer appeared first on André Alves de Lima.