首页  ·  知识 ·  数据库
在OracleForm中实现自动编号
xialingge2006   http://blog.163.com/xialingge2006    编辑:德仔   图片来源:网络
lang=EN-US方法一、/ 只需要将 lang=EN-USld

方法一、

只需要将序号定义成公式,并将公式设置为:get_block_property('block_name',current_record) 就可以实现了,或者把这行语句放到“When-Create-Record”触发器中。

缺点:增改删时,行号不能自动刷新。

 

方法二、

block的三个触发器中添加相应的代码:

Key-Crerec:

DECLARE
LINE NUMBER;
BEGIN
LINE := :SYSTEM.CURSOR_RECORD;
LOOP
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
:block_name.item_name := :SYSTEM.CURSOR_RECORD + 1;
END IF;
END LOOP;
GO_RECORD(LINE);
CREATE_RECORD;
:block_name.item_name := :SYSTEM.CURSOR_RECORD;
END;

Key - Delrec:

DECLARE
LINE NUMBER;
BEGIN
DELETE_RECORD;
LINE := :SYSTEM.CURSOR_RECORD;
LOOP
:block_name.item_name := :SYSTEM.CURSOR_RECORD;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;
GO_RECORD(LINE);
END;
When - Create - Record:

:block_name.item_name := :SYSTEM.TRIGGER_RECORD;

缺点:对于记录数很少的table适用,当table中的记录很多时,由于使用了循环操作,所以会影响效率。

本文作者:xialingge2006 来源: http://blog.163.com/xialingge2006
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读