Date popup validation in manual tabular form

Hey all-
I'm creating a tabular form manually (i.e., with apex_collection) per instructions at OBE (http://www.oracle.com/technology/products/database/application_express/ppt/odtug2008_marcie_young.pdf). Working fine, except I'm having a problem with apex_item.date_popup.
One of the fields I need to collect from the tabular form is a date. For the SQL report, the relevant item is apex_item.date_popup(9, null, c008, 'YYYY-MM-DD', 20, 10) (and c008 is the relevant column from the collection). The trouble comes in if a user types a bogus date into the date popup. I have validation code to check this, but before running that code, I have to store the user's new entries into the collection. So basically my steps are:
1. display the tabular form w/ a SQL report containing apex_item.date_popup
2. use an update collection PL/SQL process to store the user data into the collection (process point = On Submit and Before Computation)
3. use a validation PL/SQL process to verify the data in the collection before processing the update
All that works, and the validation identifies the bad date. But then the page tries to render the tabular form again (so the user can fix the bad date), but the apex_item.date_popup(9, null, c008, 'YYYY-MM-DD', 20, 10) column fails b/c of the bad date. I need a way to programmatically create a date popup and populate it with (potentially) invalid data. Any ideas?
Thanks
Rob

Problem solved. Tossed the lackluster apex_item.date_popup and replaced w/ jQuery datepicker.
Rob

