Tabela Campo
Decimal
Esse campo é usado para valores numéricos com casas decimais, como preços, porcentagens, ou medidas. Mesmo que só números possam ser digitados, o sistema entende que esse número pode ter vírgula ou ponto para representar os centavos ou frações.
Comportamento
A máscara é aplicada nos seguintes lugares:
- Lista do crud
- Formulário do crud: Preenche o caracter separador de milhar (se houver) automaticamente a cada 3 casas. Usuário digita o separador dos decimais quando precisar identificar os decimais. Placeholder exibirá um padrão conforme a mascara. (9[9],[9][9][9].9 -> 99,999.9)
Regra
A combinação de vírgula para a separação dos decimais e vírgula também para a separação dos milhares não é permitida. Ao detectar isso a mascara inverte o separador e irá usar o ponto como separador de milhar. Ex: 9[9],[9][9][9],9 --> 9[9].[9][9][9],9
O mesmo para o uso de ponto para ambos separadores: Ex: 9[9].[9][9][9].9 --> 9[9],[9][9][9].9
Máscara vazia
Quando o campo MASCARA
estiver nulo ou vazio, assume automaticamente uma máscara padrão de 8 casas de inteiros e 2 decimais.
Quando não houver entrypoint de configuração por filial a máscara configurada será aplicada para todas.
Entrypoint
Filiais que usam diferentes tipos de máscara podem utilizar um entrypoint para fazer essa configuração.
Na tabela core_ds_tabela_campo
o campo MASCARA
será preenchido com o termo 'ENTRY_POINT'.
Um entrypoint do tipo JSON é criado com a seguinte estrutura no exemplo abaixo:
ACTION:
filial_masks
TABELA:
Tabela em que o campo decimal se encontra.
EQP
CONTENT:
Uma lista de campos, que possui a lista com as respectivas filiais e suas máscaras. É obrigatório o uso da filial 9999 que será a máscara padrão.
{
"ULTIMO_HORIMETRO": {
"9999": "9[9][9],[9][9][9].99", /** Default */
"31": "9[9][9].[9][9][9],99"
}
}
Exemplo completo do entrypoint (insert)
insert
into
nfs_homol_pamela_testes.nfs_entry_point (FILE_OR_DOMAIN,
`ACTION`,
XMOVA_INSTALLCODE,
XMOVA_INSTALLCODE_VERSION,
EMPRESA,
FILIAL,
`LOCAL`,
TABELA,
ENTRY_NUM,
CODE,
VERSION,
BUILD,
ATIVO,
CODETYPE,
FIELD,
DESCRIPTION,
INS_DH,
UPD_DH,
NFS_USER,
DB_USER)
values('SYSTEM', 'filial_masks', null, null, 9999, 9999, 9999, 'EQP', null, '{
"ULTIMO_HORIMETRO": {
"9999": "9[9][9][9][9][9].99",
"1": "9[9][9][9][9][9],99"
}
}', 1, 16, 1, 'JSON', null, null, '2019-04-01 10:58:59', '2025-03-31 16:20:55', null, 'thiago.silva.chp@152.249.44.132');
Máscaras (exemplos validados)
['[9][9][9][9]', '9999'],
['[9][9][9][9][9][9]', '999999'],
['[9][9],[9][9]', '99,99'],
['[9][9].99', '99.99'],
['[9][9][9],99', '999,99'],
['[9][9][9][9].99', '9999.99'],
['[9][9][9][9][9][9][9].99', '9999999.99'],
['9[9].9', '99.9'],
['9[9].99', '99.99'],
['9[9][9].99', '999.99'],
['9[9][9].99', '999.99'],
['9[9][9].9999', '999.9999'],
['9[9][9][9].9', '9999.9'],
['9[9][9][9].99', '9999.99'],
['9[9][9][9][9].99', '99999.99'],
['9[9][9][9][9][9].9', '999999.9'],
['9[9][9][9][9][9].99', '999999.99'],
['9[9][9],[9][9][9].99', '999,999.99'],
['9[9][9].[9][9][9],99', '999.999,99'],
['9[9][9][9][9][9],99', '999999,99'],
['9[9][9][9][9][9].999', '999999.999'],
['9[9][9][9][9][9].9999', '999999.9999'],
['9[9][9][9][9][9][9].9', '9999999.9'],
['9[9][9][9][9][9][9].99', '9999999.99'],
['9[9][9][9][9][9][9].999', '9999999.999'],
['9[9][9][9][9][9][9][9].9', '99999999.9'],
['9[9][9][9][9][9][9][9].99', '99999999.99'],
['9[9][9][9][9][9][9][9].999', '99999999.999'],
['9[9][9][9][9][9][9][9].99999', '99999999.99999'],
['9[9][9][9][9][9][9][9].99999999', '99999999.99999999'],
['9[9][9][9][9][9][9][9][9].9', '999999999.9'],
['9[9][9][9][9][9][9][9][9].9', '999999999.9'],
['9[9][9][9][9][9][9][9][9][9].99', '9999999999.99'],
['9[9][9][9][9][9][9][9][9][9][9].999', '99999999999.999'],
['9[9][9][9][9][9][9][9][9][9][9].99999999', '99999999999.99999999'],
['99.99', '99.99'],
['9999,99', '9999,99'],
['9999.999999999999999', '9999.999999999999999']