André Alves de Lima

Talking about Software Development and more…

Configurando o idioma do Report Viewer

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

Newsletter do André Lima

* indicates required



Powered by MailChimp

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *