Saturday, 24 August 2013

Duplicate Check More Than One Column in a block

PROCEDURE P_buffer_check IS
   currec varchar2(20) := :system.cursor_record;
   curfld varchar2(20) := :system.cursor_field;
   curblk varchar2(20) := :system.cursor_block;
   curval1 varchar2(2) :=  :crq3.updoctyp;
   curval2 number(2)   :=  :crq3.upsubtyp;
   curval3 varchar2(20) := :crq3.updocnum;
   curval4 date         := :crq3.updocdte;
   curval5 number(3)    := :crq3.updocsrl;
BEGIN
   go_block('crq3');
   First_record;
   If  NOT (:system.cursor_record = 1 and :system.last_record = 'TRUE') then
   LOOP
     If :system.cursor_record <> currec then
       If :crq3.updoctyp = curval1 and :crq3.upsubtyp = curval2 and
          :crq3.updocnum = curval3 and :crq3.updocdte = curval4 and
          :crq3.updocsrl = curval5 then
          Base_message_box('Combination Cannot Be Duplicated');
        go_record(currec);
        Raise form_trigger_failure;
       End if;
     End if;
     Exit When :system.last_record = 'TRUE';
     Next_Record;
   END LOOP;
  End if;
     Go_block(curblk);
     Go_record(currec);
     Go_field(curfld);
END;

No comments:

Post a Comment