- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 15 anos, 4 meses atrás por Leonardo Litz.
-
AutorPosts
-
9 de setembro de 2009 às 5:32 pm #89539LeloStyleParticipante
Bom dia pessoal,
Estou com a seguinte trigger no meu forms que é para a validação de um campo, mas quando o digito verificador não for valido ele dá a mensagem e tbm não pode deixar sair do campo até que o digito seja valido ou deixe o campo em branco. Só que to conseguindo passar do campo mesmo dando a mensagem, é que ainda não sei usar corretamente o raise, segue o meu codigo se alguem puder mostrar aonde estou errando
declare
v_digito_antn varchar2(2);
v_digiton number;
p_mens varchar2(2000);
v_digito_antold varchar2(2);
v_digito number;
v_ci varchar2(13);
begin
if :pitcau.id_tipo_endosso = 6
and (:pitcau.id_tipo_seguro = 'R'
or :pitcau.id_tipo_seguro = 'O') then
set_item_property ('pitcau.id_codigo_identificacao',navigable,property_true);
set_item_property ('pitcau.id_codigo_identificacao',enabled,property_true);if :pitcau.id_codigo_identificacao is not null then
if length(:pitcau.id_codigo_identificacao) = 14 then
v_digito_antn := substr(:pitcau.id_codigo_identificacao,14,1);
prod1703_003(:pitcau.id_codigo_identificacao,v_digiton,p_mens);if to_char(v_digiton) <> v_digito_antn then
v_digito_antold := substr(:pitcau.id_codigo_identificacao,14,1);
v_ci := substr(:pitcau.id_codigo_identificacao,1,13);
prod1703_002(v_ci,v_digito,p_mens);if to_char(v_digito) <> v_digito_antold then
mensagem('Digito Verificador Inválido. ');
end if;end if;
else
mensagem('Digito Verificador Inválido. ');
end if;
end if;
end if;
exception
when others then
p_mens := 'Problemas ao validar o dígito de CI.'||sqlerrm;
raise form_trigger_failure;
end;grato
9 de setembro de 2009 às 5:58 pm #89540Leonardo LitzParticipanteAcho que é isso que vc esta querendo
declare
v_digito_antn varchar2(2);
v_digiton number;
p_mens varchar2(2000);
v_digito_antold varchar2(2);
v_digito number;
v_ci varchar2(13);
begin
if :pitcau.id_tipo_endosso = 6
and (:pitcau.id_tipo_seguro = 'R'
or :pitcau.id_tipo_seguro = 'O') then
set_item_property ('pitcau.id_codigo_identificacao',navigable,property_true);
set_item_property ('pitcau.id_codigo_identificacao',enabled,property_true);if :pitcau.id_codigo_identificacao is not null then
if length(:pitcau.id_codigo_identificacao) = 14 then
v_digito_antn := substr(:pitcau.id_codigo_identificacao,14,1);
prod1703_003(:pitcau.id_codigo_identificacao,v_digiton,p_mens);if to_char(v_digiton) v_digito_antn then
v_digito_antold := substr(:pitcau.id_codigo_identificacao,14,1);
v_ci := substr(:pitcau.id_codigo_identificacao,1,13);
prod1703_002(v_ci,v_digito,p_mens);if to_char(v_digito) v_digito_antold then
mensagem('Digito Verificador Inválido. ');
raise form_trigger_failure;
end if;end if;
else
mensagem('Digito Verificador Inválido. ');
raise form_trigger_failure;
end if;
end if;
end if;
exception
when others then
p_mens := 'Problemas ao validar o dígito de CI.'||sqlerrm;
raise form_trigger_failure;
end;
-
AutorPosts
- Você deve fazer login para responder a este tópico.