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