dbedit CNPJ Ajuda por favor
17/05/2008
0
O problema é que se eu mudar de campo durante a digitacao do cnpj e deixar ele incompleto aparece a seguinte mensagem:´ Invalid Input. Use escape key to abandon changes.´
Alguem pode me ajudar???
Andresan
Posts
18/05/2008
Dbergkamps10
tente mudar a máscara para 00.000.000/0000-00;0;0
espero ter ajudado.
Att
Dalton
21/05/2008
Andresan
ai a rotina de valodacao de cnpj no on exit nao funciona.
24/05/2008
Dbergkamps10
Poste aqui o código da função então, talvez possamos ajudar.
Att
Dalton
25/05/2008
Andresan
var
d1,d4,xx,ncount,fator,resto,digito1,digito2: integer;
check: string;
begin
d1 := 0;
d4 := 0;
xx := 1;
for ncount := 1 to length( xcnpj )-2 do
begin
if pos( copy( xcnpj, ncount, 1 ), ´/-.´ ) = 0 then
begin
if xx < 5 then
begin
fator := 6 - xx;
end
else
begin
fator := 14 - xx;
end;
d1 := d1 + strtoint( copy( xcnpj, ncount, 1 ) ) * fator;
if xx < 6 then
begin
fator := 7 - xx;
end
else
begin
fator := 15 - xx;
end;
d4 := d4 + strtoint( copy( xcnpj, ncount, 1 ) ) * fator;
xx := xx+1;
end;
end;
resto := (d1 mod 11);
if resto < 2 then
begin
digito1 := 0;
end
else
begin
digito1 := 11 - resto;
end;
d4 := d4 + 2 * digito1;
resto := (d4 mod 11);
if resto < 2 then
begin
digito2 := 0;
end
else
begin
digito2 := 11 - resto;
end;
check := inttostr(digito1) + inttostr(digito2);
if check <> copy(xcnpj,succ(length(xcnpj)-2),2) then
begin
result := false;
end
else
begin
result := true;
end;
end;
**************e no onexit do bdedit*****************************
procedure TfrmCadEmpresas.dbeCNPJExit(Sender: TObject);
begin
If trim(dbeCNPJ.Text)=´´ Then Exit;
if TestaCNPJ(dbeCNPJ.Text)=False then Begin
Application.MessageBox(´CNPJ Inválido!´,´Atenção´,MB_OK+MB_ICONINFORMATION);
dbeCNPJ.SetFocus;
Exit;
End;
end;
25/05/2008
Edilcimar
Se o que você deseja é obrigar a pessoa a digitar todos os números então deverá permanecer com os zeros, o que você pode fazer é no onexit do dbedit colocar a checagem dos dígitos dentro de um try...except, colocando uma mensagem no except para avisar ao digitador que estão faltando caracteres
29/05/2008
Andresan
entendi muito bem.
Clique aqui para fazer login e interagir na Comunidade :)