Create Tabular Form On Non Tabular Data

Hi,
I'm not sure if this is possible.
We have an existing process the project manager enters the users time again projects this i done row by row so the results are
User Project Wk Hrs
A 1 1 8
A 1 2 4
A 1 3 3
A 1 4 1
B 1 2 5
B 1 3 2
D 1 1 7
D 1 3 8
I dont want to change the existing table structure as this is used by other preorts but I would like to change the data entry form to something like this
Project 1
Wk1 Wk2 Wk3 Wk4
User A 8 4 3 1
User B 5 2
User C
User D 7 8
Any idea how best I could achieve this, all ideas would be appreciated?
Thanks

Hi Andy,
you'd need an updateable pivot table (crosstab) - there is no out-of-the-box solution for this ... but a combination of existing how tos will do the trick.
First: generate the crosstab (as an APEX report):
Crosstables (Pivot tables) with SQL ...
Second: Create a tabular form on the crosstab report manually:
http://www.oracle.com/technology/products/database/application_express/howtos/tabular_form.html
I have a german how to which explains the full process - even if you don't understand german the embedded code might help you ...
http://www.oracle.com/global/de/community/tipps/kreuztabelle-edit/index.html
Best regards
-Carsten

Similar Messages

  • Collapsed Tabular Form Heading when "No data found".

    The ' Collapsed Tabular Form Heading when "No data found" ' problem (speculated to be bug 9893564) is discussed here: {message:id=4419231}. Warning link is out of date. I'm still seeing it in APEX 4.2.
    I support Kelly's comments "looks like something is broken" and "Now this header (which is sized smaller before data is retrieved) comes between the search items and the help message and looks clumsy.".{message:id=9185914}.
    Any suggestion to get around it when no data is found?
    1) Is there a way to hide the header when there is no data? Or,
    2) Is there a way to adjust the width of the columns if the header must display? I'd like them to be about what they are when data is displayed. I know those lengths but not how to affect the header width for a tabular report with no data.
    Example:
    WS APEX_EXAMPLES_01
    demo
    demo
    Appl 78329 Tabular Form - page 1. (I forced query not to find any data for demo purposes.)
    Thanks,
    Howard

    Howard (... in Training) wrote:
    Paul --
    Great! So many new techniques here -- new to me. Generally, I much prefer positive logic as well. But this solution seems to have more pieces than the other.There is method in that.
    Firstly, with Aljaz's approach you can see a flicker as the tabular form is actually rendered and then hidden when the script in the footer is eventually run. This will be more apparent with a longer or more complicated page where it takes longer to reach the script and more content needs to be adjusted following removal of the form. Reversing the logic and hiding the form using CSS in the page header prevents this as the form elements are initially created as hidden nodes in the DOM before any of the page is rendered.
    More important is that this approach applies the principles of the separation of concerns and unobtrusive JavaScript. At some point when developing in APEX you're going to find yourself seriously losing your cool in a situation where you know the app is executing some JavaScript, but you can't find where that script is defined (maybe you've already been there). Look at the page 2 definition using the tree view: where's the JavaScript that is going to run? Now look at page 1: ah, there are a couple of dynamic actions...
    APEX now includes a lot of containers specifically for JavaScript: File URLs, Function and Global Variable Declaration and Execute when Page Loads in page templates and page headers, and declarative and custom Execute JS Code Dynamic Actions. These provide for good separation of concerns: we should use these locations for JS code, and avoid the exasperation of hunting through templates, page/region headers/footers, page 0 regions, pre-/post-element text or wherever to find the script we can see in the page source or JS debugger.
    Aljaz's solution also depends on detecting the presence of the No Data Found message with class <tt>nodatafound</tt>, and on modifying the Add Row button.
    What if someone changes the class of the No Data Found message in the report attributes? The Exists... condition on the dynamic action performs this check in a more direct way (although it's not ideal: DRY is violated by having both 2 copies and 2 executions of the report SQL; nor is it reusable on other form regions).
    Modifying the Add Row button JavaScript directly is intrusive. Like footers and templates, it's another non-obvious location for JS customisation. By using a dynamic action to bind another click handler to the button we're making the modification more obvious, and more importantly we don't have to modify what it's already doing&mdash;or in this instance, even care what that is (in other circumstances we might need to change the order or propagation of events, or suppress the original behaviour).
    As for reusability, my original solution didn't really consider this (as it wasn't mentioned in the OP). Since the subject has been raised, and in accordance with my comments above, I'd approach it in a different way.
    As discussed, I suggest not squirrelling JavaScript away in region templates. I'd create a reusable report template for tabular forms rather than a region one. A <tt>class</tt> defined on the report container there will provide a more direct selector for hide/show behaviour. I'd stick to initially hiding this report via CSS, and use dynamic actions defined on the global page to conditionally show it on page load and bind show behaviour to the Add Row button click. To make these DAs reusable I'd remove the Exists... condition from the first one and replace it with a JS condition that checks to see if the tabular form report contains any visible data rows (the class on the report template will help there as well). Binding the show behaviour to the Add Row button would use the <tt>onclick</tt> attribute as a selector (rather than an ID selector that requires an intrusive edit of the button) so that all Add Row buttons would be affected: <tt>$('button[onclick^="apex.widget.tabular.addRow"]')</tt>.
    And about the style code:
    #report_tabular-form,
    #report_tabular-form .report-standard {
    min-width: 90%;
    } That is an improvement. I had read about it but not considered it for this. I tried the technique used to adjust column width on other reports but when I use "div," it makes the data in that column display only. I really want to adjust the width of the individual column header. Is there a way to do that?I'm not really clear what you're asking here. (Use "div"? Where? How?)
    To control the width of individual report column headers, use the following CSS:
    th#COLUMN_ALIAS {
      width: 10em;
    }Where <tt>COLUMN_ALIAS</tt> is the alias of the column in the query: APEX uses this as the HTML <tt>id</tt> attribute for the column table header element. (Note that <tt>id</tt> attributes must be unique within a document, so it the same column appears in multiple reports/forms, ensure each column alias is unique.)

  • Tabular form with non base table field

    I want to develop a tabular form with
    1. A non-base table edit field to accept a value
    2. Insert/update another table based on the input value
    3. Also, computed field on each row based on other fields on the records (like post-query trigger in oracle forms at block level - for each row)
    Thanks,
    Rachna

    Thanks for your reply.
    Varad, I like the link you sent me. It has a lot of good information.
    I created a process (under page processing) called "Update/Insert Process" that dosn't seem to be working.
    Question, I created a manual tabular form with SQL Query and created a process (under page processing) called "Update/Insert Process", then I check for each record in the tabular form. If the old value <> new value then I update/insert in the new table.
    Any step by step will be highly apprciated - to create process/validation etc.
    Thanks,
    Rachna

  • How to create editable form with non-updatable vo

    Hi,
    i need to create a new form on non-updatable VO.
    My requirement is: i have Data base View, based on that view i have created VO, based on this VO i need to create new form, when ever i submit a request, web service will invoke and that validate the data and sends to the data base.
    when ever i drag drop the vo i couldn't able to enter any data bcoz all the data are coming in the form of output boxes.
    can any one help how can i create this.

    Check the setting of your viewobject attributes settings, most probably they are 'updatable never', set them to "updatable always".
    This way you can drag the view as an editable form.
    About sendind data to the database, i guess you have an idea how to do it afterwards :)

  • How to Add Detail Tabular Form within Master Tabular Form?

    Hi,
    Here is my requirement
    I have a tabular form lets say DEPT. I want to add plus [+] button in first column.
    If user click on plus button I want expand detail region and want to display All employees of that department in detail region.
    User should be able to add/update/delete employees in detail region for respective department.
    Has any one done this before.
    I have seen this on number web sites but did not find feature/template to do this in Oracle APEX.
    If any one has template of such form then please let me know.
    Thanks in advance for your help.
    Thanks,
    Devidas Dumbre

    Does any one has any solution for this?

  • Sharepoint 2007 - Creating a form to capture timesheets data, but need to track updates to previously submitted data

    Hi,
    We are using a basic version of Sharepoint 2007 and do not have access to InfoPath. I have created a list to allow team members to submit their weekly time on specific activities.  How do I go about tracking any changes to previously submitted data?
    For instance, a team member enters 5 hours for Activity 1 and submits on April 1.  on April 10 they realize they submitted too few hours and want to go in to edit the 5 hours to 12 hours.
    From a reporting perspective we already pulled a report (export to excel) and have the 5 hours listed for April 1. If the user goes in to edit their time sheet from April 1, we don't want the data to just override the 5 hours, we want some sort of flag to
    show the hours went from 5 to 12 hours.  How do we do this?
    As a work around, I added a question at the beginning of the survey/list asking is this a new submission or an edit. I thought if they select edit and were taken to a screen that allowed them to select the date (April 1), the activity and the new hours that
    I would have all of the previous data plus these 3 columns with the additional data: "Edit", "Activity 1", "12".  Instead the original data was over written and all I show are blanks for the previous questions and the edited
    info ("Edit", "Activity 1", "12").
    What suggestions do you have so that I can maintain the integrity of the original data and flag for my Project Manager which data needs to be changed in previous reports.
    Thanks in advance!
    AA

    I think the best way to answer your question would be to create a simple form and try various submissions. Be aware that unless the e-mail system is controlled, e-mail submission is not recommended due to client configuration issues of e-mail. Your question sounds like online submission would already be something you are comfortable with. In that case you can submit form data in 3 different ways: HTML, FDF, or XML. It can also be submitted as a PDF by saving the form, but that does not sound like what you need and also gets into issues of whether folks are using Reader or Acrobat.
    Also be careful (or try both) about using forms from within Acrobat and the forms created by the link in Acrobat to Designer. Once you go to Designer with the form you can not come back for editing in Acrobat. Normally you would create the basic form in a word processor or layout tool and then add the form fields in Acrobat (or Designer if that is preferred).
    I will let others address the anonymous and yet confirmation check issue.

  • How to create Infopath form that auto populate data from one list to be fill by another user?

    hi.  I would like to ask, how to create form that fill by User A, for example, and then the User A assigned task to User B to complete the form. Next, the form will be approved by approver. May I know how to do
    that? and if possible, I do not want to use any programming code.
    Azuaniza Ariffin

    Hi,
    If your SharePoint environment supports InfoPath Forms, then you can customize the form and add rules to make the list items as read only when user A submits the form.
    you can then write a form load event to check the logged in user using username() function. This logic can be implemented in variety of ways, like setting a flag when User A submits the form, or storing user A username in a form variable etc., else comparing
    User A and User B values within form Load event.
    Another way of doing this is using Views or grouping all of the User A fields within a section etc.,
    The above would take care of Form logic, and for the workflow, you can use SharePoint designer to create a custom workflow, where it will run on onItemCreate and onItemChange events.
    The logic for workflow would be if the form Submitted for the first time, the workflow will start and send an email to User B, and when User B submits the Data then onItemChange change event will start the workflow to send an email to approver to approve
    the data.
    here are some links for your reference -
    http://office.microsoft.com/en-us/infopath-help/add-formulas-and-functions-in-infopath-2010-HA101821255.aspx
    http://office.microsoft.com/en-us/videos/video-create-an-approval-workflow-in-sharepoint-designer-2010-VA101897477.aspx
    http://blogs.technet.com/b/meacoex/archive/2010/11/01/get-manager-approval-in-sharepoint-designer-2010-step-by-step.aspx
    Hope this helps!
    Ram - SharePoint Architect
    Blog - SharePointDeveloper.in
    Please vote or mark your question answered, if my reply helps you

  • Create unique Form ID - Help on Date Format in Concat

    I am having problems formating a date value in my concat statement.  I have tried to write is different ways and still can't seem to get the string correct.
    Ideally, I would like to change the date value to a Julian value for the form ID, but I would settle for just mmddyy value without the / or - in between.
    Codes I have tried w/out date format string
    JavaScript - Calculate
    Program.FormID.rawValue=Program.State.rawValue + Program.ProgramNumber.rawValue + Program.ProgramDate.formattedValue;
    Returns - MO1234Jul8,2010  
    -------------And--------------------
    Program.FormID.rawValue=Program.State.rawValue + Program.ProgramNumber.rawValue + Program.ProgramDate.rawValue;
    Returns - MO12342010-07-08
    FormCalc - Calculate 
    (This one has the current date as a value, but it changes the unique form ID when reopened on another day, that is why I am using ProgramDate)
    Concat(Date2Num(Date(), "ddmmyyy"),Program.State.rawValue, Program.ProgramNumber.rawValue)
    Returns - 0MO1234
    ----------- And --------------------
    if 
    (Program.ProgramNumber.rawValue ne null) then
    $.rawValue
    = CONCAT(Program.State.rawValue, Program.ProgramNumber.rawValue, Program.ProgramDate.formattedValue)
    else
    $.rawValue = ""
    endif 
    Returns - MO1234July8,2010  (formattedValue)
                  MO12342010-07-08 (rawValue)
    What would be the better  language to use, FormCalc or JavaScript for this example?
    I am not all that skilled at coding and use forums like this to help me, so I appreciate any help.
    Thanks in advance - Eve

    Date.prototype.yyyymmdd = function() {
       var yyyy = this.getFullYear().toString();
       var mm = (this.getMonth()+1).toString(); // getMonth() is zero-based
       var dd  = this.getDate().toString();
       return yyyy + (mm[1]?mm:"0"+mm[0]) + (dd[1]?dd:"0"+dd[0]); // padding
    Now, after having spliced the internal Date object, you can do this:
    d = new Date();
    d.yyyymmdd();
    The line above returns today's date: "20100709".

  • Unable to Update Collection from Tabular Form

    I have built several Tabular Forms where I have updated the apex_collection with the data entered into the form. Then I loop thru the collection and update the database.
    I now Copy a working form to create a new form using data from a different table. All I am doing is changing the underly apec_collection with a different select statement and give it a new collection name. The number of columns on the tabular form are the same as the working form.
    Now I run the form and I get ORA-01403: no data found Error UNABLE to UPDATE ROWS
    It is acting like it is not finding any data from the collection. But I put in the same selection critera for the update into a report below the tabular form and I see data just fine.
    Here is the code I am using to update the collection when the SAVE button is pressed (Process on Submit before Calculations).
    begin
    for c1 in (
    select seq_id from apex_collections
    where collection_name = 'IPR_MATRIX' and c001 = :P21_FACILITY
    and c002 = :P21_DEPT
    order by seq_id) loop
    c := c+1;
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>5,p_attr_value=>wwv_flow.g_f01(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>6,p_attr_value=>wwv_flow.g_f02(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>7,p_attr_value=>wwv_flow.g_f03(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>8,p_attr_value=>wwv_flow.g_f04(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>9,p_attr_value=>wwv_flow.g_f05(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>10,p_attr_value=>wwv_flow.g_f06(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>11,p_attr_value=>wwv_flow.g_f07(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>12,p_attr_value=>wwv_flow.g_f08(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>13,p_attr_value=>wwv_flow.g_f09(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>14,p_attr_value=>wwv_flow.g_f10(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>15,p_attr_value=>wwv_flow.g_f11(c));
    apex_collection.update_member_attribute (p_collection_name=> 'IPR_MATRIX',
    p_seq=> c1.seq_id,p_attr_number =>16,p_attr_value=>wwv_flow.g_f12(c));
    end loop;
    end;
    Any Ideas what I am doing wrong?

    c is set to 0
    It looks like I may have found my problem.
    There tabular form is limited by a where clause in the report to a subset of the collection. Making the collection match the same where clause seems to have fixed my problem.
    Not clear on why that works like that but it looks like I may have it working.

  • 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

  • Tabular Form Validation Help

    Version 2.0
    I have a Tabular Form that represents Show dates. There are three displayed fields: Description (Text Field), Date (Date Picker), and Active (Static Select List: Yes;1,No,0).
    I need help to create a page validation to make sure that only one show is ACTIVE at a time when the row is submitted.
    Thanks,
    Joe

    On the database side, I use the following technique to implement a "radiobutton" constraint. I think I picked it up from AskTom.
    If you have a table like
    create table t
      show_id int,
      show_date varchar2(50),
      active_flag varchar2(1),
      constraint t#pk primary key (show_id,show_date)
    );which is what I think your data model looks like.
    You want to ensure that for a given show, only 1 show_date is active (radiobutton-style).
    Create the following function-based index on the table
    create unique index i on t(decode(active_flag,'Y',show_id));This will prevent invalid data from getting into the table, no matter what.
    Regarding your Apex issue, I would suggest that when you add a row to the tabular form, default the select list to Inactive. You can use client-side Javascript to do some toggling of the select lists, but that really assumes that all the rows are being shown in the tabular form. In any case, the unique index above would guarantee data integrity when the data finally hits the database.
    Hope this helps.

  • Java script is not working in custom tabular form

    hai all,
    i have changed my built in tabular form to custom tabular form.my java script is coding working fine in built in tabular form . But in my custom tabular form java script is not working ,since it is created as standard report(Display As).
    pls help me.
    with thanks and regards
    sivakumar.G

    Is the appostrophe function test(pthis) *'* present in your javascript code...
    If not can you post the same in apex.oracle.com and give the credential so that I can the why its not wroking
    Regards,
    Shijesh

  • How to set a default tabular form value?

    I am trying to set a default value for a tabular form.
    In Tabular Form Element:
    ========================
    Display as: Date Picker
    Formet: Date Picker (DD-MON-RR)
    Default Type: Item (application or page item name)
    Default P2_DATE
    My item P2_DATE is set as:
    ==========================
    Date Picker (DD-MON-RR)
    However when I try to add a row with a default date I get this error:
    report error:
    ORA-01790: expression must have same datatype as corresponding expression
    Any ideas?
    Regards,
    Pawel.

    Sorry for spamming but found a solution:
    which was to change the type into PL/SQL Expression like so:
    to_date(:P301_PROJECT_XFR_DATE,'DD/MM/YYYY')
    This is the format I used in P2_DATE...
    Regards.

  • Tabular forms, referencing current row and using checkboxes

    I've searched through the whole forum and read over 50 threads on referencing other columns in a tabular form only to find this impossible. Many of these threads were outdated so I would like to ask it again.
    Can I use references between columns of tabular forms? So that value of one column equals the other's. (select a, b from c where d=othercolumn)
    How can I get a workaround for lack of checkboxes in dynamically created tabular forms? (Standard tabular forms come with checkboxes for deleting multiple rows, can they be used in the same way but without writing manual reports?)
    Please do not send me to
    http://htmldb.oracle.com/pls/otn/f?p=18326:54:17962256093711784584::::P54_ID:1282
    I am looking for strictly dynamic, apex-like solution. Thanks in advance.

    That supposed to be a query for LOV, should have mentioned that probably. By dynamically created tabular form I mean the wizard-created form which transforms query results into a form on the fly. I consider the HTMLDB_ITEM-style the manual way. After all, I'll probably stick to the manual method because I am creating this form on a view with INSTEAD OF triggers so the processing still needs to be done separately.
    The question I asked referred to the internals of tabular forms' processing, behind the screen wizards there has to be some loop based on the query, I just wanted to reference other columns on the current iteration. (wwv.g_f01(0) ?...)

  • Using tabular form wizard

    I created a tabular form using the Tabular Form Wizard. It works fine. Then, I added a region to this. The source of the region is an SQL Query. For some reason the new region does not display on the page when the page is run.
    However, when I create the same region with the same SQL source on another page, it displays fine.
    Why would this be?
    Thanks.

    "420716"
    Are you sure you created the SQL query region on the same page? Check the page definition to see if it's actually there. How did you go about doing this, where did you click, etc? If you have this running on htmldb.oracle.com and give us the details, we can have a look.
    Sergio

Maybe you are looking for