Estou usando forms6i e no When-Validate-Item, estou colocando esse código:
+++++++++++++++++++++++++++++++++++++++++++++++
declare
dados number;
validar1 number;
validar2 number;
BEGIN
if :teste_m_cliente.cnpj <> null then
dados:=rtrim(rtrim(:teste_m_cliente.cnpj));
if length(dados)=14 then
validar1:= (((substr(dados,1,1))*5)+((substr(dados,2,1))*4)+((substr(dados,3,1))*3)+((substr(dados,4,1))*2)+
((substr(dados,5,1))*9)+((substr(dados,6,1))*8)+((substr(dados,7,1))*7)+((substr(dados,8,1))*6)+
((substr(dados,9,1))*5)+((substr(dados,10,1))*4)+((substr(dados,11,1))*3)+((substr(dados,12,1))*2));
validar1:=mod(validar1,11);
if validar1<2 then
validar1:=0;
else
validar1:=11-validar1;
end if;
else
Message('CNPJ faltando número');
:teste_m_cliente.cnpj:= null;
Synchronize;
raise form_trigger_failure;
end if;
if to_char(validar1)<>substr(dados,13,1) then
Message('Número de CNPJ errado');
:teste_m_cliente.cnpj:= null;
Synchronize;
raise form_trigger_failure;
else
Message('Primeiro digito correto');
:teste_m_cliente.cnpj:= null;
Synchronize;
end if;
if to_char(validar1)= substr(dados,13,1) then
validar2:= (((substr(dados,1,1))*6)+((substr(dados,2,1))*5)+((substr(dados,3,1))*4)+((substr(dados,4,1))*3)+
((substr(dados,5,1))*2)+((substr(dados,6,1))*9)+((substr(dados,7,1))*8)+((substr(dados,8,1))*7)+
((substr(dados,9,1))*6)+((substr(dados,10,1))*5)+((substr(dados,11,1))*4)+((substr(dados,12,1))*3)+
((substr(dados,13,1))*2));
validar2:=mod(validar2,11);
if validar2<2 then
validar2:=0;
else
validar2:=11-validar2;
end if;
if to_char(validar2)<>substr(dados,14,1) then
Message('Número de CNPJ errado');
:teste_m_cliente.cnpj:= null;
Synchronize;
raise form_trigger_failure;
else
Message('Segundo digito correto');
:teste_m_cliente.cnpj:= null;
Synchronize;
end if;
end if;
else
Message('Dados não pode ser Nulo');
:teste_m_cliente.cnpj:= null;
Synchronize;
raise form_trigger_failure;
end if;
:teste_m_cliente.cnpj:= null;
Synchronize;
End;
alguém pode me dar um help!
Obrigada.