zoukankan      html  css  js  c++  java
  • Creating Dynamic LOV in Oracle D2k Forms

    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.


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

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

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


    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
  • 相关阅读:
    linux中编写同步文件的脚本
    SSH实现免密登录
    关于ISO 15765-2的解读
    设置Tera Term
    串口通信有极限速度
    三相永磁电机电流采样
    eclipse中F3快捷键无法跳转到定义的解决方法
    电脑和航模杂志和电子开发网站汇总
    MC9S08DZ60经典单片机
    STM32的SWD调试
  • 原文地址:https://www.cnblogs.com/quanweiru/p/6220159.html
Copyright © 2011-2022 走看看