oracle form 下拉列表,Oracle技术网—FORM中,怎样创建动态下拉列表List

实现方法:

1、打开Form Builder

2、文件(F)→新建(N)→表格(F)

3、新建一个非数据块,取名为tool

4、鼠标右键→布局编辑器(E)

5、建一个列表项,名为xl(属于tool块)

6、新建一过程,内写如下的代码

PROCEDURE create_xl IS                    --动态显示学历过程

CURSOR A IS SELECT DISTINCT(xl) FROM t_xl;      --建立a游标,从学历档案表取原始数据(有可能动态变化)

CNT NUMBER;                    --记录总数变量,用于生成列表的总项数

i NUMBER;                    --循环变量

TNAME t_xl.name%TYPE;                --TNAME变量和t_xl表中name项具有相同的结构

BEGIN

CLEAR_LIST('tool.xl');                --清空列表tool.xl(tool块上的xl项)

SELECT COUNT(DISTINCT(name)) INTO CNT FROM t_xl;   --计算列表总数

OPEN A;                        --打开游标

FOR i IN 1..CNT LOOP                 --开始循环

FETCH A INTO TNAME;              --取数

EXIT WHEN A%NOTFOUND;             --退出条件

ADD_LIST_ELEMENT('tool.xl',i,TNAME,TNAME);  --把查询出的值加入列表中(序号,实际值,显示值)

END LOOP;                       --结束循环

CLOSE A;                       --关闭游标

END;

7、在Form级触发器中添加触发WHEN-NEW-FORM-INSTANCE

在此触发器中写如下代码:create_xl;

使FORM程序一启动,就调用此过程,达到动态生成下拉列表List的效果。

附:

--学历档案表

create table t_xl(name varchar2(6));

insert into t_xl values('小学');

insert into t_xl values('初中');

insert into t_xl values('职高');

insert into t_xl values('技校');

insert into t_xl values('高中');

insert into t_xl values('中专');

insert into t_xl values('大专');

insert into t_xl values('本科');

insert into t_xl values('研究生');

commit;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值