Árvore de páginas

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

 

NomeTipoDescriçãoObrigatórioReferência
cPictModeCaracterString para definir o comportamento da aplicação da picture de formatação numérica. Os valores considerados são : DEFAULT, AMERICAN ou RUSSIAN*. 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.

Quando chamada com o parâmetro "RUSSIAN" (*), a formatação da picture com @E será com espaços no separador de milhar e virgula no separador decimal (por exemplo: 123 456,78)

Caso especificada uma nova formatação, os únicos valores válidos como parâmetro são as strings  "DEFAULT", "AMERICAN" e "RUSSIAN" (*), 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.

 

ConfiguraçãoSeparador de MilharSeparador DecimalExemplo
DEFAULT"." (Ponto)"," (Virgula)123.456.789,12
AMERICAN"," (Virgula)"." (Ponto)123,456,789.12
RUSSIAN*" " (Espaço)"," (Virgula)123 456 789,12

 

*RUSSIAN só é aceito em builds superiores a 7.00.131227A - 2.4.0 (com geração superior a 20161130).

User Function TSTSETP()
Local cOldCfg
Local 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
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

  • Sem rótulos