DropDown过滤器级别明智

问题描述 投票:0回答:2

[here is image from this branch to store filter, stores of this Branch are not showing in Drop-down. Click here我要设计一种形式的下拉过滤器。我从一个下拉菜单中选择“分支”,然后只显示该商店的下拉菜单,而不显示整个商店。

PROCEDURE make_list IS
group_id recordgroup;
status number;
BEGIN
   group_id := Create_Group_From_Query('STORE','select STORE_NAME, TO_CHAR(STORE_ID) from inv_stores where BRANCH_ID = :BRANCH_ID'); 
   status := Populate_Group('STORE'); 
   Populate_List('STORE',group_id); 
exception when no_data_found then
      null;
END;
oracle dropdown oracleforms
2个回答
0
投票

我更喜欢使用值列表。 Walthrough比较简单:

  • 创建记录组(RG)查询,它将选择您需要的数据
    • 第二个RG查询应引用第一个LoV填充的项目;称为“级联”
  • 为每个RG创建值列表(LoV)
  • 将LoV附加到他们的物品(物品的属性面板中有一个属性)

我想就是这些。


0
投票

假设您有两个连续的列表项,即l_provincel_district。为了根据l_district项目的每次更改按从属地区重新填充l_province项目,l_district必须为组合框列表样式。保持这种状态,删除当前列表项(Clear_List方法)将可以工作。

因此,在WHEN-LIST-CHANGED项目下添加一个l_province触发器,其代码为:

Declare
    i            pls_integer;       
    status       pls_integer;
    group_id     RecordGroup;

Begin
    group_id := Create_Group_From_Query('g_province','Select province_code||' - '||province_name, 
                                                             province_code 
                                                        From tab_province Order By province_code');
    status := Populate_Group('g_province'); 
    Populate_List('l_province','g_province');    


    Clear_List('l_district');        

   i:=1;
   for c in ( select * from tab_district where province_code = :l_province 
               order by nlssort(district_name,'nls_sort=xturkish') ) -- replace `turkish` depending on your language. No needed for `english` case. 
   loop
     Add_List_Element( 'l_district', i , c.district_name, c.l_district_code ); 
     i:=i+1;
   end loop;

End;
© www.soinside.com 2019 - 2024. All rights reserved.