sexta-feira, 9 de novembro de 2012

Validar dados repetidos em um Tabform (Apex 4.1)


O objetivo na tela de um cadastro de documentos de pessoa, era não permitir cadastrar o mesmo tipo de documento, e estes estavam dispostos no layout por um Tab Formular.

Veja na imagem abaixo que foi  informado um documento que já estava cadastrado,  e ao clicar em próximo executou a validação onde informava  ao usuário que o documento já existia.

 

Para a validação criei uma do tipo PL/SQL que retorna um texto de erro.

DECLARE
V_LINHA NUMBER;
CURSOR C_ROW IS
 SELECT 1
   FROM PESSOA P
  WHERE P.TPDCP_COD = APEX_APPLICATION.G_F02(:APEX$ROW_NUM)

  --TPDCP_COD = Chave primária da tabela Tipo de Documentos
  --G_F02 é a coluna que contém a informação
  --:APEX$ROW_NUM pega o número da linha

  AND P.PESDC_COD <> NVL( APEX_APPLICATION.G_F06(:APEX$ROW_NUM),0)
  --G_F06 é onde está o valor da coluna
  --PESDC_COD = Chave primária da tabela Documentos da Pessoa

  AND P.PES_COD =: P148_PES_COD;
  
BEGIN

 -- Abre o cursor
  OPEN C_ROW;
 FETCH C_ROW
  INTO V_LINHA;
 CLOSE C_ROW;


 --Verifica se houve resultado
 IF V_LINHA IS NOT NULL THEN
   RETURN 'Este documento já está cadastrado para esta pessoa.'
 END IF;  

END;


--Para descobrir o F02...F03 utilize o Firebug do Firefox.





É isso aí... grande Abraço!

Nenhum comentário:

Postar um comentário