Formatação no PEX (Telefone Fixo / Celular)
Neste tópico será abordado o tema referente ao evento PEX, com o intuito de formatar o campo TELEFONE, verificando se é um TELEFONE FIXO ou CELULAR, dependendo da quantidade de caracteres digitado.
Para acessar o PEX de um formulário basta marcar a opção Ao Sair e clicar no botão com três pontos.
Segue a imagem abaixo:
Segue o código que será aplicado Ao sair - PEX:
//PEX PARA TRATATIVA DE CAMPO FORMATADO COMO TELEFONE FIXO OU CELULAR
CONST
CS_FONE = '4';
VAR
liTamanho : Integer;
lsMascara : String;
begin
liTamanho := length(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO')); //Conta a quantidade de caracteres digitada.
lsMascara := '('+ copy(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO'),0,2)+') '+copy(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO'),3,liTamanho-6)+'-'+ copy(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO'),liTamanho-3,liTamanho); //Insere a máscara (parênteses, espaçamento e traço) conforme a quantidade de caracteres digitados.
aoFormularios.GetJSON(CS_FONE).SetStr('TEXTO', lsMascara); //Preenche o campo digitado ao sair dele, já com a máscara atribuída.
// Esta parte abaixo, formata a mensagem de erro caso a quantidade de caracteres digitados for maior que o limite máximo.
if length(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO')) < 14 then
begin
aoFormularios.GetJSON(CS_FONE).SetStr('TEXTO', '');
aoMensagem.SetStr('MENSAGEM', 'Você precisa digitar a quantidade mínima de caracteres');
aoMensagem.SetStr('TIPO', 'ALERTA');
aoMensagem.SetInt('TIMEOUT', 8000{Milissegundos});
end;
// Esta parte abaixo, formata a mensagem de erro caso a quantidade de caracteres digitados for menor que o limite mínimo.
if length(aoFormularios.GetJSON(CS_FONE).GetStr('TEXTO')) > 15 then
begin
aoFormularios.GetJSON(CS_FONE).SetStr('TEXTO', '');
aoMensagem.SetStr('MENSAGEM', 'Você ultrapassou a quantidade máxima de caracteres');
aoMensagem.SetStr('TIPO', 'ALERTA');
aoMensagem.SetInt('TIMEOUT', 8000{Milissegundos});
end;
end;