Pular para o conteúdo
  • Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 15 anos, 4 meses atrás por Avatar photoLeonardo Litz.
Visualizando 2 posts - 1 até 2 (de 2 do total)
  • Autor
    Posts
  • #89539
    LeloStyle
    Participante

      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

      #89540
      Avatar photoLeonardo Litz
      Participante

        Acho 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;

      Visualizando 2 posts - 1 até 2 (de 2 do total)
      • Você deve fazer login para responder a este tópico.
      plugins premium WordPress