Manual Tabular Form Issues (again)

Okay, let me start by saying that I've searched the forums, and read the read at Re: Issues with tabular forms with optimistic locking to little avail. I started out with the tabular form tutorial and modified it for my table.
I have a couple of problems though. First, is with the inclusion of the blank record in my initial output. With the blank record, I either have it (the blank record) at the top if I have it sorted, or if I leave it unsorted, then the blank record appears at the bottom (where you'd expect it, but it's harder to read). How can I get the records sorted so the blank record is at the end? I've tried an order by and also tried selecting the SORT BY box in the report attributes without success.
My next major problem was discussed pretty much in the above referenced thread. I finally had to change my select statement so that for the checksum I was doing a "htmldb_item.hidden(15,wwv_flow_item.md5(code,import,rb_est_sz,pc_est_sz)) cks. If I didn't wrap the checksum inside of the htmldb_item.hidden(), then I was always getting the 'No Data Found" error message when I submitted the page. After reading the above thread, I started viewing the source, and the checksum field wasn't appearing, so my 'Process" wasn't able to find it. So, to make the field 'visible' to my apply changes process, I wound up having to wrap it inside another field type. If I wrap it in a htmldb_item.text(), then the field data appears unless I uncheck the show column, and then my process doesn't work, since suddenly the checksum field goes from _F15 to _F02. I already have a field with the _F02 assignment, so how can I change it back to the _F15 that I want?
So, I can have the checksum only if I make the column visible, if I make invisible, then it changes the htmldb_application.g_Fxx assignment to that already assigned to another field. I'm just getting confused with this.
Thanks, and I'll try to create a workspace on apex.com so others can see what I'm doing (or not doing). It might not be until Wednesday or Thursday, as I have other conflicting work requirements cropping up now.
Bill Ferguson

Okay, I have enough data, etc. finally updated to show what I'm bumping my head up against.
There's got to be an easy fix, but for the life of me I can't find it.
The address is http://apex.oracle.com/pls/otn/f?p=45926:2:11005498541589576266::NO:::
Workspace is wbfergus, id and pw are htmldb
Start by clicking "Search", then select one of the records in the "Records Found" box, which takes you to the "Deposits" form, then use the menu to select "Data", "General", "Commodities" to get to the form I'm having problems with. On the Commodities screen, the last two columns shouldn't show up, but without them, I can't make any changes. There's got to be a way to hide them and still have the checksum capability. To make things easier, I commented out the part of the code that added a blank record, which solved a problem from my first post.
Most of the forms/tables are blank, so they aren't fully functional. I just did what was needed to get to the part where I'm having problems.
Thanks anybody,
Bill Ferguson

