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: