阿木伯 著 |
|
FORM中,怎样创建动态下拉列表List? |
|
- 软件环境:
1、服务器端:Windows NT4.0+ORACLE 8.0.4
ORACLE安装路径为:C:\ORANT
2、客户端:Windows 98、Developer/2000客户端安装(版本2.1)
- 实现方法:
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;
|
【最后更新:】 |
|