Two Manual Tabular forms in a same page

Since i have to create two tabular forms in a same page, i created tabular forms manually.
Both the forms are working fine if the columns are not defined as conditional display.
Based on item value set by user, few fields should be either displayed as text field (editable) or read only (display).
I created two columns for a same field one as editable another one as non editable.
Based on item value any one of the column will be displayed.
Since the manual tabular form update process is using 'apex_application.g_f02', if any one of the column is not visible,
multiple row update is failing.
can any one please help me or suggest me to solve this.
Edited by: Ravi on Apr 19, 2012 9:02 AM

I'm guessing you have a page item that is used to control display of the columns as display only or editable.
If that's true and the page item tells you to display the editable column, then you end up with say a g_f02 and a g_fo3, where you otherwise might only have a g_fo2.
Use the value of the page item in your update process to control which tabular form element to use.

Similar Messages

  • Can we have Manual Form and Tabular form in the same page..

    Hi,
    Is it possible to create a form manually with Save/Apply Change button and another Tabular form using wizard on the same page such that -
    if we click the save button on the manulaly created form , it should save the data present in manual form as well as Tabular form...
    Edited by: Apex_Noob on Mar 21, 2009 5:58 AM

    Hi Dan,
    My table structure is :
    Process
    process_id ( number primary key )
    process_owner ( number which represent the user who is responsible for the process)
    category_id ( number )
    focus_area ( number )
    frequency ( number )
    process_description ( varchar2 )
    Process Region
    process_id ( number )
    region_id ( number )
    Process_website
    id (number primary key)
    process_id ( number)
    web_address ( varcahr2 )
    Above is the struct of part of my DB.
    At present my manual form does the following :-
    When users click on SAVE button , it run PAGE PROCESS , ADD_PROCESS
    In ADD_PROCESS ,
    I have following logic to insert into process table
    Select seq.next_val into temp_variable from dual; - This is the process_id
    insert into process values ( temp_variable , :p2_process_owner , :p2_cateogory , .... )
    to insert into region i used the following logic ( Region is displyed as check box :p2_region north=1 , south=2 ,east = 3 and west = 4)
    l_vc_arr2 := APEX_UTIL.STRING_TO_TABLE(:P2_REGION);
        FOR z IN 1..l_vc_arr2.count LOOP
           INSERT INTO "REGION" VALUES
           ( temp_variable ,
             l_vc_arr2(z));
        END LOOP;
    END;Now as I told, I want to have three text field where user will enter web_address and it should be added to process_website table
    Thanks a ton for all your help
    Regards,
    Shijesh
    Edited by: Apex_Noob on Mar 21, 2009 10:07 AM

  • 2 manually created tabular form on the same page based on 2 different table

    Hi, I followed the how to document on manually creating tabular form, including one extra row.
    The first form I created works fine, but when I attempt to create the second tabular form based on a different table on the same page, I get the following error message when I try to create the query:
    ORA-04045: errors during recompilation/revalidation of PUBLIC.X ORA-00980: synonym translation is no longer valid
    The logic behind both tabular forms I am using is the same, except that for the second query, I use 100 instead of 1, 300 instead of 3, etc:
    select htmldb_item.hidden(1,empno) empno,
    ename,
    htmldb_item.select_list_from_query(3,job,'select distinct job, job from emp') job,
    htmldb_item.popupkey_from_query(4,mgr,'select ename, empno from emp',10) mgr,
    wwv_flow_item.date_popup(6,null,hiredate) hiredate,
    htmldb_item.text(7,sal,10) sal,
    htmldb_item.text(8,comm,10) comm,
    htmldb_item.select_list_from_query(9,deptno,'select dname, deptno from dept') deptno
    from emp
    Can anybody help?
    Thanks a lot

    Hi,
    If by "100 instead of 1" you mean the column numbers, then this won't work as you can only have a maximum of 50.
    Andy

  • Two tabular form on the same page

    Hi,
    There is a tutorial or a standard way to build two tabular form on same page?
    thanks in advance
    lukx

    Hi,
    You can see this example also.
    http://htmldb.oracle.com/pls/otn/f?p=31517:163:1033737280330848:::RP,::
    Thanks
    Tauceef

  • How can I use two tabular forms on the same page.

    I have create one tabular form in page and try to create second tabular form so
    it gives below error.
    1 error has occurred Updatable SQL Query already exists on page XXXXX.
    You can only add one updatable SQL query per page. Select a different page.

    I can get this to work but the page is submitted, either when I use a button with URL link or from a link on a display only text field.
    Is this how it is supposed to work? I thought it was supposed to work just on the browser so it is fast.
    IGNORE THIS!
    =============================
    I resolved it easily by modifying the URL from f?p=blah blah to #LINK_NAME
    Message was edited by:
    user530800

  • Checksum error in Manual Tabular Form

    Hi everyone,
    I have created 2 (manual tabular forms) on a same page but i am getting checksum error for one of the tabular form.
    Here is my code:
    1 st Tabular Form:
    select
    x.del,
    x.ECGEXST_ID,
    x.LEAD_CD,
    x.ST_ID,
    x.ENTERED_DTS,
    X.ENTERED_BY_NM,
    X.UPDATED_DTS,
    X.UPDATED_BY_NM,
    x.cks
    from (
    select
    htmldb_item.checkbox(1,ECGEXST_ID) del,
    htmldb_item.hidden(2,ECGEXST_ID) ECGEXST_ID,
    htmldb_item.select_list_from_query (3, LEAD_CD,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
    htmldb_item.select_list_from_query(5,ST_ID,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 17',25) ST_ID,
    wwv_flow_item.display_and_save(6,to_char(ENTERED_DTS,'MM/DD/YYYY')) ENTERED_DTS,
    au.LAST_NM || ', ' || au.FIRST_NM ENTERED_BY_NM,
    wwv_flow_item.display_and_save(7,to_char(UPDATED_DTS,'MM/DD/YYYY')) UPDATED_DTS,
    au1.LAST_NM || ', ' || au1.FIRST_NM UPDATED_BY_NM,
    htmldb_item.md5_checksum(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    from ECGEXST,
    app_user au,app_user au1 where au.MSPR_ID(+) = ECGEXST.ENTERED_BY_MSPR_ID and au1.MSPR_ID(+) = ECGEXST.UPDATED_BY_MSPR_ID
    and ECGEXDT_ID = :P65_ECGEXDT_ID
    union all
    select
    htmldb_item.checkbox(1,null) del,
    htmldb_item.hidden(2,null) ECGEXST_ID,
    htmldb_item.select_list_from_query (3,null,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
    htmldb_item.select_list_from_query(5,null,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 17',25) ST_ID,
    wwv_flow_item.display_and_save(6,null) ENTERED_DTS,
    null ENTERED_BY_NM,
    wwv_flow_item.display_and_save(7,null) UPDATED_DTS,
    null UPDATED_BY_NM,
    htmldb_item.md5_checksum(null,null,null,null,null) cks
    from dual) x
    UPDATE PROCESS:
    declare
    l_cks wwv_flow_global.vc_arr2;
    j pls_integer := 1;
    val1 varchar2(100);
    val2 varchar2(100);
    begin
    -- Get original MD5 checksum
    select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    BULK COLLECT INTO
    l_cks
    from ECGEXST where ECGEXDT_ID = :P65_ECGEXDT_ID;
    -- Compare the original checksum, l_cks,
    -- with submitted checksum, htmldb_application.g_fcs.
    -- If they are different, raise an error.
    for i in 1..l_cks.count
    loop
    if htmldb_application.g_fcs(i) != l_cks(i) then
    rollback;
    raise_application_error(
              -20001,
         'Current version of data in database has changed '||
              'since user initiated update process.');
    -- return;
    end if;
    end loop;
    -- update ECGRSTST
    for i in 1..htmldb_application.g_f02.count
    loop
    if htmldb_application.g_f02(i) is not null then
    update ECGEXST
    set
    ECGEXDT_ID = :P65_ECGEXDT_ID,
    LEAD_CD = replace(htmldb_application.g_f03(i),'%'||'null%',NULL),
    ST_ID = replace(htmldb_application.g_f05(i),'%'||'null%',NULL)
    where ECGEXST_ID = htmldb_application.g_f02(i);
    else
    if htmldb_application.g_f03(i) is not null then
    insert into ECGEXST
    (ECGEXST_ID ,
    ECGEXDT_ID,
    LEAD_CD,
    ST_ID)
    values
    (ECGEXST_SEQ.nextval,
    :P65_ECGEXDT_ID,
    replace(htmldb_application.g_f03(i),'%'||'null%',NULL),
    replace(htmldb_application.g_f05(i),'%'||'null%',NULL));
    end if;
    end if;
    end loop;
    end;
    The first tabular form is working fine.But for the second tabular form i am getting the checksum error.I have created a test table and checked the checksum values.The checksum values are changing.
    Here is the code of my 2nd tabularform:
    select
    x.del,
    x.ECGEXT_ID,
    x.LEAD_CD,
    x.T_ID,
    x.ENTERED_DTS,
    X.ENTERED_BY_NM,
    X.UPDATED_DTS,
    X.UPDATED_BY_NM,
    x.cks
    from (
    select
    htmldb_item.checkbox(11,ECGEXT_ID) del,
    htmldb_item.hidden(12,ECGEXT_ID) ECGEXT_ID,
    htmldb_item.select_list_from_query (13, LEAD_CD,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
    htmldb_item.select_list_from_query(15,T_ID,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 18',25) T_ID,
    wwv_flow_item.display_and_save(16,to_char(ENTERED_DTS,'MM/DD/YYYY')) ENTERED_DTS,
    au.LAST_NM || ', ' || au.FIRST_NM ENTERED_BY_NM,
    wwv_flow_item.display_and_save(17,to_char(UPDATED_DTS,'MM/DD/YYYY')) UPDATED_DTS,
    au1.LAST_NM || ', ' || au1.FIRST_NM UPDATED_BY_NM,
    htmldb_item.md5_checksum(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    from ECGEXT,
    app_user au,app_user au1 where au.MSPR_ID(+) = ECGEXT.ENTERED_BY_MSPR_ID and au1.MSPR_ID(+) = ECGEXT.UPDATED_BY_MSPR_ID
    and ECGEXDT_ID = :P65_ECGEXDT_ID
    union all
    select
    htmldb_item.checkbox(11,null) del,
    htmldb_item.hidden(12,null) ECGEXT_ID,
    htmldb_item.select_list_from_query (13,null,'select lead_cd , lead_cd from lslead order by display_seq ',15) LEAD_CD,
    htmldb_item.select_list_from_query(15,null,'select lkup_dsc,lkup_id from lkup where lkup_grp_id = 18',25) T_ID,
    wwv_flow_item.display_and_save(16,null) ENTERED_DTS,
    null ENTERED_BY_NM,
    wwv_flow_item.display_and_save(17,null) UPDATED_DTS,
    null UPDATED_BY_NM,
    htmldb_item.md5_checksum(null,null,null,null,null) cks
    from dual) x
    UPDATE PROCESS:
    declare
    l_cks wwv_flow_global.vc_arr2;
    j pls_integer := 1;
    val1 varchar2(100);
    val2 varchar2(100);
    begin
    -- Get original MD5 checksum
    select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    BULK COLLECT INTO l_cks
    from ECGEXT where ECGEXDT_ID = :P65_ECGEXDT_ID;
    -- Compare the original checksum, l_cks,
    -- with submitted checksum, htmldb_application.g_fcs.
    -- If they are different, raise an error.
    for i in 1..l_cks.count
    loop
    if htmldb_application.g_fcs(i) != l_cks(i) then
    -- val1 := htmldb_application.g_fcs(i);
    -- val2 := l_cks(i);
    -- insert into test2 (val_1,val_2) values (val1,val2);
    rollback;
    raise_application_error(
         -20001,
         'Current version of data in database has changed '||
         'since user initiated update process.');
    return;
    end if;
    end loop;
    -- update ECGRSTST
    for i in 1..htmldb_application.g_f12.count
    loop
    if htmldb_application.g_f12(i) is not null then
    update ECGEXT
    set
    ECGEXDT_ID = :P65_ECGEXDT_ID,
    LEAD_CD = replace(htmldb_application.g_f13(i),'%'||'null%',NULL),
    T_ID = replace(htmldb_application.g_f15(i),'%'||'null%',NULL)
    where ECGEXT_ID = htmldb_application.g_f12(i);
    else
    if htmldb_application.g_f13(i) is not null then
    insert into ECGEXT
    (ECGEXT_ID ,
    ECGEXDT_ID,
    LEAD_CD,
    T_ID)
    values
    (ECGEXT_SEQ.nextval,
    :P65_ECGEXDT_ID,
    replace(htmldb_application.g_f13(i),'%'||'null%',NULL),
    replace(htmldb_application.g_f15(i),'%'||'null%',NULL));
    end if;
    end if;
    end loop;
    end;
    please help me in solving this.The same code its good for one tabular form and for the other it giving the checksum error.
    Thanks in advance
    phani

    Hi patrick,
    Thanks for the reply i am getting the checksum error even if i used my primary key in the select statement of the MD5 checksum.
    My primary key in the second tabular form is
    htmldb_item.hidden(12,ECGEXT_ID) ECGEXT_ID
    so i changed the process to:
    for i in 1..htmldb_application.g_f12.count
    loop
    if htmldb_application.g_f12(i) is not null
    then
    select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,T_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    BULK COLLECT INTO l_cks
    from ECGEXT where ECGEXT_ID = htmldb_application.g_f12(i);
    -- Compare the original checksum, l_cks,
    -- with submitted checksum, htmldb_application.g_fcs.
    -- If they are different, raise an error.
    if htmldb_application.g_fcs(i) != l_cks(i) then
    -- val1 := htmldb_application.g_fcs(i);
    -- val2 := l_cks(i);
    -- insert into test2 (val_1,val_2) values (val1,val2);
    rollback;
    raise_application_error(
         -20001,
         'Current version of data in database has changed '||
         'since user initiated update process.');
    end if;
    end if;
    end loop;
    It's not possible to use BULK COLLECT to get the MD5 checksum of all >>>rows. Because the index positions in the MD5 array and the >>>apex_application.g_fxx array index will probably not match, especially if you >>>don't order or if you are on a second page.How come the first tabular form is running i used the bulk collect in the first tabular form
    HERE IS THE CODE FOR THE FIRST TABULAR FORM:
    -- Get original MD5 checksum
    select wwv_flow_item.md5(ECGEXDT_ID,LEAD_CD,ST_ID,ENTERED_DTS,ENTERED_BY_MSPR_ID) cks
    BULK COLLECT INTO
    l_cks
    from ECGEXST where ECGEXDT_ID = :P65_ECGEXDT_ID;
    -- Compare the original checksum, l_cks,
    -- with submitted checksum, htmldb_application.g_fcs.
    -- If they are different, raise an error.
    for i in 1..l_cks.count
    loop
    if htmldb_application.g_fcs(i) != l_cks(i) then
    rollback;
    raise_application_error(
              -20001,
         'Current version of data in database has changed '||
         'since user initiated update process.');
    -- return;
    end if;
    end loop;

  • Delete Functionality in manual tabular form

    Hi everyone,
    I have created 2 tabular forms on the same page.everthing is working fine.Both the tabular form are able to insert and update.I am getting problem to implement the DELETE functionality in those tabular form.
    I inserted this code htmldb_item.checkbox(6, id) del in the region and i created a delete process.But i am getting (no data found) error.
    could anyone help me in solving this.
    thanks
    phani
    ===========================================================
    DELETE PROCESS:
    FOR i in 1..HTMLDB_APPLICATION.G_F01.count
    LOOP
    DELETE FROM (TABLE NAME)
    WHERE id = HTMLDB_APPLICATION.G_F06(i);
    END LOOP;
    =============================================================
    TABULAR FORM 1:
    REGION:
    select x.column1,
    x.column2,
    x.column3,
    x.column4,
    x.column5,
    x.del,
    x.cks
    from (
    select htmldb_item.hidden(1,column1) column1,
    htmldb_item.text(2,column2,10) column2,
    htmldb_item.text(3,column3,10) column3,
    htmldb_item.text(4,column4,10) column4,
    wwv_flow_item.date_popup(5,null,column5) column5,
    htmldb_item.checkbox(6,column1) del,
    htmldb_item.md5_checksum(column2,column3,column4,column5) cks
    from TABLENAME
    union all
    select htmldb_item.hidden(1,null) column1,
    htmldb_item.text(2,null,10) column2,
    htmldb_item.text(3,null,10) column3,
    htmldb_item.text(4,null,10) column4,
    wwv_flow_item.date_popup(5,null,null) column5,
    htmldb_item.checkbox(6,null) del,
    htmldb_item.md5_checksum(null,null,null,null) cks
    from dual) x
    ==================================================================
    PROCESS:
    declare
    l_cks wwv_flow_global.vc_arr2;
    j pls_integer := 1;
    begin
    -- Get original MD5 checksum
    select wwv_flow_item.md5(column2,column3,column4,column5) cks
    BULK COLLECT INTO
    l_cks
    from TABLE;
    -- Compare the original checksum, l_cks,
    -- with submitted checksum, htmldb_application.g_fcs.
    -- If they are different, raise an error.
    -- for i in 1..l_cks.count
    -- loop
    -- if htmldb_application.g_fcs(i) != l_cks(i) then
    -- rollback;
    -- raise_application_error(
    -- -20001,
    -- 'Current version of data in database has changed '||
    -- 'since user initiated update --process.');                      
    --return;
    -- end if;
    -- end loop;
    -- update
    for i in 1..htmldb_application.g_f01.count
    loop
    if htmldb_application.g_f01(i) is not null then
    update TABLENAME
    set column2= htmldb_application.g_f02(i),
    column3 = htmldb_application.g_f03(i),
    column4 = htmldb_application.g_f04(i),
    column5 = htmldb_application.g_f05(i)
    where column1 = htmldb_application.g_f01(i);
    else
    if htmldb_application.g_f03(i) is not null then
    insert into TABLE
    (column2,
    column3,
    column4,
    column5
    values
    (htmldb_application.g_f02(i),
    htmldb_application.g_f03(i),
    htmldb_application.g_f04(i),
    htmldb_application.g_f05(i));
    end if;
    end if;
    end loop;
    end;
    I created the other tabular form on the same page with
    htmldb_application.g_f11(i)
    htmldb_application.g_f12(i)
    htmldb_application.g_f13(i)
    htmldb_application.g_f14(i)
    used the same code.

    Have you got any response on this? I would like to know how to do it too. I am trying to implement a manual tabular form on a page and need this functionality.
    I do know one thing. After attending the ODTUG conference last week, Raj said something about you have to process check boxes and radio groups separately from the rest of the form.
    Thanks,
    Michelle

  • Query for create manual tabular form using apex collection using item textfield with autocomplete

    can we create a manual tabular form inside item textfield with autocomplete ?
    how it is possible?
    with Apex_item API used for this item.
    i used this code for creat  cascading select list
    select seq_id,
    APEX_ITEM.SELECT_LIST_FROM_QUERY(
            p_idx                       =>   1,
            p_value                     =>   c001,
            p_query                     =>   'SELECT C001 D
         , C002 R
      FROM APEX_COLLECTIONS
    WHERE COLLECTION_NAME = ''col1''',
            p_attributes                =>   'style="width:150px" onchange="f__name(this,parseInt(#ROWNUM#));"',
            p_show_null                 =>   'Yes',
            p_null_value                =>   null,
            p_null_text                 =>   '- Select name -',
            p_item_id                   =>   'f01_'|| LPAD (ROWNUM, 4, '0'),
            p_item_label                =>   'Label for f01_#ROWNUM#',
            p_show_extra                =>   'NO') name,
    APEX_ITEM.SELECT_LIST_FROM_QUERY(
            p_idx                       =>   2,
            p_value                     =>   c002,
            p_query              =>   ' SELECT null d, null r FROM dual WHERE 1 = 2
            p_attributes                =>   'style="width:150px"',
            p_show_null                 =>   'Yes',
            p_null_value                =>   null,
            p_null_text                 =>   '- Select name -',
            p_item_id                   =>   'f02_'|| LPAD (ROWNUM, 4, '0'),
            p_item_label                =>   'Label for f02_#ROWNUM#',
            p_show_extra                =>   'NO')name2,
    from apex_collections
    where
    collection_name = 'COLLECTION1'
    It is fine .
    but i want item in tabular form  textfield with autocomplete and remove select list. my requirement is using textfield with autocomplete select a employee name and second item textfield with autocomplete display dependent perticular employee related multiple task.
    how it is created.i have no idea related textfield with autocomplete.Please help me....

    pt_user1
    I understand that the add row button is currently doing a submit.
    To not submit the page you need a dynamic action on the page.
    Does the javascript function addRow do what you want?
    Otherwise have a look at the following two threads Add row in manual tabular form using dynamic action and Accessing Tabular Form & Add Elements to Collection without Page Submit.
    You're process could be something like:
    Add the new values to the collection using the idea's in the second thread and at the same time add the new row.
    And as second action refresh your tabular form.
    If you get stuck set up what you have done on apex.oracle.com using the tables from the demo application.
    Nicolette

  • Dynamic Manual Tabular form

    Hi friends,
    I have been working on a timesheet application for which i need to create a manual tabular form in apex 4.1. I created a page with 3 items based on whose values the form should be generated. I created a report region in the page with the source code as
    DECLARE
    v_query varchar2(10000);
    BEGIN
    IF :P7_RELEASE_ID is not null THEN
    v_query := 'SELECT b.act_code activities,
    apex_item.text (1, a.ts_wd1, 10, 10) monday,
    apex_item.text (2, a.ts_wd2, 10, 10) tuesday,
    apex_item.text (3, a.ts_wd3, 10, 10) wednesday,
    apex_item.text (4, a.ts_wd4, 10, 10) thursday,
    apex_item.text (5, a.ts_wd5, 10, 10) friday,
    apex_item.text (6, a.ts_wd6, 10, 10) saturday,
    apex_item.text (7, a.ts_wd7, 10, 10) sunday,
    apex_item.text (8, a.ts_remarks, 70, 128) remarks
    from tb_opti_emp_ts a, tb_opmi_proj_act_map b
    where a.proj_ref=b.proj_ref= '||:P7_PROJ_REF||' and a.rel_id=b.rel_id= '||:P7_RELEASE_ID||' and a.emp_id= '||:P7_EMPLOYEE;
    ELSE
    v_query := 'SELECT 1 FROM dual WHERE 1=0';
    END IF;
    return(v_query);
    END;
    I have checked the option 'Use Generic Column Names (parse query at runtime only)' under source and the type is SQL query(pl/sql function body returning sql query)
    in this the 3 page items are P7_PROJ_REF,P7_RELEASE_ID and P7_EMPLOYEE.
    Now i have created a button which unconditionally branches to the same page and submits the page so on clicking it the data should be generated. I am getting the 'no data found' when the page items are blank but when i am passing legit data in the items(btw, all three are pop-up LOV's), i am getting an error
    failed to parse SQL query:
    ORA-00933: SQL command not properly ended.
    Please I have been working for hours but not getting the solution...
    Anyone with solution plz.............

    Put your actual query in the report region SQL Query box, Specifying SQL Query as opposed to Function Returning SQl Query
    As follows:
    SELECT b.act_code activities,
    apex_item.text (1, a.ts_wd1, 10, 10) monday,
    apex_item.text (2, a.ts_wd2, 10, 10) tuesday,
    apex_item.text (3, a.ts_wd3, 10, 10) wednesday,
    apex_item.text (4, a.ts_wd4, 10, 10) thursday,
    apex_item.text (5, a.ts_wd5, 10, 10) friday,
    apex_item.text (6, a.ts_wd6, 10, 10) saturday,
    apex_item.text (7, a.ts_wd7, 10, 10) sunday,
    apex_item.text (8, a.ts_remarks, 70, 128) remarks
    from tb_opti_emp_ts a, tb_opmi_proj_act_map b
    where a.proj_ref=b.proj_ref= :P7_PROJ_REF and a.rel_id=b.rel_id= :P7_RELEASE_ID  and a.emp_id= :P7_EMPLOYEE;In the conditions for the report region to display specify ITEM NOT NULL and P7_RELEASE_ID (without the colon) in the Expression 1 box

  • Manual tabular forms  Denes example

    Hi,
    I implemented Denes Kubiceks' Manual Tabular Form (page # 170) to work. The only problem is that in his example pressing the ADD ROW button presents two new input records. I need only one new input record but I cannot figure out how he does it? Can someone point me in the right direction?

    Ok i figured it out in the tabular query there is a CONNECT BY LEVEL <=2. I changed that to 1 and it now gives me only one input record. Great example once you figure it out.

  • Manual tabular form -- add rows

    Hi everybody, I am making a manually tabular form following the Denes Kubicek tutorials:
    http://apex.oracle.com/pls/otn/f?p=31517:170:1304244099066416::NO
    and
    http://apex.oracle.com/pls/otn/f?p=31517:190:1304244099066416::NO
    The SQL for the tabular form is:
    SELECT apex_item.checkbox (31,
    idint,
    'onclick="highlight_row(this,' || ROWNUM || ')"',
    NULL,
    'f31_' || LPAD (ROWNUM, 4, '0')
    ) delete_checkbox,
    idint,
    apex_item.text (32,
    tipus_modif,
    1,
    1,
    'style="width:20px" ',
    'f32_' || LPAD (ROWNUM, 4, '0')
    ) tipus
    FROM GPPC_DETALLS_ESMENA_PROP_V
    where esmena_idint = :P18_IDINT
    and tipus_modif ='A'
    The Report is created correct. Now I modify the "Form Region" template like this:
    <table class="t6FormRegion" id="MY_TAB" border="0" cellpadding="0" #REGION_ATTRIBUTES# summary="">
    <tr><td class="t6Header">#TITLE#</td></tr>
    <tr><td class="t6ButtonHolder">#CLOSE#   #PREVIOUS##NEXT##DELETE##EDIT##CHANGE##CREATE##CREATE2##EXPAND##COPY##HELP#</td></tr>
    <tr><td class="t6Body">#BODY#</td></tr>
    <tr><td><img src="#IMAGE_PREFIX#themes/theme_6/t.gif" width="400" height="1" alt="" /></td></tr>
    </table>
    Now I add a Button URL with the code:
    javascript:va_AddTableRow(this,'MY_TAB',1);
    and add this Javascript in the region header of the SQL Report
    <script>
    function va_AddTableRow(pThis,pThat,pNum){
    var tt = html_GetElement(pThat);
    for(i=0;i<pNum;i++){
    var ogTR = tt.rows[1];
    var trClone = ogTR.cloneNode(true);
    trClone.firstChild.innerHTML='(null)';
    var last_child=trClone.lastChild.getElementsByTagName('input')
    for (var j=0;j<last_child.length;j++)
    if (last_child[j].type=="hidden" && last_child[j].name=="f01")
    last_child[j].value="";
    if(document.all){
    myNewRow = tt.insertRow(tt.rows.length);
    oReplace = myNewRow.replaceNode(trClone);
    }else{
    tt.appendChild(trClone);
    </script>
    In this moment, when I push the botton appears the text (nulll) in the same region but not as a new line in the SQL report, what is the problem??
    Thank you for your help

    Alberto,
    When you get a chance, see if maybe this (old version) of my app does something similar to what you need/want.
    [http://apex.oracle.com/pls/otn/f?p=26115:3]
    It's not working right now though, I keep getting the Oracle error:
    ORA-01116: error in opening database file 17252 ORA-01110: data file 17252: '/u03/oradata/marvlprd/MARVLPRD/datafile/o1_mf_flow_172_23qtsjpr_.dbf' ORA-27041: unable to open file Linux Error: 23: Too many open files in system Additional information: 3
    So, as way of an explanation (until Joel gets the Linux process fixed), I have a simple little screen that I use for letting the users specifiy search criteria. Each line has four columns, what field they want to search, a condition (equals or not equals), the text to search for, and an optional 'And/or' argument. If the 'And/Or' gets populated, a new blank line automatically gets created. There is also a red 'X' on each line so they users can delete a line if they want.
    Not sure if this is what you need, but this page uses the same set of javascript code, so perhaps when it's working again, you can see if there are any similarities or differences.
    Also, for reference, so you can see the code and variables, etc., the workspace is wbfergus, and the id and password are both htmldb-apex.
    Bill Ferguson

  • Manual tabular form - popup

    I have a couple of problems with the manual tabular form I have created and would appreciate some help,
    First the htmldb_item.popup_from_query is not populating the field when I select the item:
    The query looks something like this:
    Select x.data1,
    x.data2,
    x.data3,
    x.CKS
    From (
    Select htmldb_item.display_and_save(1, data1) data1,
    htmldb_item.text(3, data2, 50) data2,
    htmldb_item.select_list(4,data3,'Yes;Y,No;N') data3
    htmldb_item.md5_checksum(data1,data2, data3) CKS
    FROM my_table
    UNION ALL
    Select htmldb_item.popup_from_query(1, NULL, 'select code || CHR(45) || description descrip, code from PRODUCT_STREAM', 2, 2) data1,
    htmldb_item.text(3, NULL, 50) data2,
    htmldb_item.select_list(4,'N','Yes;Y,No;N')data3,
    htmldb_item.md5_checksum(null,null,null) CKS
    FROM dual
    ) x;
    When this page is run, the existing data is displayed with a blank line at the bottom as expected, it I click on the popup icon a list of codes is displayed, but I cannot click on any of the items to populate the data1 field. If I change the query on the top of the union so the first data1 is also htmldb_item.popup_from_query then it works fine, but data1 cannot (user requirement) be changed by the user, how can I fix this so the popup list works.
    Second thing:
    CKS is showing as another column in the tab form, if I uncheck show it doesn’t work anymore, there us no data showing in the column just the heading, and I can get rid of the text but there is still allocated size for it.

    Why do you have to write the tabular form manually? Why not use the tabular wizard and have the form, including checksums, generated for you? In HTML DB 1.6 you can include options to automatically add new empty rows to your tabular form and have a row selector with delete functionality.
    Neither the manual tabular forms nor the automatically generated tabular forms support mixing display types for columns. Having a display-and-save display type for existing rows and a popup for new rows doesn’t work. All rows, including new ones, have to use the same display type to work properly. If it’s a requirement to have this data1 column be read-only for existing rows, then you need to create a separate form for adding new rows. So e.g. you could have a tabular form only for existing data and an add-row button that takes the user to a data entry form on another page.
    You’re checksum btw shows up in it’s own column because you defined it to be an extra column in your SQL statement. Since it’s just rendering a hidden form field, you could append the checksum to another column:
    htmldb_item.select_list(4,'N','Yes;Y,No;N') ||
    htmldb_item.md5_checksum(null,null,null) data3
    When using manual tabular forms, the column alias names are irrelevant. But again, I’d recommend using the built-in functionality.
    Regards,
    Marc

  • Manual Tabular Form Problem

    Apex 3.2
    I have written a manual tabular form and it has a validation to check if a column contains negative numbers.
    If it does then it returns a validation error.
    I also have the same validation in my database procedure which raises
    RAISE_APPLICATION_ERROR(-20000, 'The update procedure does not accept negative numbers.');My problem is withmy page validation.
    If the column value was 16 and the user types in, eg, -12, then the validation fires and returns the message.
    The problem is that once the message is returned, the column value is reset to the original value, eg, 16.
    If I disable my page validation and use my database exception.
    Then the error message from the database displays. If I click ok, then the form displays the new value, eg, -12.
    I want to use my page validation, but I need the page to show the new value.
    I have made all my processes and branches conditional to run only if there are no inline validations displayed,
    but this did not affect anything.
    Any help appreciated
    Gus

    Gus C wrote:
    It works exactly how I want mine to, without using collections, ie, it keeps the new values in the page.
    Unfortunatley I cannot figure out how he does thatUpgraded to 4.2 ;)
    One of the differences between version 3 and 4 is that retaintion/caching of the changed values in tabular forms.
    In other words in apex 4 the builder takes care of showing the new changed value.
    By not fetching the data from the database on a validation error.
    Where as in Apex 3 you have to do that when there is a validation error and the message is shown on the same page.
    The report fetches the data from the database even when there is a validation error.
    There are 2 options
    1) Let the validation message be shown on the error page. Going back in the browser history doesn't fetch the data form the database up on rerendering.
    This option is mentioned in the thread the demo was inspired by.
    2) Work with a collection. Where you take care of the caching. This method gives the posibility to so multiple validation messages where as the "show on error page" shows only one validation message.
    Nicolette

  • Manual tabular form (Multiple Tabular forms)

    Hi,
    I am using APEX v4.0.
    In my application, I am having a few issues with the generation of a manual tabular form. I need two tabular form on the page so I have created the first using a wizard and the second through the use of a collection using skillbuilders tutorial at http://www.skillbuilders.com/webinars/webinar.cfm/49?title=Manual%20Tabular%20Forms%20in%20Oracle%20APEX:%20A%20Methodology%20that%20Works
    Independently, they work as expected i.e. if I have a condition on the 1st tabular form to never display and only display the 2nd, it works fine and vice versa. However, if I try to try to display them both, I am getting errors.
    When both forms are displayed and I make a change to the form generated by the wizard, I am getting the error 'ORA-01403: no data found'.
    When both forms are displayed and I make a change to the form I generated manually, I am getting the error 'ORA-01722: invalid number'.
    Can someone please suggest where I should be looking as independently they are working fine, but when they are both on the page together, they are not.
    Thanks

    Hi Nicollette,
    I have got a bit further with it now thanks. The wizard form is now working when BOTH forms are displayed. I am still having a few issues with the manual one. When I try to insert a record I am getting:
    ORA-01410: invalid ROWID
         Error      
    It is now letting me delete and update though.
    I have the following as a before submit process:
    DECLARE
       l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE;
       l_original_md5    VARCHAR2(32);
       l_latest_md5      VARCHAR2(32);
    BEGIN
       l_collection_name := 'QC_COMPLAINT_MODELS';
       FOR x IN 1 .. apex_application.g_f49.count
       LOOP        
          IF apex_application.g_f10(x) IS NOT NULL --ID exists, check to see if record was updated
          THEN
             SELECT c048
             INTO l_original_md5
             FROM apex_collections
             WHERE collection_name = l_collection_name
                AND seq_id = apex_application.g_f49(x);
             l_latest_md5 := wwv_flow_item.md5(
                apex_application.g_f10(x),
                apex_application.g_f11(x),
                apex_application.g_f12(x),
                apex_application.g_f13(x),
                apex_application.g_f14(x)
             IF l_original_md5 != l_latest_md5
             THEN
                apex_collection.update_member(
                   p_collection_name => l_collection_name,
                   p_seq             => apex_application.g_f49(x),
                   p_c010            => apex_application.g_f10(x),
                   p_c011            => apex_application.g_f11(x),
                   p_c012            => apex_application.g_f12(x),
                   p_c013            => apex_application.g_f13(x),
                   p_c014            => apex_application.g_f14(x),
                   p_c047            => 'U',
                   p_c048            => apex_application.g_f48(x)
             END IF;
          ELSE --ID does not exist, must be new record
             apex_collection.update_member(
                p_collection_name => l_collection_name,
                p_seq             => apex_application.g_f49(x),
                p_c010            => apex_application.g_f10(x),
                   p_c011            => apex_application.g_f11(x),
                   p_c012            => apex_application.g_f12(x),
                   p_c013            => apex_application.g_f13(x),
                   p_c014            => apex_application.g_f14(x),
                   p_c047            => 'U',
                   p_c048            => apex_application.g_f48(x)
          END IF;
       END LOOP;
       IF :REQUEST = 'DELETE_MOD'
       THEN
          FOR x IN 1 .. apex_application.g_f50.count
          LOOP
             apex_collection.update_member_attribute(
                p_collection_name => l_collection_name,
                p_seq             => apex_application.g_f50(x),
                p_attr_number     => '47',
                p_attr_value      => 'D'
          END LOOP;
       END IF;
    END;and this as an after submit process:
    DECLARE
       l_table_md5       VARCHAR2(32);
       l_collection_name APEX_COLLECTIONS.COLLECTION_NAME%TYPE;
       l_del_count       PLS_INTEGER := 0;
       l_upd_count       PLS_INTEGER := 0;
       l_ins_count       PLS_INTEGER := 0;
       l_success_message VARCHAR2(32767);
       CURSOR op_lock_check_cur (
          p_id IN NUMBER
       IS
          SELECT wwv_flow_item.md5(cm_id, serial_number, fd_number, complaint_id, model_name)
          FROM XXMEL_QC_COMPLAINTS_MODELS
          WHERE cm_id = op_lock_check_cur.p_id
          FOR UPDATE;
    BEGIN
       l_collection_name := 'QC_COMPLAINT_MODELS';
       FOR x IN (
          SELECT *
          FROM apex_collections
          WHERE collection_name = l_collection_name
             AND c047 IN ('N','U','D')
       LOOP
          IF x.c047 = 'N'
          THEN
             INSERT INTO XXMEL_QC_COMPLAINTS_MODELS(
                cm_id,
                serial_number,           
                fd_number,
                complaint_id,
                model_name
             ) VALUES (
                XXMEL_QC_COMPLAINTS_MODELS_S.nextval,
                x.c011,
                x.c012,
                x.c013,
                x.c014
             l_ins_count := l_ins_count + 1;
          ELSIF x.c047 = 'U'
          THEN
             --Optimistic lock check
             --MD5 should be identical to collection initialization proc
             OPEN op_lock_check_cur(x.c010);
             FETCH op_lock_check_cur INTO l_table_md5;
             -- Compare the checksum values and if they are different, raise an error.
             IF l_table_md5 != x.c048
             THEN
                raise_application_error(
                   -20001,
                   'Current version of data in database has changed '
                   || 'since user initiated update process.'
             END IF;
             UPDATE XXMEL_QC_COMPLAINTS_MODELS
             SET serial_number = x.c011,
                fd_number = x.c012,
                complaint_id = x.c013,
                model_name = x.c014
             WHERE CURRENT OF op_lock_check_cur;
             CLOSE op_lock_check_cur;
             l_upd_count := l_upd_count + 1;
          ELSIF x.c047 = 'D'
          THEN
             DELETE FROM XXMEL_QC_COMPLAINTS_MODELS
             WHERE cm_id = x.c010;
             l_del_count := l_del_count + 1;
          END IF;
       END LOOP;
       apex_collection.delete_collection(p_collection_name => l_collection_name);
       l_success_message := 
          l_ins_count || ' rows inserted, ' ||
          l_upd_count || ' rows updated, ' ||
          l_del_count || ' rows deleted';
       :P8_SUCCESS_MESSAGES := l_success_message;
    END;Thanks
    Edited by: Cashy on 17-Oct-2012 02:12

  • Manual Tabular Form using checksum

    I have a manual tabular form which updates OK but when I add the htmldb_item.mds_checksum it does not always work. It does not pass the MD5 checksum test in the update process. Sometimes it works some times it does not. No one else is updating this data so it should pass the checksum error.
    I need a manual tabular form so I can to retrieve this same data in a collection if the page is submitted for a cascading dropdown in another region. That is correct?
    Of course, I could do the cascading dropdown another way instead of select list on submit. This is puzzling me.
    Here is the sql query:
    select htmldb_item.hidden(1,sub_id) sub_id,
    htmldb_item.display_and_save(2,column_id) column_id,
    htmldb_item.display_and_save(3,column_name) column_name,
    htmldb_item.display_and_save(4,primary_key) primary_key,
    htmldb_item.display_and_save(5,required) required,
    htmldb_item.select_list(6,isselected,'Yes;Y,No;N') isselected,
    htmldb_item.md5_checksum(isselected) cks
    from sub_columns
    where sub_id = :P26_SUB_ID
    order by 2
    Here is the update process:
    declare
    l_cks wwv_flow_global.vc_arr2;
    j pls_integer := 1;
    begin
    -- Get original MD5 checksum
    select wwv_flow_item.md5(isselected) cks
    BULK COLLECT INTO
    l_cks
    from sub_columns
    where sub_id = :P26_SUB_ID;
    for i in 1..l_cks.count
    loop
    if htmldb_application.g_fcs(i) != l_cks(i) then
    rollback;
    raise_application_error(-20001,
    'Current version of data in database has changed '||
    'since user initiated update process.');
    end if;
    end loop;
    -- update Subscription
    for i in 1..htmldb_application.g_f01.count
    loop
    update sub_columns
    set isselected = replace(htmldb_application.g_f06(i),'%'||'null%',NULL)
    where sub_id = :P26_SUB_ID and
    column_id = htmldb_application.g_f02(i);
    end loop;
    commit;
    end;
    Any help would be appreciated. I just don't see what I am doing wrong and I don't see any other way to do it.

    I had already read this paper before doing the tabular form manually. I tried to follow it as closely as I could. My tabular form is a little different since I have a where clause in my SQL and only updating one field. The other fields are display_and_save. And I was branching to a different page than the page containing the tabular form. I would think none of these differences should make it not work. I did change to branch to the same page. That made no difference.
    I did not need to do an insert so I skipped doing that step and then went to Adding Optimistic Locking. It is failuring in my update process with this code:
    -- Get original MD5 checksum
    select wwv_flow_item.md5(isselected) cks
    BULK COLLECT INTO
    l_cks
    from sub_columns
    where sub_id = :P26_SUB_ID;
    for i in 1..l_cks.count
    loop
    if htmldb_application.g_fcs(i) != l_cks(i) then
    rollback;
    raise_application_error(-20001,
    'Current version of data in database has changed '||
    'since user initiated update process.');
    end if;
    end loop;
    I get the Error process message and then the above -20001 error message when I click on the Submit button. Is there something wrong with my above code? I would assume I would need to add the where clause to the above select since I am only updating whose records.
    I had created a submit button with action submit page and redirect to URL. The process executes on the condition when the submit button is pressed.
    I need to get this working soon. I would assume other people have done a similar thing. I have tried many things. Another thing I notice is if I tell it to not display the first column, sub_id, and the last column, cks, (unselecting display in Report Attributes section) then the update does not work. I must be doing something wrong but I don't know what.
    I created the page with component, report, SQL Report, and region type SQL Query.

Maybe you are looking for

  • LG Revolution missing half of text messages

    When I get multiple SMS messages on my phone everytime I look at the conversation in the messaging app the first half of the message is always missing. This occurs everytime I drag the message notification down. If I drag up to just unlock my phone o

  • [SOLVED] Problem with XBMC and VA-API on sandy bridge

    Hello I'm running XBMC on my server with a core i3 and built in HD2000 graphics. When running without VA-API everything works fine except for some lag in heavy 1080p scenes. But if I turn on VA-API the video works for about 5 seconds and then the fra

  • "All items from purchase order cannot be invoiced"

    Hello,<br /> <br /> I'm on a SRM 7.0 SP 5 system (ext-classic scenario). Here i try to create an invoice with reference to a Purchase Order, but none of my Purchase Orders can be used for reference. I get the following warning message 'All items from

  • Connecting to Projectors

    I'm having problems connecting the iBook G4 to a projector at school, on my old iBook it connected with ease but this one doesn't seem to work, i've tried clicking on detect displays and gather windows and nothing happens, my computer recognizes the

  • Playing movies from iphone to dvd player

    Is it possible to have movies on iPhone and with the appropriate cords connect it my portable DVD player and watch the movies on a bigger screen?