方法一、
只需要将“序号”定义成公式,并将公式设置为:get_block_property('block_name',current_record) 就可以实现了,或者把这行语句放到“When-Create-Record”触发器中。
缺点:增改删时,行号不能自动刷新。
方法二、
在block的三个触发器中添加相应的代码:
Key-Crerec:
DECLARE
LINE NUMBER;BEGINLINE := :SYSTEM.CURSOR_RECORD;LOOPIF :SYSTEM.LAST_RECORD = 'TRUE' THEN EXIT; ELSENEXT_RECORD; :blk.ID := :SYSTEM.CURSOR_RECORD + 1; END IF; END LOOP;GO_RECORD(LINE);CREATE_RECORD;:blk.ID := :SYSTEM.CURSOR_RECORD;END;Key - Delrec:
DECLARE
LINE NUMBER;BEGINDELETE_RECORD;LINE := :SYSTEM.CURSOR_RECORD;LOOP :blk.ID := :SYSTEM.CURSOR_RECORD; IF :SYSTEM.LAST_RECORD = 'TRUE' THEN EXIT; ELSE NEXT_RECORD; END IF; END LOOP;GO_RECORD(LINE);END;When - Create - Record::blk.ID := :SYSTEM.TRIGGER_RECORD;
缺点:对于记录数很少的table适用,当table中的记录很多时,由于使用了循环操作,所以会影响效率。