Record groups

Created a record group programmtically. I am now trying to use the DELETE_GROUP_ROW. I have in debug to check that the correct
row number that I select is being picked up. When I do the delete row, I then do the show_lov. My row has not been deleted. The first
time I run my form, my query works. Thereafter selecting from the LOV does not work, problem with the delete_group_row..
Is there something I need to do before invoking show_lov. Please help.
KP

I am having the same problem. I need to update a value in the record group and I need to delete rows and I show that I am able to update the values and I see it via a debug statement, but when I show the LOV, it shows not updated.
Did you find a solution?
Similarily I need to delete.

Similar Messages

  • HOW TO create a temp table or a record group at run time

    i have a a tabular form and i dont want to allow the user entering duplicate
    records while he is in insert mode and the inserted records are new and not exsisting in the database.
    so i want to know how to create a temp table or a record group at run time to hold the inserted valuse and compare if they are exsiting in previous rows or no.
    please help!

    As was stated above, there are better ways to do it. But if you still wish to create a temporary block to hold the inserted records, then you can do this:
    Create a non-database block with items that have the same data types as the database table. When the user creates a new record, insert the record in the non-database block. Then, before the commit, compare the records in the non-database block with those in the database block, one at a time, item by item. If the record is not a duplicate, copy the record to the database block. Commit the records, and delete the records in the non-database block.

  • Dynamically  populate  a  record  group  on  the  fly uisng LOV

    Hi,
    I want to create dynamically populate a record group on the fly uisng LOV.
    1. This is how the RG_BANKNAME Record Group object look like
    Object : Record Group
    Name : RG_BANKNAME
    Record Group Query : SELECT NAME, SHORT_NAME FROM C_BANKS
    2. I create the Push Button and when user click it will popup the LOV.
    DECLARE
         rg_id RecordGroup;
         errcode NUMBER;
         status BOOLEAN;
    BEGIN
         rg_id := Find_Group('RG_BANKNAME');
         IF Id_Null(rg_id) THEN
              Message('No such group: ',ACKNOWLEDGE);
              RAISE Form_Trigger_Failure;
         ELSE
              errcode :=POPULATE_GROUP(rg_id);     
              SET_LOV_PROPERTY('LV_NAME', TITLE, 'My Own LOV');
              SET_LOV_PROPERTY('LV_NAME', GROUP_NAME, rg_id);
              SET_LOV_COLUMN_PROPERTY('LV_NAME', 1 ,Title, 'NAME');
              SET_LOV_COLUMN_PROPERTY('LV_NAME', 1 ,Width, 150);     
              SET_LOV_COLUMN_PROPERTY('LV_NAME', 2 ,Title, 'SHORT NAME');
              SET_LOV_COLUMN_PROPERTY('LV_NAME', 2 ,Width, 100);     
              status := Show_LOV('LV_NAME',10,20);
              IF NOT status THEN
                   Message('You have not selected a value.');
                   Bell;
              END IF;
         END IF;
    END;
    My question is do I need to create the LOV Object name call 'LV_NAME'? since I don't have this
    create on my design times, because I thought it can be done dynamically on the fly.
    The problem is compliant that the Lov Id is not valid.
    Thanks
    David
    Edited by: user445990 on May 24, 2011 9:19 PM

    Hello,
    You request is not clear. Do you need to display the LOV or not ? In other words, what is the goal of your record group ?
    Francois

  • Strange Problem in dynamically list population with record group

    Hello Room,
    I am dynamically populating a single list with 2 record groups. I am having a strange problem. All the code are written in 2 seperate buttons. The code of every button is given below.
    Button 1 code:-
    DECLARE
    rg_reports RECORDGROUP;
    rg_name VARCHAR2(40) := 'REPORTS';
    vTemp NUMBER;
    BEGIN
    -- Pls make sure Group doesn't already exist
    rg_reports := FIND_GROUP(rg_name);
    -- If it doesn't exist then create it and add ur query to it
    IF Id_Null (rg_reports) THEN
    rg_reports:=CREATE_GROUP_FROM_QUERY(rg_name , 'SELECT companyname,to_char(co) from companymaster order by companyname');
    end if;
    --Populate the Record Group
    vTemp:=POPULATE_GROUP(rg_reports);
    POPULATE_LIST('REPORTS.EXAMPLELIST', rg_name);
    Delete_Group( rg_reports );
    END;
    Button 2 Code:-
    DECLARE
    rg_reports RECORDGROUP;
    rg_name VARCHAR2(40) := 'REPORTS';
    vTemp NUMBER;
    BEGIN
    -- Pls make sure Group doesn't already exist
    rg_reports := FIND_GROUP(rg_name);
    -- If it doesn't exist then create it and add ur query to it
    IF Id_Null (rg_reports) THEN
    rg_reports:=CREATE_GROUP_FROM_QUERY(rg_name , 'SELECT accountname,to_char(co) from accountmaster order by accountname');
    end if;
    --Populate the Record Group
    vTemp:=POPULATE_GROUP(rg_reports);
    POPULATE_LIST('REPORTS.EXAMPLELIST', rg_name);
    Delete_Group( rg_reports );
    END;
    The code is same here only the sql is different in these 2 buttons. Now the problem point.
    when i press button 1, I get the list populated ok. when i try to click on the list item and keep the button pressed the list gets scrolled properly.
    when i press button 2 after that i get account names well populated in the same list item as well, but this time, when i keep the button pressed the list does not scroll below as in button 1. It does not even allow to select different item from the list of button 2 code.
    I tried to clear cache, cookies, exit browser everything and try to run the button 2 first, but still the problem in button 2 code.
    Following are my system details.
    windows 7 professional edition.
    Oracle database 11g on windows 7
    Oracle forms 10g patchset 10.1.2.0.2 on windows 7
    Browser Netscape Navigator with oracle jinitiator 1.3.1.22
    But this form is run by a client side html file where oracle forms 10g is not installed on windows xp. html file is just referring server url to run the module. The file is run on Netscape navigator browser with oracle jinitiator 1.3.1.22
    My question is that is this a bug ? if button 1 gets the list item scrolled, why is the problem with button 2 even though i press it first. Here I am deleting the record group also. after the code is over. Initially I thought this may be the character length problem so I took the maximum character length for that list item as given by the 2 columns in database.
    Why is the list scrolling not happening in button 2 but in button 1 with same codes on both ?
    Anybody please help me.

    The problem is the second query. I would guess that the TO_CHAR(co) is not unique for each account, but is the same for the accounts. And as the second item in the select-list is the listitems values, all your listitem-entries have the same value. therefore, of you select any entry, the list will always go the the first entry again.
    Adjust your query.

  • Dynamic creation of record group

    Hi
    Can anyone suggest me with an example about how to create a dynamic record group and attach it to a lov ?
    Regards

    Hi,
    Thanks for your reply
    DECLARE
    rg_name VARCHAR2(40) := 'COMPANY_RANGE';
    rg_id RecordGroup;
    errcode NUMBER;
    lov_id LOV;
    BEGIN
    :System.Message_Level := 0;
    rg_id := Find_Group( rg_name );
    IF Id_Null(rg_id) THEN
    rg_id := Create_Group_From_Query( rg_name||'_TMP', 'select COMPANIES_ID from SYSMODULE.COMPANIES where 1=2');
    Set_LOV_Property(lov_id,GROUP_NAME,rg_name||'_TMP');
    rg_id := Create_Group_From_Query( rg_name, 'select COMPANIES_ID from SYSMODULE.COMPANIES');
    IF Id_Null(rg_id) THEN
    Message(' Create group failed');
    Message(' ',no_acknowledge);
    Raise Form_trigger_failure;
    End if;
    END IF;
    errcode := Populate_Group( rg_id );
    lov_id := Find_LOV('LOV7');
    Set_LOV_Property(lov_id,GROUP_NAME,rg_name);
    END;
    The above code, I have placed in when new form instance .. still the same error
    when new block instance --- same error
    in push button --- same error
    FRM-30048: Unable to find record group .
    LOV LOV7
    Form: DYNAMIC_LOV_CREATION
    FRM-30085: Unable to adjust form for output.
    Where i am going wrong ..
    Regards

  • Creation of Record Group and LOV at run time

    Hello All,
    I have been stuck by this...I have two text items on which LOVs have been placed.Selection of one depends on selection of other.I can dynamically create a record group but how to create a LOV dynamically to populate it with the dynamic record group been created.
    For more visualization consider that filtering of data takes place in one lOV based on the other LOV been provided.
    Revert ASAP...
    Thanks and Regards,
    Kapil Uppal

    I don't think you can create a LOV dynamically, but you can repopulate a pre-existing one, which should allow you to achieve the same goal.

  • Dynamically creating a Record Group based on Previously entered Record Grou

    Forms [32 Bit] Version 10.1.2.3.0 (Production)
    Hi,
    I know how to dynamically create a record group based on a query and putting the code in When new form instance.
    My query is. I have a form which has multiple Record Groups and the user wants to dynamically create subsequent groups based on previous groups.
    For example
    I have a record group with selects a Location,
    when the user selects the Location from a list of values
    the 2nd record group called 'Cost Centres' will have to filter out only those with the locations selected above.
    How can I populate the 2nd record group at run-time when I do not know what site the user will select?
    If I simply populate in when new form instance as in location and just select everything, the list of values populates.
    CC field is a LIST ITEM and the list style is a POP LIST, it is not required.
    I have put the code in the Location field in the when-list-changed trigger.
    I am getting this error:
    frm-41337: cannot populate the list from the record group
    here is the code:
    DECLARE
    v_recsql Varchar2(1000); -- The SQL for creating the Record Group.
    v_recgrp RecordGroup; -- Record Group
    v_status Number; -- Return Value of Populate_Group function.
    c_where VARCHAR2(1000);
    BEGIN
         IF :location = '1' THEN
              c_where := ' substr(cost_centre,1,2) in (''01'',''02'')';
         ELSIF :location  = '2' THEN
              c_where := ' substr(cost_centre,1,2) in (''02'',''03'')';
         ELSIF :location   = '3' THEN
              c_where := ' substr(cost_centre,1,2) in (''01'',''11'',''07'')';
                   ELSE
              c_where :=  ' 1=1'; --EVERYTHING
         END IF;
    v_recsql := 'SELECT cost_centre, description  FROM   cost_centres  where '||c_where;
    -- Create the Record Group
    v_recgrp := CREATE_GROUP_FROM_QUERY('v_recgrp', v_recsql);
    IF NOT ID_NULL(v_recgrp)
    THEN -- No Error, record group has been successfully created.
    -- Populate Record Group
    v_status := POPULATE_GROUP('v_recgrp');
    IF v_status = 0
    THEN -- No Error. Record Group has been Populated.
    POPULATE_LIST('block.CC', 'v_recgrp');
    END IF; -- IF v_status = 0
    -- Delete the Record Group as it is no longer needed.
    DELETE_GROUP('v_recgrp');
    END IF; -- IF NOT ID_NULL(v_recgrp)
    END;thanks for your assistance.

    Hi,
    Once record status gets change for block you can not populate/repopulate the list item. Keep those list items as non-database item with different names and create different items as database orignal items. Than assign the values in WHEN-LIST-CHANGE trigger to the actual database items.
    -Ammad

  • What are record groups for?

    hi,
    Could anybody tell me what is the main purpose of creating record groups whith statements like: create_group_from_query, populate_group, ...
    Every time we want to access any records we can use blocks which are based on tables or views which are in Oracle Data Base. So what is the reason of creating record groups?
    please explain my that issue:)
    Grzegorz

    hi grzegorz,
    Record Group is one which is used with LOVs and List Items.
    for the use of LOV & List items u must have to define record group through whis the List items or LOV is belogs to that group.
    A record group built from a query can store records from database tables much like a database view, with the added advantage that the record group is local to Form Builder, rather than existing in the database.
    To know more about record group, form builder's help is good way,
    Regards
    Chandan

  • How to get all the Record Groups?

    in the form i had created a record group. let us say they are:
      RG_APPR_TYPE_CDE_LIST
      RG_DRV_APPR_TYPE_CDE_LIST
      RG_PROJ_MODE_CDE_LIST
      RG_DRV_PROJ_MODE_CDE_LIST
      RG_PROJ_STATUS_CDE_LIST
      RG_DRV_PROJ_STATUS_CDE_LIST
      RG_ORG_SUB_TYPE_CDE_LIST
      RG_DRV_ORG_SUB_TYPE_CDE_LIST
      RG_REGION_NUM_LIST
      RG_DRV_REGION_NUM_LISTwhen the form hits on the clear button it invoke the CLEAR_FORM. i want to get all the record groups dynmically so i won't have to explicitly call the
      Delete_Group('RG_APPR_TYPE_CDE_LIST');
      Delete_Group('RG_DRV_APPR_TYPE_CDE_LIST');
      Delete_Group('RG_PROJ_MODE_CDE_LIST');
      ...one by one. is there any other workaround? i appreciate any help on this. thanks.

    is there any other workaroundNo.

  • How to populate a poplist through a record group?

    Dear People,
    I use forms along with 10g.I have create a record group RG9 with query SELECT DNAME FROM DEPT;.now how to populate it to a list item?.i tried it using a the following code in When_new_form_instance trigger.The code is as follows,
    declare
    a number;
    begin
         a:=populate_group('RG9');
                   add_list_element('block3.list6',1,a,a);
    end;It doesnt throw me any error.but unable to populate data into the list. pls do help me to make corrections in the above code.
    With Regards
    VIDS

    SELECT DNAME,TO_CHAR(DEPTNO) FROM DEPT;This is the format of the query required to populate a list item,
    where the first column value is the one that appears in the list of values
    and the second column value is the one that will get saved in the database or that will be the value of the list item.
    Just try using follwoing in WHEN-VALIDATE-ITEM trigger for list6
    message (:block3.list6)
    The message will be deptno and not the dname
    now values has been populated in the list.but can u explain me whats wrong with my previous query?
    SELECT DNAME FROM DEPT;why dint it help me to pop values in the list?.This query has just one column not as required.
    Hope its clear.

  • Sql expressions in Forms 4.5 Record Groups

    I have a record group that was asked to change, and when I change it I get an 'Unhandled exception error in icrg 102' and then a Frm-12001. I've tracked it down to a view that uses a function call to format a address line. If I put the function call in the Sql statement in the record group forms will not except the statment. I believe that the Record Groups were created in Forms 4.0.

    IF v_value = 'Y'
    THEN
    lvl$std.copy_number(0,'BLK1.V_ITEM_NAME1');
    ND IF;
    I written in post-query.What does
    lvl$std.copy_number(0,'BLK1.V_ITEM_NAME1');do that
    :blk1.v_item_name1 := 0;doesn't?

  • Using Global variable in Record Group

    Hi,
    I have a requirement where in I need to pull a column name from a table and then use that value in the select statement of a record group. I have tried using global variables but it is not working. Here is the record group I would like to use.
    RG_DOMAIN is based on LOV_DOMAIN
    SELECT :GLOBAL.DOMAIN_COLUMN_NAME, DESCRIPTION FROM
    DM_T_DOMAIN_VALUES
    WHERE DOMAIN_NAME := BLOCK.ATTRIBUTE;
    In the Key-Listval I have a select statement in which does this :
    SELECT DOMAIN_COLUMN
    INTO :GLOBAL.DOMAIN_COLUMN_NAME
    FROM DM_T_DOMAIN_RULES WHERE DOMAIN_NAME = :BLOCK.ATTRIBUTE;
    SHOW_LOV('LOV_DOMAIN');
    The problem is I am not getting the value I am just getting the Domain_column name. For example for Domain_name 'CALC_TYP' the Domain_column is COLUMN_10 and I just see COLUMN_10 my LOV when I want to see the value of COLUMN_10 from the DM_T_DOMAIN_VALUES table.
    I tried using Name_in and Copy but not working. Can anyone suggest a solution?
    Thanks

    Francois ,
    I tried this but I am getting error saying record group does not exist. Can you tell me what should I go in Populate_group... and show_lov..maybe I am doing something wrong?
    Declare
    LC$Req Varchar2(512) ;
    Begin
    LC$Req := 'SELECT ' || :GLOBAL.DOMAIN_COLUMN_NAME || ' FROM ....' ;
    Create_Group_From_Query( rg_group, LC$Req ) ;
    Populate_group(RG_DOMAIN); ?? --- is this correct?
    Show_Lov(LOV_DOMAIN) ; -- and is this correct?
    End;

  • Can't use function in creating record group

    Gurus,
    This question is for developers. Is this true one can't use
    function in creating record group. I am using form5.
    thanks,
    ZW

    I figured out the issue... they changed the way Group Calls are limited.
    Here's a full explaination - and a suggestion for a behavior fix: http://community.skype.com/t5/Windows-desktop-client/Please-Fix-Group-Video-Voice-Calling-Limit-Beha...
    Long story short, you can't do a video calling at all if the group has more than 10 people in it total (including you).
    Also, you can't do voice calling in groups with more than 25 people.
    Text chats are limited to 300 people (or so I've been told by Skype employees). I've been in a chat with over 100 participants though so I know it goes that high at least.

  • Record Group In Insert Statement

    Hi All,
    I am using Oracle 9i Ver 2 & Developer 6i on Windows platform. I want to ask, can we pass a Form's Record Group object to a select statement as a whole. I mean something like this,
    Suppose emp_rg is a Forms RecordGroup which has all the columns of scott.emp table & it contains 10 rows. So, can I write like this:
    INSERT INTO emp VALUES(emp_rg);
    Or anything like this, if this is wrong.
    Or, I need to create a PL/SQL record object & then I can pass. Pls clarify.
    Thanks in Advance,
    Inderjeet Singh

    Yes I often have trouble deciding whether to use a record group or a pl/sql table. They both have their own advantages in different situations. Manipulating record groups programatically requires rather more cumbersome syntax, but they do come with some handy built-ins (such as populate_group), and they also integrate with LOVs, Trees etc.
    If you want the pl/sql table to be available throughout the form you will need to declare it in a package spec.
    Even with a pl/sql table, you will need to write code to feed it into your insert statement. I reckon a global temporary table might allow the most straightforward syntax.

  • How to create Static Record group in Oracle Forms??

    Dear All,
    I have the following values V1,V2 to be placed in my list item field during DML operations.
    I have an example to create the record group based on the table; whereas i have never tried for static value creation.
    Could you please guide me how can i acheive this.?
    Thanks ....
    Regards,
    Sunil.G

    Thanks dhivya for your reply.
    Actually what happens is; when i use the same methodology as you mentioned, it is asking me to set the Initial value.
    Whereas in my applications; user has to manually select any of the values i.e eithe V1 or V2 for the first time.
    Moreover i have found the query:-
    I have created a static record group RG_VERSIONS i.e creating a new record group with the static values mentioning the "Column names " as "Version_label" which i have given the column values as "V1" and "V2" and then another column name as "Version_value" with the column values as "V1" and "V2".
    Then i used the below query in the WHEN-NEW-FORM-INSTANCE trigger:-
    PROCEDURE p_when_new_form_instance
    IS
    l_rg_id recordgroup;
    l_item_id item;
    BEGIN
    --Populating value for  Version Type based on static record group
    l_rg_id := FIND_GROUP ('RG_VERSION');
    IF NOT ID_NULL (l_rg_id)
    THEN
    l_item_id := FIND_ITEM ('BLOCKNAME.COLUMN_NAME');
    POPULATE_LIST (l_item_id, l_rg_id);
    END IF;
    END p_when_new_form_instance;
    Then it was working fine.
    Thanks for your time.
    Regards,
    Sunil.G
    Edited by: Sunil G on Jun 27, 2010 6:00 AM

  • Setting the update property of the row of a records group to false IN ORACL

    hello
    i have to populate a records group with the previous records user had entered as well as enable the user to enter new record in that RECORD GROUP IN ORACLE 6I FORMS.
    I want that previous record that user had entered caN NOT BE EDIT .USER CAN SEE THESE RECORDS ONLY AND ACCORDINGLY ADD NEW RECORDS IN SAME RECORD GROUP.
    PL TELL ME HOW TO DO THIS.
    THANKS & REGARDS
    VISHAL AGRAWAL

    I also try for which u mentioned earlier but it is like selectting individual records to display in my tablular record group.
    we are using following code for fetching data and displaying it into records group and also making all fetched record disabled.
    code is given below :
    PROCEDURE fetchdata(mf char) IS
    cursor c1 is select dateofmtrl,rm1,rm2,rm3 from rawmtrl_graph
    where
    dateofmtrl between TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE, 0),'YYYYMM'),'YYYYMM') and
    TO_DATE(TO_CHAR(ADD_MONTHS(SYSDATE, + 1),'YYYYMM'),'YYYYMM') - 1 and
    mtrl_flag = mf
    order by dateofmtrl ;
    r1 c1%rowtype;
    lstrec number;
    cnt number :=1;
    BEGIN
    go_block('dtl');
         last_record;
    lstrec:=:system.cursor_record;
    for ctr in 1..lstrec
    loop
         delete_record;
    end loop;     
    first_record;
         open c1;
         loop
              fetch c1 into r1;
              exit when c1%notfound;
              if :dtl.date1 is not null then
                   next_record;
                   end if;
                   :dtl.date1:=r1.dateofmtrl;
                        :dtl.opc:=r1.rm1;
                             :dtl.ppc:=r1.rm1;
                                  :dtl.total:=r1.rm1;          
         end loop;
         close c1;
    last_record;
    lstrec:=:system.cursor_record;
    first_record;
    for ctr in 1..lstrec
    loop
    SET_record_PROPERTY(:system.cursor_record,'dtl',ENABLED,PROPERTY_FALSE);
    SET_RECORD_PROPERTY(:SYSTEM.CURSOR_RECORD, 'dtl',UPDATE_ALLOWED,PROPERTY_FALSE);
    SET_RECORD_PROPERTY(:SYSTEM.CURSOR_RECORD, 'dtl',insert_allowed,PROPERTY_FALSE)
    next_record;
    end loop;     
         first_record;
    END;
    But it is not working...
    givinng the erros that no such property for set_record_property
    pl tell me how to modify the code to disable some selected raws in a record group............

Maybe you are looking for