1. Create a Record Group(RG)
2. Create RG SQL Query asDECLARE result Number; rec_id RecordGroup; rwcnt NUMBER; p_lovname VARCHAR2(40); p_rg_name VARCHAR2(40); lc_query VARCHAR2(1000); BEGIN p_lovname := <LOV_name> p_rg_name := <RG_Name> lc_query:= 'SELECT item_name ,desc ,Attr1 ,Attr2 ,Attr3 from <Your tab name>; rec_id := find_Group(p_rg_name ); result := POPULATE_GROUP_WITH_QUERY(rec_id, lc_query); rwcnt := Get_Group_Row_Count(rec_id); SET_LOV_PROPERTY(p_lovname, GROUP_NAME, rec_id); END;
Take serial number behavior as example,For different Txn Type,Then serial number LOV will dispaly different values,so we need to bind different record groups.
Sample Code like:
File:INVSLENT.pld
PROCEDURE set_rec_group ( ... ... IF (trx_act = 1) THEN SET_LOV_PROPERTY (llov_name, group_name, 'inv_serial1'); SET_LOV_PROPERTY (to_serial_lov_name, group_name, 'inv_serial1'); ELSIF (trx_act = 2) THEN SET_LOV_PROPERTY (llov_name, group_name, 'inv_serial2'); SET_LOV_PROPERTY (to_serial_lov_name, group_name, 'inv_serial2'); ELSIF (trx_act = 3) THEN SET_LOV_PROPERTY (llov_name, group_name, 'inv_serial3'); SET_LOV_PROPERTY (to_serial_lov_name, group_name, 'inv_serial3'); ELSIF (trx_act = 4) THEN SET_LOV_PROPERTY (llov_name, group_name, 'inv_serial4'); SET_LOV_PROPERTY (to_serial_lov_name, group_name, 'inv_serial4'); ELSIF (trx_act = 5) THEN SET_LOV_PROPERTY (llov_name, group_name, 'inv_serial5'); SET_LOV_PROPERTY (to_serial_lov_name, group_name, 'inv_serial5'); ......