Form中实现动态List

转自:http://www.cnblogs.com/benio/archive/2010/11/28/1890343.html

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

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 procedure basis_list(event in varchar2) is  
--游标中定义List中显示的值和数据库值
          cursor c_list is
    select lookup_code
          ,meaning
      from fnd_lookup_values_vl
     where lookup_type = 'HSS_QT_BASIS';
          i                                        number := 0 ;
          l_value   varchar2(10);
          l_meaning varchar2(20);
  begin
          if event = 'INIT' then
                  --赋值前,清空List中现有的值
                  clear_list('QT_NAME.BASIS');

                  for r_list in c_list
                  loop
                    l_value   := r_list.lookup_code;
                    l_meaning := r_list.meaning;
                    i := i + 1;
-- add_list_element有4个参数依次为,Item名称,列表中值的序列,显示的值,数据库值
                    add_list_element('QT_NAME.BASIS',i,l_meaning,l_value);
                  end loop;
                  
          end if;
end basis_list;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值