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]# |