1.判断是否选择重复记录实现
在多选功能的情况下不有可能要求不能选择重复的记录,例如:
我们可以通过两层loop进行遍历,取第一个与每个进行对比,如果有相同的就GO_RECORD;这段代码可以直接拷贝当做模板。
/* FIRST_RECORD;
LOOP---------outer
IF :SYSTEM.RECORD_STATUS <> 'QUERY' THEN
--判断是否输入了重复记录
DECLARE
offer_t VARCHAR2(20); ---------13->20
temp_record NUMBER;
temp_item VARCHAR2(256);
count_t NUMBER(20);
BEGIN
temp_record := :SYSTEM.CURSOR_RECORD;
temp_item := :SYSTEM.CURSOR_ITEM;
GO_FIELD('CR_EXCEPTION_OFFER_SNCODE.OFFER_CODE');
count_t := 0;
offer_t := :SYSTEM.CURSOR_VALUE;
GO_BLOCK('CR_EXCEPTION_OFFER_SNCODE');
FIRST_RECORD;
LOOP--------inner
count_t := count_t + 1;
IF temp_record <> count_t THEN
GO_FIELD('CR_EXCEPTION_OFFER_SNCODE.OFFER_CODE');
IF offer_t = :SYSTEM.CURSOR_VALUE THEN
show_msg('E','Line '||TO_CHAR(temp_record)||' and line '||TO_CHAR(count_t)||' OFFER_CODE is duplicate, please check.');
RAISE FORM_TRIGGER_FAILURE;
END IF;
END IF;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;-------inner
GO_RECORD(temp_record);
END;
END IF;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;------------------outer