Similar Messages

  • Issue with APEX_ITEM.CHECKBOX in Manual Tabular Form report

    Hi,
    I have a simple manual tabular form report with query :
    SELECT
    APEX_ITEM.CHECKBOX(1,order_id) ,
    APEX_ITEM.TEXT(3,Ord_number) ,
    APEX_ITEM.TEXT(4,ord_flag)
    from
    tbl_order
    and a process to update the value of Ord_number & ord_flag columns for the selected (Checked) rows.
    FOR i in 1..apex_application.g_f01.count
    loop
    UPDATE
    tbl_order
    SET
    Ord_number = apex_application.g_f03(i),
    ord_flag = apex_application.g_f04(i)
    WHERE
    order_id = apex_application.g_f01(i);
    END LOOP;
    But the values getting updated wrongly , how can I ensure the exact values is retrieved in apex_application.g_f03(i) & apex_application.g_f04(i) ?
    Regards.
    Benz

    I think the row selector is there if you create an tabular form. However, you can create it yourself following this example:
    http://apex.oracle.com/pls/otn/f?p=31517:170
    Basically,
    apex_item.checkbox (30,
                               '#ROWNUM#',
                               'onclick="highlight_row(this,' || ROWNUM || ')"',
                               NULL,
                               'f30_' || LPAD (ROWNUM, 4, '0')
                              ) delete_checkboxDenes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • Column Link is not working on a Manual Tabular Form

    Hello,
    I am having some issues creating a link on a column based on a manual tabular form (I am using Apex 4.1.1.00.27, Oracle DB 10.2.0.5.0):
    On my page 1, I created a process that deletes and creates a collection based on the “emp” table; then, I have a manual tabular form based on that collection; and finally, a link on the “deptno” column of the manual tabular form that points to my Page 2 (department form) and it’s passing the parameter P2_DEPTNO:#DEPTNO#.
    The problem is that when I press the link, the page is not submitting the DEPTNO value. Also, I notice that as soon as I specify the column as a link column, it does not show the value in my tabular form, but if I remove the link, it shows the value correctly.
    I created an example on apex.oracle.com in case some of you want to look into it:
    Workspace: EDIAZJORGE
    Username: test
    Password: test123
    App Name: Sample App
    App Number: 12231
    I appreciate any ideas or suggestions on how to solve this issue.
    Thank you,
    Erick

    Hello,
    Try following code
    SELECT APEX_ITEM.HIDDEN(1,C001) EMPNO,
           APEX_ITEM.TEXT(2,C002) ENAME,
           APEX_ITEM.TEXT(3,C003) JOB,
           APEX_ITEM.TEXT(4,C004) MGR,
           APEX_ITEM.TEXT(5,C005) HIREDATE,
           APEX_ITEM.TEXT(6,C006) SAL,
           APEX_ITEM.TEXT(7,C007) COMM,
           '&lt;a href="f?p=&APP_ID.:2:&APP_SESSION.:::2:P2_DEPTNO:'||C008||'"><img src="/i/ws/small_page.gif"></a>' DEPTNO
    FROM APEX_COLLECTIONS
    WHERE COLLECTION_NAME = 'EMP_COLLECTION'
    UNION ALL
    SELECT APEX_ITEM.HIDDEN(1,NULL) EMPNO,
           APEX_ITEM.TEXT(2,NULL) ENAME,
           APEX_ITEM.TEXT(3,NULL) JOB,
           APEX_ITEM.TEXT(4,NULL) MGR,
           APEX_ITEM.TEXT(5,NULL) HIREDATE,
           APEX_ITEM.TEXT(6,NULL) SAL,
           APEX_ITEM.TEXT(7,NULL) COMM,
           APEX_ITEM.TEXT(8,NULL) DEPTNO      
    FROM DUALFor existing data, it will display as link and for new data, it will still display as text box.
    Please note that you should display DEPTNO as standard column and not as LINK.
    Regards,
    Hari
    Escaped < in tags :)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Manually tabular form question

    hi all
    i built a manually tabular form.
    i want that this tabular for will used only to update , and without the option of insert new row .
    two questions i have here according to the document :
    there is something called
    Adding Optimistic Lockingoptimistic locking
    is that possible to do it if it's only an update form?
    i've tried to do it and not really succeeded.
    second question is about collection
    again is this possible to do it if i built only an update form ?
    thanks for quick response

    Hi Naama,
    >> i've created the package , it's show like it done but then i cannot see it.what seems to be the problem ?
    I have no idea, but this is definitely something local in your database. Just drop the package and re-create it. If the Object Browser doesn’t show you the package, try to use SQL*Plus.
    >> what is the meaning of this package?
    is this package active only in the tabular manually form ?.
    This is a regular PL/SQL package, and with the proper privileges, can be used anywhere on the database, with or without APEX connection.
    This package is “special” because it’s includes all you need to manage Optimistic Locking, which is characteristic to Web based applications. Other than that, you can use it whenever you need to manipulate the related table(s).
    >> the apex know in which part to relate in the package right ?
    APEX don’t know anything. When you are building a manual tabular form, it is also your responsibility to construct the proper DML processes. If you want your tabular form to support insert/update/delete you’ll need to construct three processes, each with the proper DML statement, each condition by the proper button. In your private case, as you need to support update only, you’ll need to build only one DML process (PL/SQL anonymous block), which will call the proper update procedure from the package.
    >> thank you
    Naama
    Wow! You signed your name correctly :) You should amend your handle to reflect that.
    Best Regards,
    Arie.

  • 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 (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

  • Creating a manual tabular form on an empty table

    Hi all,
    I am trying to create a manual tabular form on an empty table. Is it possible to display textboxes and column headers, when I run the report I get "no data found".
    Regards,

    Hi Denes and thank you for your valuable input.
    My problem is in fact that, I have created the tabular form by using a report region with a SQL query, something like,
    select apex_item.display_and_save(1, p.bolge) bolge,
    apex_item.display_and_save(2, p.hafta) hafta,
    apex_item.display_and_save(3, p.yil) yil,
    apex_item.display_and_save(4, p.mamul) mamul,
    apex_item.display_and_save(5, p.tahmin1) tahmin1,
    apex_item.display_and_save(6, p.tahmin2) tahmin2,
    apex_item.display_and_save(7, p.tahmin3) tahmin3,
    apex_item.display_and_save(8, p.tahmin4) tahmin4,
    apex_item.display_and_save(9, p.tahmin5) tahmin5,
    apex_item.display_and_save(10, p.tahmin6) tahmin6,
    apex_item.display_and_save(11, p.revize4) revize4,
    apex_item.display_and_save(12, p.revize5) revize5,
    apex_item.display_and_save(13, p.revize6) revize6
    from portal_link.v_planlama p
    The problem is that, since there is no data in the table, when I run the page, I cant get the form to be rendered, and I get a nice "no data found". There should be a way to get the form rendered, hence making it available for data input.
    Regards,
    Onur

  • Can't get Delete Process to work on Manual Tabular Form

    Help. My insert and update process works just fine. I can't get the delete process to work. I've searched the forum and found a couple of examples on what to do, but I can't get the examples to work. I get an ORA-01403: no data found error.
    Report SQL:
    select apex_item.checkbox (1, ceah_people_lang_id,'unchecked') delete_checkbox,
    --'onclick="highlight_row(this,' || ROWNUM || ')"',
    --null,
    --'F1_' || LPAD (ROWNUM, 4, '0')) delete_checkbox,
    Delete Process:
    declare
    begin
    for i in 1..apex_application.g_f02.count
    loop
    --if apex_application.g_f01(i) = 'Y'
    --then
    delete from ceah_people_language
    where ceah_people_lang_id = to_number(apex_application.g_f01(i));
    --end if;
    end loop;
    end;
    I've spent more time than I care to admit on the manual tabular form. Any help would be appreciated. Thanks, Elizabeth

    select apex_item.checkbox (1, ceah_people_lang_id,'unchecked') delete_checkbox,
    --'onclick="highlight_row(this,' || ROWNUM || ')"',
    --null,
    --'F1_' || LPAD (ROWNUM, 4, '0')) delete_checkbox,
    apex_item.hidden(2,ceah_people_lang_id)
    ||
    apex_item.select_list_from_query(3,language_id,'select language_name, language_id from foreign_language') language_id,
    apex_item.hidden(4,ceah_people_id) ||
    apex_item.select_list_from_query(5,proficiency,'select name, id from proficiency') proficiency
    from ceah_people_language where ceah_people_language.ceah_people_id = :P152_person_id
    union all
    select apex_item.checkbox
    (1,
    null,
    'onclick="highlight_row(this,' || ROWNUM || ')"',
    null,
    'F1_' || LPAD (ROWNUM, 4, '0')) delete_checkbox,
    apex_item.hidden(2,null) ||
    apex_item.select_list_from_query(3,null,'select language_name, language_id from foreign_language',
    'style="width:170px" ' ,
    'YES',
    '0',
    '- Select Foreign Language -',
    'f3_' || LPAD (9900 + ROWNUM, 4, '0'),
    NULL,
    'NO'
    ) language_id,
    apex_item.hidden(4,null) ||
    apex_item.select_list_from_query(5,null,'select name, id from proficiency',
    'style="width:170px" ' ,
    'YES',
    '0',
    '- Select Proficiency -',
    'f5_' || LPAD (9900 + ROWNUM, 4, '0'),
    NULL,
    'NO'
    ) proficiency
    from dual where :request = 'ADD_ROWS'
    connect by level <= 2

  • How to Multi Row Update function in Manual Tabular Form

    Hi All,
    In my application I am using manual tabular form, for Update and insert i have written pl/sql process,
    but i want to make use of MULTI_ROW_UPDATE function for update and insert operations.
    How can I implement default tabular form behaviour in manual tabular form.
    I am using:
    Oracle Database 11g
    ApEx Version 4.0
    please help me, it's urgent.
    thanks
    MR

    Hi Joao,
    First Can u pl let us know your view is based on how many
    tables?
    If it is a simple view ,you can open the form in update mode
    passing a parameter to it thru a procedure or thru a url or what
    ever you feel like(form to form,etc)..I will give you an example
    on how to open the form in update mode like below..
    1.develop a form based on a simple view
    2.Call that form Thru a simple URL
    3.In the above you are opening a form with module id
    ex:1234567890 in update mode and change portal30 to suit
    accordingly..
    4.You are passing a parameter called "ABCDEF" TO "NAME" Field to
    that form for querrying..
    5.Now the form will be opened in update mode and all the fields
    are pertaining to the parameter "ABCDEF" and you can update the
    fields....
    II..Now regarding the check boxes i need to know which version
    of the portal are u using..As for as my knowledge goes (up to
    3.0.6) there are lot of bugs with the check boxes and check box
    checked value is always "yes"(if u want to insert in to the data
    base).So try not to depend on checkboxes and instead Combo is
    the right answer till oracle portal is free of bugs.
    No triggers are required for your requirement....
    Hope i have answered your problem ...If any please revert back
    with full details
    Thanks
    Vishnu Singireddy

  • Apex_item.radiogroup using an LOV in a manual tabular form

    I'm on APEX 4.0.0.00.46 and I'm sure there must be an obvious solution that I'm missing here, but I'm having a problem setting up an apex_item.radiogroup on a manual tabular form. This is the basic query that I'm using:
    select apex_item.radiogroup(37,my_field) as my_field
    from my_table
    When I use the above query as my Region Source, it compiles fine. However, it seems as though the query won't pull in the value that currently exists in the table unless I set the Column Attribute called 'Display As' for the field to 'Standard Report Column'. When I do this, it seems to remove the capability to incorporate a LOV into the radio group. I'm attempting to incorporate a query like this into the radiogroup:
    select 'YES' d, 'Y' r
    from dual
    UNION ALL
    select 'NO' d, 'N' r
    from dual
    So, to recap, I can set up a Radio Group (query based LOV), but if I do, the query of the table will not pull in the current value from the table. If I change the 'Display As' Column Attribute to 'Standard Report Column', I can no longer incorporate the LOV. Please help if you have any ideas.

    I am not 100% sure what you are trying to do but I think I am close. Try using
    SELECT apex_item.radio_group_from_query
              (37,
               my_field,
               'SELECT ''YES'' d, ''Y'' r FROM dual
                UNION ALL
                SELECT  ''NO'' d, ''N'' r FROM dual'
              ) AS my_field
      FROM my_tableDenes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.apress.com/9781430235125
    http://apex.oracle.com/pls/otn/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • Problem in saving BLOB on a manual tabular form

    Hi All,
    I have a manual tabular form which has one column as file browse (blob). When I browse and select some file to save with the row, it saves only the name of the file, not the actual file.
    The example form is available on apex.oracle.com. The page has a process called SAVE which is supposed to save the record with blob.
    Workspace: bobforum
    user: forum
    password: abc123
    Application: 39196
    Page: 1
    I will appreciate if someone can help.
    Thanks,
    Zkay

    Hi,
    What I did check, apex_application.g_fnn array do not work for this.
    From Google I did found that it has work in previous APEX version.
    Something has changed and e.g. Denis example for multiple file browser do not work anymore.
    http://htmldb.oracle.com/pls/otn/f?p=31517:161
    I did manage upload files to wwv_flow_files table when using apex_application.g_xnn.
    I did add derived column to report. To HTML expression I did place
    <input type="file" name="x0#ROWNUM#" />
    This way you could have report that shows max 20 rows in pagination page.
    But I did not find way to identify file uploaded to flow files.
    In After submit process apex_application.g_xnn seems have null value,
    so I could not query wwv_flow_files by name column and insert file to my own table.
    Regards,
    Jari

  • Manual Tabular form

    Hi everyone,
    I have created a maual tabular form with the help of (HOW TO) document in OTN.For that I wrote maual update and manual delete process and evething is working fine.But in the manual update process i did not include the code to compare the checksum of the submitted data with the old data (still its working fine).But in my application i have created several manual tabular forms like this .Do the application get any problem in the futher as i am not checking the checksum.If i compare the checksum i am getting error.I decoded that error by
    inserting the checksum values to a (test table).The checksum values for a row is changing even if there is no change in the data of the table.
    any suggestions please
    Here is my code
    declare
    l_cks wwv_flow_global.vc_arr2;
    j pls_integer := 1;
    begin
    -- Get original MD5 checksum
    -- select wwv_flow_item.md5( column1,column2,column3,column4) 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 EMP
    for i in 1..htmldb_application.g_f07.count
    loop
    if htmldb_application.g_f07(i) is not null then
    update table
    set
    column2 = replace(htmldb_application.g_f08(i),'%'||'null%',NULL)
    where column1 = htmldb_application.g_f07(i);
    else
    if htmldb_application.g_f08(i) is not null then
    insert into table
    ( column1 ,
    column2,
    column3)
    values
    replace(htmldb_application.g_f08(i),'%'||'null%',NULL));
    end if;
    end if;
    end loop;
    end;
    Thanks
    phani

    Phani,
    I don't understand what you have working, what does not work, and what that code does (much of it is commented out). Can you put an example on apex.oracle.com that shows the problem?
    Scott

  • 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

