我有一个基于表格的多行块表单。要求是用户一次只能在块中输入1行并提交它。在提交第一行之前,不应该允许它们创建第二行。
我尝试使用像这样的WHEN-CREATE-RECORD触发器:
if :system.block_status = 'CHANGED' then
alert('Can only create one record at a time');
end if;
但是,即使在提交更改后,这也会阻止我创建新记录。
答案 0 :(得分:1)
一种方法是遍历所有记录,如果第二条记录不为空,则提醒用户。
DECLARE
n_index NUMBER := 0;
BEGIN
Go_block('block_name');
first_record;
WHILE :SYSTEM.last_record != 'TRUE' LOOP
next_record;
IF :block_name.item_name IS NOT NULL THEN --replace item_name with one which the user will enter all the time
n_index := n_index + 1;
END IF;
IF n_index > 0 THEN
Alert('Only one record can be created at a time!');
END IF;
END LOOP;
END;
答案 1 :(得分:1)
BEGIN
-- WHEN-NEW-RECORD-INSTANCE
IF :SYSTEM.CURSOR_RECORD > 1 THEN
DELETE_RECORD;
END IF;
END;