Similar Messages

  • 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

  • Sorting on date (date_popup2) in manual tabular form does not work

    Hi All,
    I created a manual tabular form (based on a collection) with 1 date_popup2 field in it. This field is defined in the query as follows:
    ,      apex_item.date_popup2( p_idx                   => 18
                                , p_value                 => c004
                                , p_date_format           => 'dd-mm-yyyy'
                                , p_item_id               => 'f18_' || lpad (rownum, 4, '0')
                                , p_item_label            => 'Start date'
                                ) as tf_br_start_date
    In the report attributes I marked this column to be sortable.
    However, in the page the sorting is not working. It looks like it's always sorted in the order  of the seq_id.
    Can anyone tell me how to solve this?
    Regards,
    René

    I'd call it a bug/missing feature.
    It appears that within a Basic report, sorting on a column created using APEX_ITEM.DATE_POPUP2() does not sort by date.
    I'd file this with Oracle Support and see what they say.
    Include a link to this thread and your workspace login information.
    I got something to work by: (probably not what you want.)
    using the C004 column directly. (I just added it to the SQL code)
    setting the column's attribute "Display As" to "Date Picker"
    setting the column's attribute "Number /Date Format" to DD-MM-YYYY
    I suspect: since you don't start with p_idx => 1, this column becomes "1" ==> g_f01
    MK

  • Date Picker on Manual Tabular form not working on 4.1 upgrade from 4.0

    Hi
    my application is upgrade from Apex 4.0 to 4.1 .
    Oracle DB is 11g.
    I have a manual tabular form with a date field:- apex_item.text(12,null,15,15,'class="datepicker3"') as end_date, After upgrade to 4.1 it's not working .
    I changed the code to:- apex_item.date_popup2(12,null,15,15) as end_date, still not working .
    I have to use apex_item.date_popup2 .
    Thanks in advance !!!
    -Amu

    Hi Diana,
    Is this you are trying to achieve:
    piepdate = startdate + typeduration
    The id attribute of the items in normal or APEX_ITEM based tabular form are of the type:
    fxx_xxxx
    For example: f10_0001, f10_0002, ..., f10_0010.
    So, correct the vRow variable accordingly
    >
    // get row
    var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
    >
    Hope it helps!
    Regards,
    Kiran

  • 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

  • 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

  • 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

  • Display select list from query on manual tabular form

    Hello,
    I'm trying to display a select list from query on a manual tabular form. I'm using a collection to store the data. I can't seem to get the query to work. I can display the item as a text item. Any help would be appreciated. Thanks, Elizabeth.
    SELECT
    -- Notice how I'm keeping the idx value the same as the column value in the collection. This helps to keep things organized
    -- I also apply an id to each entry
    -- I append the error value to the empname and sal
    -- The Seq_id. Usefull when hiding rows (for delete) and then submitting from
    apex_item.hidden(1,x.seq_id, null, x.seq_id || '_seq_id') ||
    -- The Primary Key of the column
    apex_item.hidden(2, x.ceah_people_id, null, x.seq_id || '_ceah_people_id') || x.ceah_people_id ceah_people_id,
    -- Employee Name
    case when x.seq_id = -1
    then
    apex_item.select_list_from_query (3,
    NULL,
    'select distinct language_name d, '
    || 'language_id r from foreign_language',
    'style="width:170px" ' ,
    'YES',
    '0',
    '- Select Language -',
    'x.seq_id_' || LPAD (9900 + LEVEL, 4, '0'),
    NULL,
    'NO'
    else
    apex_item.text (3,(select language_name from foreign_language where x.language_id = foreign_language.language_id),
    80,
    100,
    'style="width:170px" readonly="readonly"',
    'f32_' || LPAD (ROWNUM, 4, '0')
    end
    || err.language_id language_id,
    /* apex_item.text(3,x.language_id,null, null, null, x.seq_id || '_language_id') || err.language_id language_id,
    -- Employee Salary
    apex_item.text(4,x.proficiency, null, null, null, x.seq_id || '_proficiency') || err.proficiency ||
    -- Store the sql action type as well.
    apex_item.hidden(50,x.sql_action_typ, null, x.seq_id || '_sql_action_typ_id') proficiency,
    -- Last but not least the row error
    err.row_error
    FROM (SELECT ac.c001 seq_id,
    ac.c002 ceah_people_id,
    ac.c003 language_id,
    ac.c004 proficiency,
    ac.c049 modifiable_flag,
    ac.c050 sql_action_typ
    FROM apex_collections ac
    WHERE ac.collection_name = 'DATA_COLLECTION'
    ORDER BY ac.seq_id) x,
    -- Error Collection
    (SELECT ac.seq_id seq_id,
    ac.c002 ceah_people_id,
    ac.c003 language_id,
    ac.c004 proficiency,
    ac.c050 row_error -- Useful when individual data is correct, however the row of data is not. Ex: start/end dates
    FROM apex_collections ac
    WHERE ac.collection_name = 'ERROR_COLLECTION'
    ORDER BY ac.seq_id) err
    WHERE x.seq_id = err.seq_id(+)

    I got so frustrated I started over. I'm following the how to create a manual form.
    http://www.oracle.com/technology/products/database/application_express/howtos/tabular_form.html#MANUAL
    The problem I'm now having is even though I display items as hidden, there is a column holder on the report for them. If I go into the report attributes and toggle the show attribute off I cannot reference an items value in my logic. I used /&nbsp/ for the column heading but I still get the little sort arrow where the column heading should be. I tried to toggle the sort attribute off but the sort arrow still shows up. How can I use the apex_item.hidden and not get a place holder for the column on a report? Thanks, Elizabeth
    Here is the code I'm using to generate the report:
    select x.ceah_people_lang_id,
    x.language_id,
    x.proficiency,
    x.ceah_people_id
    from (
    select apex_item.hidden(1,ceah_people_lang_id) ceah_people_lang_id,
    apex_item.select_list_from_query(2,language_id,'select language_name, language_id from foreign_language') language_id,
    apex_item.select_list_from_query(3,proficiency,'select name, id from proficiency') proficiency,
    apex_item.hidden(4,ceah_people_id) ceah_people_id
    from ceah_people_language where ceah_people_language.ceah_people_id = :P152_person_id
    union all
    select apex_item.hidden(1,null) ceah_people_lang_id,
    apex_item.select_list_from_query(2,null,'select language_name, language_id from foreign_language') language_id,
    apex_item.select_list_from_query(3,null,'select name, id from proficiency') proficiency,
    apex_item.hidden(4,null) ceah_people_id
    from dual) x

  • 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 :)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • 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

  • Document.getElementById Manual Tabular Form

    Hi,
    I’m working with APEX 4.1 and a manual tabular form.
    I have a page level validation process that fires and ensures that the value in column 1 does not match the value in column 6. When it does it pops up an error message along the lines of: The project MY PROJECT (Row2) cannot be a default of itself.
    That all works as it should but the bit I cannot figure out how to do is a background colour change in either the column 1 field of the invalid row or the entire invalid row.
    The code (function returning and error) I’m using is:
    DECLARE
    l_error VARCHAR2 (4000);
    BEGIN
    FOR i IN 1 .. apex_application.g_f49.count
    LOOP
    IF apex_application.g_f01(i) = NVL (apex_application.g_f06(i), -1)
    THEN
    l_error := l_error
    || CASE
    WHEN l_error IS NULL
    THEN NULL
    ELSE '
    END
    || ' The project '
    -- Project name
    || apex_application.g_f02(i)
    || ' '
    -- I believe it is this bit that is wrong
    || '<a onclick="document.getElementById('''
    || 'f02_'
    || LPAD (i, 4, '0')
    || ''').style.background =''#FCCFCC'';'
    || '$f_First_field('''
    || 'f02_'
    || LPAD (i, 4, '0')
    || ''')'
    || '" href="#"'
    || '>'*/
    -- Get the row
    || '(Row ' || i || ')'
    || '</a>'
    || ' cannot be it''s own default. '
    END IF;
    END LOOP;
    RETURN LTRIM (l_error, '</br>');
    END;
    Would someone be so kind as to point out the error of my ways?
    Many thanks for your time,
    Danny
    Edited by: DannyC on Oct 14, 2011 1:29 AM

    Hi Sanjay,
    Change the Report Column display type to Standard Report Column.
    Cheers

Maybe you are looking for

  • How to group photos in folders, in the main photos app in my iphone4 ?

    How to group photos in folders, in the main photos app in my iphone4 ?

  • Gl entrey view in f-03

    hi, IN T-code f-03 can we see the profit center by general ledger view instead of Entry ledger view ?

  • Trouble Viewing 3D PDF with Windows XP  after installing Adobe Reader X

    Hi, I have updated my Adobe Reader X last week ( April 2012 ) and since then I am having trouble viewing 3D PDF on my web browser, both IE 8 and Firefox. I am using Windows XP. The warning message I got are shown as follow: "Some features have been d

  • IPod in Car. Options?

    i've been told that iTrip doesn't work on this iPod. i know that the cassette player thing works, but when i bought my car this year, i really never thought that i would have any use for a cassette player, so i don't have one... i saw something simil

  • Regarding PRODUCT DIMENSION

    Hi Gurus, I found two mappings in SDE_ORA11510_Adaptor folder related to product dimension. 1.SDE_ORA_Product_Categories_Derive(Mapping)-->SDE_ORA_Product_Categories_Derive(Workflow/Task) 2.SDE_ORA_Product_Category_Derive(Mapping)-->SDE_ORA_Product_C