博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Oracle Form中,如何实现自动编号(行号)的功能
阅读量:6582 次
发布时间:2019-06-24

本文共 835 字,大约阅读时间需要 2 分钟。

方法一、

只需要将序号定义成公式,并将公式设置为: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;
: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;
BEGIN
DELETE_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中的记录很多时,由于使用了循环操作,所以会影响效率。

转载于:https://www.cnblogs.com/liuweicong39/archive/2012/06/01/2530644.html

你可能感兴趣的文章
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
我的友情链接
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
世界各国EMC认证大全
查看>>
最优化问题中黄金分割法的代码
查看>>
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>
ubuntu 16.04 安装PhpMyAdmin
查看>>
设置分录行按钮监听事件
查看>>
23种设计模式(1):单例模式
查看>>
socket 编程入门教程(五)UDP原理:4、“有连接”的UDP
查看>>
Jquery获取iframe中的元素
查看>>
Laravel 学习笔记5.3之 Query Builder 源码解析(下)
查看>>
Struts2简单入门实例
查看>>
2012CSDN年度博客之星评选http://vote.blog.csdn.net/item/blogstar/xyz_lmn
查看>>
BZOJ 4037 [HAOI2015]数字串拆分 ——动态规划
查看>>
SpringBoot实战总汇--详解
查看>>
2018年7月1日笔记
查看>>