Form中动态创建PopList

在Oracle EBS二次开发中经常会使用下拉列表,下拉列表一般是写死的,实际上也是可以使用Record Group进行动态设置,实现的步骤如下:

 

 

1,首先定义一个Record Group

假设为TEST_REC_GP,SQL如下:

SELECT cr.general_name lookup_code, cr.medicament_category value FROM cux_catalog_53_rules cr

 

必须注意一点,SQL必须是两列,并且类型都是VARCHAR2,第一列作为显示的列,第二列作为后台的值。如果列和值都一样,那么就用别名查询两次就好了,类似

 

2,LIST的设置

然后需要注意一点,需要关联Record Group的下拉列表中,其中至少一个值必须是和检索出来的值是一样的,上例的SQL查询结果如下

clip_image002[4]

那么下拉列表中至少有一条和查询结果一样

Form中动态创建PopList_第1张图片

 

3,触发器代码

在List所在的块的WHEN-NEW-BLOCK-INSTANCE触发器中,写如下代码

Declare i number; begin i := populate_group('TEST_REC_GP'); if i = 0 then clear_list('CATALOG_RULES.RULE_TYPES'); populate_list('CATALOG_RULES.RULE_TYPES','TEST_REC_GP'); end if; end;

你可能感兴趣的:(oracle,sql,list,Types)