Função: __SetPicture
Define o comportamento de aplicação de picture numérica no sistema, para operações de entrada de dados via instrução [ @ ... SAY/GET ... PICTURE ] , bem como o comportamento na formatação de dados numéricos em string através da função Advpl Transform(), quando utilizamos a função de picture "@E", para formatar um dado numérico em string utilizando o formato Europeu ( onde a vírgula é usada como separador decimal e ponto(s) utilizado(s) como separador(es) de milhar ).
__SetPicture ( [ cPictMode] ) --> cPictUsed
Nome | Tipo | Descrição | Obrigatório | Referência |
cPictMode | Caracter | String para definir o comportamento da aplicação da picture de formatação numérica. Os valores considerados são : DEFAULT e/ou AMERICAN. Veja maiores detalhes sobre o significado de cada uma destas opções nas observações da função. |
-
cPictUsed(caracter)
- Retorna a string correspondente à aplicação de picture numérica em uso no sistema.
Na linguagem Advpl, a aplicação de pictures numéricas "@E" nas pictures de entrada de dados / visualização ( @ GET / SAY ) e/ou na função de formatação Transform(), faz com que a formatação aplicada ao número seja feita em formato Europeu ( onde a vírgula é usada como separador decimal e ponto(s) utilizado(s) como separador(es) de milhar ).
Através da função __SetPicture(), quando chamada com o parâmetro "AMERICAN", podemos alterar o comportamento desta formatação específica, para que a formatação aplicada permaneça em formato americano ( onde o ponto é usado como separador decimal e vírgula(s) utilizada(s) como separador(es) de milhar ), mesmo que a função "@E" esteja explícita na picture.
Caso especificada uma nova formatação, os únicos valores válidos como parâmetro são as strings "DEFAULT" e "AMERICAN", sem espaços, e com caixa alta ( todas as letras maiúsculas ). Quaisquer outros valores serão considerados inválidos, e serão ignorados pela função, sem a emissão de mensagem de erro ou advertência, mantendo a configuração de comportamento inalterada.
User Function TSTSETP()Local cOldCfgLocal nNumTeste := 123456.78// Mostra na tela um numero formatado e a configuração atual em uso // Deve ser mostrado 123.456,78 ( formato europeu ) MsgStop( Transform ( nNumTeste , "@E 999,999.99") , "Configuracao "+__SetPicture() )// retorna a configuração atualmente em uso // e Troca a configuração atual para padrão americano cOldCfg := __SetPicture("AMERICAN")// Mostra na tela um numero formatado e a configuração atual em uso // Deve ser mostrado 123,456.78 ( formato americano ) MsgStop( Transform ( nNumTeste , "@E 999,999.99") , "Configuracao "+__SetPicture() )// Restaura a configuração anterior __SetPicture(cOldCfg)// Mostra na tela um numero formatado e a configuração atual em uso // Deve ser mostrado 123.456,78 ( formato europeu ) MsgStop( Transform ( nNumTeste , "@E 999,999.99") , "Configuracao "+__SetPicture() )Return