Form中实现动态List

在FORM开发中,经常会使用到下拉列表,Item的List子类,一般情况下直接把下拉列表的值写死在属性中,最近遇到一个需求,下拉列表的值需要在值集中获取,所以需要实现动态填充下拉列表的值。
1.将目标ITEM的子类信息设置为List,不需要添加列表中元素,不需要初始值。
2.新建一个Procedure,代码如下:

 

 1  procedure  basis_list(event  in   varchar2 is   
 2  -- 游标中定义List中显示的值和数据库值
 3             cursor  c_list  is
 4       select  lookup_code
 5            ,meaning
 6         from  fnd_lookup_values_vl
 7        where  lookup_type  =   ' HSS_QT_BASIS ' ;
 8            i                                         number  : =   0  ;
 9            l_value    varchar2 ( 10 );
10            l_meaning  varchar2 ( 20 );
11     begin
12             if  event  =   ' INIT '   then
13                     -- 赋值前,清空List中现有的值
14                    clear_list( ' QT_NAME.BASIS ' );
15 
16                     for  r_list  in  c_list
17                    loop
18                      l_value   : =  r_list.lookup_code;
19                      l_meaning : =  r_list.meaning;
20                      i : =  i  +   1 ;
21  --  add_list_element有4个参数依次为,Item名称,列表中值的序列,显示的值,数据库值
22                      add_list_element( ' QT_NAME.BASIS ' ,i,l_meaning,l_value);
23                     end  loop;
24                    
25             end   if ;
26  end  basis_list;

 

List中的值定义在Lookup Code中,通过游标获取然后动态填充到List中
在适当的触发器中进行初始化,在WHEN-NEW-FORM-INSTANCE中做的初始化

 

1  ...
2 
3  QT_NAME.basis_list( ' INIT ' );
4 
5  ...

 

 通过这种方法是否能实现多级联动?

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值