Creating Dynamic LOV in Oracle D2k Forms

本文详细介绍了如何在Oracle Forms中创建动态Lov,并通过逐步指南演示了整个过程。包括创建单个Lov、记录组、参数及设置Lov属性等关键步骤。
Dynamic  Lov  is a good idea for the form where too many Lov requirement is there with different record groups. In this blog you will learn create dynamic Lov step by step.

See also:

http://www.foxinfotech.in/2015/01/populate-list-with-recordgroup-in-oracle-forms.html
http://www.foxinfotech.in/2013/04/adding-value-combolist-runtime-oforms.html
http://www.foxinfotech.in/2013/03/when-validate-item-trigger-oracle-forms.html
http://www.foxinfotech.in/2012/11/creating-list-item-in-oracle-d2k_9366.html

Step-1 Create a Single Lov (you can give any name)
1.   Click on form builder navigator Lovs node and then click on Add button. Select create lov manually option from the window.
Step-2 Create Record Group (you can give any name)
2.   Click on form builder navigator 
Record Groups  and then click on Add button and set the  properties  and query as displayed in below image.

lovgroup.JPG

Step-3 Create Parameters
3. Click on Parameter node and then click on Add button and create 4 Char type Parameters as displayed below:

lovparam.JPG 
 
Step-4 Set Lov Properties
4.   Set the lov properties as show below:
 
lov.JPG

Step-5 Set Lov Column Mapping Properties 
5.   Set the Lov's Column Mapping Properties with the parameters as show below:

lovcol.JPG

Step-6 Create a procedure to populate lov  


PROCEDURE call_dynlov (IGroupName in Varchar2)
IS
    blov boolean;
begin
    :parameter.lovcol1 := null;
    :parameter.lovcol2 := null;
    :parameter.lovcol3 := Null;
    :parameter.lovcol4 := Null;
    set_lov_property('dynlov', group_name, IgroupName);
    set_lov_property('dynlov', position, (get_application_property(display_width)-600)/2, 
                                         (get_application_property(display_height)-250)/2-50);
    blov := show_lov('dynlov');
    if not blov then
             message('Value not choosen.');
    end if;
end;

Finally Call to this Lov with the following code:

DECLARE
rg_name VARCHAR2(40) := 'YrGroup';
rg_id RecordGroup;
errcode NUMBER; 
BEGIN
rg_id := Find_Group( rg_name ); 
--- Create group with 4 column because we already set the lov property for 4 cols, these 3 and 4 cols will --- be  not mapped to any fields
if  not id_null(rg_id) then
   delete_group(rg_id); 
end if; 
rg_id :=
Create_Group_From_Query( rg_name, 'select main_menu_name col1, sub_menu_name col2, ''3'' col3, ''4'' col4 from
fox_main_menu a, fox_sub_menu b 
where a.main_menu_code = b.main_menu_code order by 1,2');
--- call the procedure
call_dynlov(rg_name);
            if :parameter.lovcol1 is not null then
                 --- if lov selected and parameter 1 value is not null then map to field
                 :fox_user_prog.mmn := :parameter.lovcol1;
                 :Fox_user_prog.smn := :parameter.lovcol2;
            end if;


END; 

See also:
Oracle Forms Recipes
Like us to get notifications for free source code in future, thanks.

Dynamic LOV in Oracle Forms

Reviewed by Joseph on

Feb 10

Rating: 
5

转载于:https://www.cnblogs.com/quanweiru/p/6220159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值