Não encontrou o que procurava? Dê uma olhada nessas páginas!

Blog

Símbolos Monetários no DataFlex Reports

16 de Fevereiro de 2014
Por Vincent Oorsprong

Símbolos Monetários - Sem depender do Locale do Windows

Se você utiliza uma coluna numérica em um relatório onde o valor requer um símbolo monetário (por exemplo, um preço ou total de pedido), você pode formatar o campo para exibir um símbolo monetário antes do número. Nas imagens a seguir, o símbolo do Euro é exibido na frente dos campos Credit Limit, Purchases e Balance.

Default Currency

Para tanto, você formata o campo e na aba Number você pode escolher entre "Windows Default Currency", "Custom Currency" ou "Custom Currency Mask".

No relatório acima eu selecionei "Windows Default Currency", o que fez com que o símbolo do Euro (€) fosse exibido na frente do valor numérico por que o Locale do meu Windows está configurado para a Holanda. Se você for imprimir esse relatório com as configurações regionais dos EUA, você veria o sinal do Dólar ($).

Isto é sempre o correto? Depende. Se todos os seus números estiverem em apenas uma moeda e todos os computadores que executarão o relatório utilizarem as mesmas configurações regionais, então tudo bem. Porém se este relatório for enviado para outra região, pode acontecer de os valores em Dólar serem impressos com o símbolo do Yuan chinês. Não é o que esperamos, certo? Um cálculo de conversão de moedas seria necessário para tanto.

Para contornar essa situação, eu posso selecionar "Custom Currency" e alterar o símbolo monetário utilizado na formatação para o que eu desejar. Eu posso alterar o símbolo para Sfr, £ ou Kr., etc. O símbolo ficará fixo no relatório e sempre será o mesmo. Observe a imagem abaixo:

Double Currency

O relatório acima mostra os valores da primeira linha em Euros, utilizando a formatação "Default Windows Currency" e na segunda linha, os valores estão em Libras (recalculados com a taxa de 0.82 Euros).

E se você quer ter ainda mais controle? Não depender do símbolo monetário padrão do Windows, nem em um símbolo monetário fixo no relatório? Isso é possível ao escolher a terceira opção: "Custom Currency Mask".

Primeiro, você deve criar uma máscara padrão. Para ajudar, escolha "Custom Currency" e deixe a tela criar a máscara para você. Mude para "Customer Currency Mask" e copie a máscara criada para a área de transferência do Windows.

Custom Mask

Feche a janela de formatação do campo e crie um parâmetro do tipo string no painel "Field Explorer".

create mask parameter

Na imagem acima, você pode ver que eu colei a máscara customizada. Como um parâmetro pode ser alterado no designer ou via integração, a máscara é agora flexível. Use este parâmetro em uma função criada para a máscara customizada, como mostrado abaixo.

currency mask function

Isto funcionará sempre? Depende se você pode determinar o símbolo monetário a partir da API de integração. Por exemplo, o símbolo do Euro não existe no conjunto de caracteres OEM e não pode ser configurado através do parâmetro. O que fazer então? Se você utilizar uma função no lugar de um parâmetro, você poderia escrever o seguinte:

 

return ’0.00;$ 1.1;($1.1);,;.;’ + Chr (0128)

 

Esta solução funciona porque o DataFlex Reports utiliza internamente o padrão ANSI e Chr(0128) representa o símbolo do Euro.

Com uma função no lugar de um parâmetro, o seu relatório utiliza uma função que retorna a máscara com o símbolo monetário.

Espero que este blog tenha te dado ideias sobre como utilizar o DataFlex Reports como a sua solução de relatórios!