Este tópico explica como criar uma fórmula para converter um número em um texto com um formato monetário regional. Para mais informações sobre outras maneiras de formatar números através de fórmulas, acesse https://msdn.microsoft.com/pt-br/library/dwhawy9k(v=vs.110).aspx.
Por exemplo, considere o seguinte formulário (veja abaixo), em que o campo Valor Numérico gera um valor equivalente no campo Valor Monetário, de acordo com a opção selecionada no campo Moeda.
Neste caso, o campo Moeda é um atributo do tipo Lista de Opções de seleção única, cujas opções correspondem a moedas: a libra esterlina, o real brasileiro e o dólar americano. O campo Valor Numérico é um atributo do tipo Número, e o campo Valor Monetário é um atributo do tipo Fórmula de saída Texto que se baseia nos valores fornecidos para os dois campos anteriores, utilizando a estrutura abaixo. Tenha em mente que apesar do valor monetário ser expresso numericamente, a fórmula trata esse valor como um texto e que é necessário que a saída Texto seja selecionada para que a expressão possa ser validada corretamente. Observe que essa construção é semelhante à clássica "if-then-else", porém a função "IF" é substituída pelo operador ternário "?".
#resultado =((@moeda=='Libra Esterlina') ? @valor_numerico.ToString('C', #GetCulture('en-gb')) :
(@moeda=='Real Brasileiro')? @valor_numerico.ToString('C', #GetCulture('pt-br')) :
(@moeda=='Dólar Americano')? @valor_numerico.ToString('C', #GetCulture('en-us')) : @valor_numerico.ToString('C', #GetCulture('pt-br')));
#resultado
Nota: o operador ternário "?", mesmo quando encadeado com outros, deve sempre começar e terminar com parênteses.
Na fórmula acima, a variável #GetCulture() contém o código da região que a função ToString utilizará para transformar o valor do atributo Valor Numérico em um texto com formato monetário (ou seja, do país cuja moeda será utilizada). Os códigos regionais suportados podem ser consultados na seguinte página: https://msdn.microsoft.com/pt-br/goglobal/bb896001.aspx.
Neste exemplo, se a opção selecionada no campo Moeda for "Real Brasileiro" e o valor inserido no campo Valor Numérico for 1510,13, a fórmula do campo Valor Monetário retornará o texto "R$ 1.510,13". Observe que, além da inserção do símbolo da moeda (R$), os caracteres separadores de milhares (ponto) e centavos (virgula) são adequados ao formato monetário da região (pt-br) informado no parâmetro.
Cada linha da fórmula só é avaliada se as condições anteriores forem falsas. Se a primeira condição for verdadeira, o primeiro valor é retornado. Caso contrário, o operador ternário seguinte é avaliado e o processo se repete até que algum deles seja verdadeiro ou todas a condições sejam avaliadas. Caso nenhuma condição seja atendida, o último valor restante será utilizado (no exemplo acima, o formato "pt-br").