Máscaras de edição
As máscaras de edição de valores definem a exibição dos valores de todos os campos exibidos nas telas de sistema.
São utilizadas em campos de usuário através do CBDS.
Pictures de máscara
| Picture | Tipo | Descrição | Exemplo |
|---|---|---|---|
| 9 | Numérico | Obriga a entrada de um caractere numérico. | 99.999 |
| Z | Numérico | Permite a entrada de um caractere numérico. Ignora os zeros à esquerda. | ZZ.ZZ9 |
| A | Alfanumérico | Permite a entrada de qualquer caractere alfanumérico. | AAAAA |
| U | Alfanumérico | Permite a entrada de qualquer caractere alfanumérico. Converte este caractere para maiúsculo. | UU |
| L | Alfanumérico | Permite a entrada de qualquer caractere alfanumérico. Converte este caractere para minúsculo. | ULLLL |
| D | Dia | Obriga a entrada de um caractere numérico para representação de dia. | DD/MM/YYYY |
| M | Mês | Obriga a entrada de um caractere numérico para representação de mês. | DD/MM/YYYY |
| Y | Ano | Obriga a entrada de um caractere numérico para representação de ano. | DD/MM/YYYY |
| h | Hora | Obriga a entrada de um caractere numérico para representação de hora. | hh:mm:ss |
| m | Minuto | Obriga a entrada de um caractere numérico para representação de minuto. | hh:mm:ss |
| s | Segundo | Obriga a entrada de um caractere numérico para representação de segundo. | hh:mm:ss |
| C | Caractere | Permite a entrada de qualquer letra do alfabeto. Não permite a entrada de caracteres especiais e números. | CCCCC |
Delimitadores
| Picture | Descrição | Exemplo |
|---|---|---|
| [, ] | Indicam o início e o final de repetição de picture de máscara. Formato: <picture de máscara> + '[' + <número de vezes que esta picture será repetida> + ']'. | A[5] |
| # | Indica o início e o final de informação de pictures especiais. Formato: '#' + <pictures especiais> + '#' + máscara. | #-#ZZ9,99 |
Pictures especiais
As informações especiais de máscara estão situadas entre os separadores '#' no início da picture de edição:
| Picture | Descrição | Exemplo |
|---|---|---|
| < | A edição será processada da direita para a esquerda (Padrão para campos numéricos). | #<#999.999 |
| > | A edição será processada da esquerda para a direita (Padrão para campos não numéricos e campos tipo data e hora). | #>#999.999 |
| b | A máscara não será mostrada. Usado apenas quando se usa a picture 'Z'. | #b#ZZZ.ZZZ |
| n | A máscara será mostrada vazia. Usado apenas quando se usa a picture 'Z'. | #n#ZZZ.ZZZ |
| e | Os espaços ao final da palavra serão apagados. | #e#AAAAA |
| - | A edição permite números negativos. | #-#ZZ9,99 |
| M | A formatação do tipo Money será ignorada. Formata o campo como se fosse Numeric. | #M#ZZ9,99 |
| C | Os valores do tipo Time e Longtime serão tratados como valores decimais. | #C#hhh:mm |
| A | Os valores numéricos terão tratamento contábil. | #A#ZZ9,99 |
| V | Indica a quantidade de casas decimais do valor. Vem seguido do número de casas decimais. | #V2#ZZ999 |
| 1 | A posição do sinal negativo será à direita (padrão). Formato: '-' + '1'. | #-1#ZZ9,99 |
| 2 | A posição do sinal negativo será à esquerda. Formato: '-' + '2'. | #-2#ZZ9,99 |
| 3 | Números negativos ficarão entre parênteses. Formato: '-' + '3'. | #-3#ZZ9,99 |
| W | Não será considerada a acentuação. | #W#AAAAA |
| [, ] | Indicam o início e o final de um campo especial. Formato: '[' + <nome do especial> + ']'. | #[EdiCra]# |
| F | Indica posições com valores fixos na máscara. Formato: 'F' + '[' + <posição> + ',' + <quantidade de posições> + ',' + <'D' (se o valor puder ser alterado) ou 'N' (se o valor não puder ser alterado)> + ']' + ';'. O formato descrito anteriormente pode se repetir várias vezes. Após todas as posições fixas serem indicadas, deve-se usar o seguinte formato: <máscara de edição> + ';' + <conjunto de N caracteres, onde N é a soma de todas as quantidades de posições de todos os indicadores de valores fixos> + ';' + <posição onde irá aparecer o cursor>. Esta opção deve ser a última que aparece entre os delimitadores '#'. | #F[1,2,N];F[3,3,D]; 99.999.99;01012;4# |
| (, ) | Indicam o início e o final de um campo memo. Formato: '(' + <número de colunas> + ',' + <número de linhas> + ')'. | #(50,4)# |
| L | Indica um Lookup do qual será buscada a máscara. Um Lookup pode ser registrado através da procedure RegisterLookup. Formato: 'L''+ '(' + <nome do Lookup> + ')'. | #L(NumEmp)# |
| Y | Indica o ano inicial para valores convertidos
pela máscara. Usado em campos Data com ano de dois dígitos para
calcular o ano de quatro dígitos. Formato: 'Y' + '(' + <ano>
+ ')'. Quando o ano passado for maior ou igual aos dois últimos
dígitos do ano base, o ano resultante será a concatenação entre
os dois primeiros dígitos do ano base e o ano informado. Quando
o ano passado for menor que os dois últimos dígitos do ano base,
o ano resultante será a concatenação entre os dois primeiros dígitos
do ano base incrementados em 1 e o ano informado. Por exemplo: Usando a máscara '#Y(1950)#DD/MM/YY', a conversão de datas ficaria assim:
Para alterar o ano base padrão do sistema pode-se executar a rotina MskSetBaseYear passando o ano base desejado. Após a alteração do ano base deve-se usar a rotina PictureStringToValue para converter o valor desejado e retornar o ano base padrão para que as datas do sistema continuem funcionando corretamente. Para isto deve-se executar a rotina MskSetBaseYear passando o parâmetro cOTDefaultBaseYear. A alteração do ano base padrão pode afetar as máscaras em locais não desejados do sistema, por isso somente deve ser feita em situações específicas e bem definidas. Exemplo: xData := PictureStringToValue('01/01/01',
'DD/MM/YY'); // irá retornar 01/01/1901 |
#Y(1950)#DD/MM/YY |
| N | Indica a precisão e o número de casas decimais de um campo numérico. Formato: 'N' + '(' + <precisão> + ',' + <número de casas decimais> + ')'. | #N(5,2)#99999 |
| Q | Caso exista um campo com máscara tipo hora com duas posições para hora e seja quantidade, foi implementada essa opção, que indica quantidade. Se esta opção não for indicada será feita a validação (00:00 a 23:59). | #Q#hh:mm |
| R | Troca caracteres de controle por espaço nos valores mascarados pelas máscaras tipo alfanuméricas. | #R#A[30] |
| l | Converte a parte alfanumérica para "todas em minúsculas". | #l#C[20] |
| u | Converte a parte alfanumérica para "todas em maiúsculas". | #u#C[20] |
| S | Define os separadores para máscaras numéricas. Após o caractere 'S' devem estar concatenados outros dois caracteres que definem o separador de milhares e o separador de decimais respectivamente. Formato: 'S' + <caractere que define o separador de milhares> + <caractere que define o separador de decimais> | #S,.#ZZZ.ZZ9,99 |
| @ |
Indica que todo o texto será tratado como valor. Isto significa que qualquer caractere que faça parte da máscara (ponto, vírgula, traço, barra,...) será salvo junto com o valor. Esta opção somente deve ser usada com campos alfanuméricos. Ao utilizar essa opção a máscara não irá respeitar configurações regionais. |
#@#999.999.999.999 |
Tipos de máscara
| Tipo | Tipo de dado | Tipos de edição | Exemplo |
|---|---|---|---|
| tmAlpha | Alfanumérico |
Permite utilizar A, C, L, U, Z, 9 e qualquer outro tipo de caractere especial. Quando o caractere "@" for utilizado em máscaras de campos alfanuméricos e deseja que a máscara seja numérica, é recomendado:
|
(Z99)999-9999; AA-UU-L/C; ULLLLL ou #@<#9[17] |
| tmNumeric | Numérico | Permite: Z, 9 e os seguintes caracteres especiais: '.', '/', ':', '(', ')', '[' ou ']'. | (Z99)999-9999; #-<b#ZZZZ; ZZZ.ZZ9 |
| tmTime | Hora | Permite: h, m e o caractere especial ':'. | hh:mm |
| tmLongtime | Quantidade de hora | Permite: h, m e o caractere especial ':'. | hhhh:mm; #C#hhh:mm |
| tmDate | Data | Permite: D, M, Y e os seguintes caracteres especiais: '/' ou '-'. | DD/MM/YYYY; MM-DD-YYYY |
| tmMoney | Numérico com casas decimais | Permite: Z, 9 e os seguintes caracteres especiais: '.', '/' ou ','. | #-#Z.ZZ9,99; 9.999,99; 99999 |
| tmEspecial | Especial | A forma de edição do especial é cadastrada na tabela R999ESP. | #[EdiLoc]#; #[EdiCra]# |
Importante
Ao configurar máscaras para campos definidos como NUMBER, utilize apenas números. O uso de outros caracteres pode gerar erros na aplicação.
Exemplo válido: 9.9.9
Exemplo inválido: Z9.9.9
O erro ocorre porque a máscara Z9.9.9 indica que o valor pode ter casas decimais, mas o campo está definido como inteiro. Como campos inteiros não aceitam decimais, a máscara se torna incompatível e gera o erro.

English
Español