Maybe you are looking for

  • Best way to export and import data from an iPhone app?

    How do people here prefer to export and import data from an iPhone app? For example, suppose your app creates or modifies a plist. It might be nice to provide that plist to the user for separate backup and later allow them to re-import it. How do peo

  • Reg: Error in Data Template ( java.sql.SQLException: ORA-00900: invalid SQL

    Hi Experts, Good Morning.. I registered the data template which i created in oracle apps and while i run that, ended in error... Plz help me.. Step :-1 Used Data Template as below:- <?xml version="1.0" encoding="WINDOWS-1252" ?> <dataTemplate name="E

  • Migrating system to 4k-sector HDD

    My original 512-bytes sector hard disk couldn't pass SMART test, so I decided to  change it. Have bought a new one 2tb HDD. But then I found out that there is a problem cloning partitions to my new disk, because it has 4k sector size.  Is there a way

  • Photos won't open a library that you already migrated

    I am in Malaysia, where can I get iPhoto 9.6.1? I have tried to get from App Store iPhoto and message appeared as " Not available in your coun

  • Mulitple hard drives that i do not want Guest account to be able to access

    i have a MacPro with 10.5.5. i have my main hard drive, one for time machine, one for my iTunes library and another for iPhoto library. i also have three external hard drives to back up all of the above. i would like to set up a guest account that ha