Creating Multi-record Form

In 9.02 how do you create a form that displays multi-records? I have seen some threads about possibly creating a master/detail form (with some trickery) as a work-around.

Hi
I couldn't get your point... With forms the user are able to save data periodically and still continue inserting data... For example, if your users have to insert 100 records, they can insert 10, save the data to the database, then insert more 10 and so on. Except if you just want to commit once when all the records have been inserted. If this is the case, you can use a non-displayed control item of default value $$dbdate$$ - this way, I think that when the user inserts a new record, forms have to query the database to get the date...
If I got you wrong, could you give more details?

Similar Messages

  • Updating current record using SET_CUSTOM_PROPERTY in a multi-record form

    Hi,
    I have a multi record form and am using the SET_CUSTOM_PROPERTY method in the when validate trigger of an item. The problem is that it updates all records in the form instead of updating just the current record.
    Any inputs to resolve this would be helpful.
    Thanks

    I cannot reproduce the issue here.
    I have modified the sample dialog shipped with th article to have a block that displays 2 records
    <p>See the screenshot here</p>
    Here is the code in the When-Button-Pressed trigger:
      Set_Custom_Property( 'BLZ.BEAN', 1, 'READIMGFILE', 'd:/coyote.jpg' ) ;
      Set_Custom_Property( 'BLZ.BEAN', 2, 'READIMGFILE', 'd:/oracle_community.gif' ) ;So everything is ok for me.
    Francois

  • Howto use an existing record as template in a create new record form

    hi all,
    I have a table with configuration lines, Currently accessible via a report/form combination. This works fine to create, view & edit data.
    However users often need to create a new record which is 90% like an existing record.
    So what they want is to go to an existing record and use it as template for creating a new record (by clicking a button "create copy from"
    My solution attempt
    -when the button is pressed send users to the normal create form, and prefill some of the items with data from the "template record", after which everything is the same as creating a record from scratch
    What did I try
    - as above redirect user to the "create page" and sent the desired items values via URL Syntax. Failed since I have about 20 items and the button settings won't allow me to add more then 10 (besides it not a pretty sight)
    - Instead of sending via URL I've tried only sending the record id for the template and have a "before header process" load the item values in session state. Failed since the page items are all (load form source each time) since they are database columns
    Constraints for the solution
    - No, I can't go first inserting a copy of the record and then display it in edit mode since the remaining 10% of the record can not to be copied because of table constraints. They have serious constraints, which needs user input.
    - (and no I can't first insert dummy data, that's a poor man's solution)
    - I'd like to reuse the current create/edit form since it contains quite some business rules and constraints. So dubbing the page will put me up with a double load of maintenance in case of future changes in business rules
    I'd appreciate any good clues in solving this requirement
    best regards,
    Geert

    Hi Shunt,
    Not entirely what I wanted accomplished but it held the key.
    Removing the PK wouldn't trigger the DML to respond differently on it's own, since the DML decides the database action based on the request.
    I have the create/edit page working on with a "COPY" request
    This way I can call the page both from the report as the form page.
    When called with COPY request the page is loaded as normal edit except
    - I hide the delete and apply changes button
    - I show the create button
    When the create button is pressed a computation removes the PK
    Since the create button is pressed instead of apply_changes it will indeed perform an insert
    Thanx again for the hint
    Sometimes you need an new perspective
    Geert

  • Clear form not working in multi record form 10g.

    I have a multi record block form, when sys_indicator is 'Y' in any of the records, user should not be able to delete this record. In Pre_delete trigger, I put this code
    below.
    IF :CST_REFERENCE_CODE.SYS_INDICATOR = 'Y'
         THEN
         MESSAGE('You cannot delete this record. Consult your Administrator');
         MESSAGE(' ');
         CLEAR_FORM(NO_VALIDATE);           EXECUTE_QUERY;
    --     RAISE FORM_TRIGGER_FAILURE;
         END IF;
    I want to clear form an re_query, but the clear form is not working. Help

    CLEAR_FORM is a restricted built-in and is not allowed on PRE-DELETE trigger.
    the purpose of PRE-DELETE trigger is to do some validation before the actual delete happens and may be delete the child records before the master record can be sucessfully deleted.
    it will be better if you could explain that why you need some different functionality on PRE-DELETE trigger, which looks strange. Like, user is trying to delete the record and you want to restrict user from deleting the record if some condition is met and want to re-query. what is the main purpose of doing query here again or why you want to clear the form.

  • Using sequence in multi record forms

    i have a post insert tigger which insert into a table which has multi record layout on the form. i want to insert the same value from the sequence into the table for the multi record.

    This seems too trivial to be the right answer to me. I am sure I am missing something but here goes:
    select seq_name.nextval from dual into package_name.seq_name_global;
    if this is a record in the block you want assign the common id to then
      table_id:=package_name.seq_name_global;
    end if;

  • Error in Multi Record Form. Record has been updated by another User?

    Hi,
    I ma developing Form with 3 blocks (Control Block, Database Block, Button Block). In the Button Block i am updating one Row by calling Program Units as shown below
    Select Print Id into Flag From <Table Name> Where <Conditions> For Update of <Column Name>. after calling this , i created another Program Unit as
    Update <Table Name>

    I assume that the table in your update statement is the same table as the one you based your block on.
    You are manually updating the table, and Forms see this as an update "by another user" (even though it's you). To see the changes you made in your update statement, you have to re-query.
    So, don't update yourself, let Forms do it. If you base a block on a table, everything is done for you by Forms.

  • Displaying Multi - Record Form

    Hi,
    How can i build a based table form, that dysplays, at the same time, by example 5 lines of one table. The users, may continue to do insert, update, query and delete like they do on Normal Forms. This Form, cannot be Master Detail.
    Is this Possible using the Oracle Portal wizards? If don't, it is possible somehow?
    If now some kind of help, please tell me something.
    Pedro Ribeiro

    Hi Suman
    IF :CUST_BLOCK.CUST_ID IS NOT NULL THEN
    GO_BLOCK('XBSI_CONTRACT_PRICE_FACTORS');
    first_record;
    FOR C1 IN C
    LOOP
    :XBSI_CONTRACT_PRICE_FACTORS.CUST_ID:=c1.site_use_id;
    :XBSI_CONTRACT_PRICE_FACTORS.CAT_ID:=c1.ipc_category_id;
    :XBSI_CONTRACT_PRICE_FACTORS.MFG_ID:=c1.mfg_category_id;
    :XBSI_CONTRACT_PRICE_FACTORS.INVENTORY_ITEM_ID:=c1.inventory_item_id;
    :XBSI_CONTRACT_PRICE_FACTORS.PRICE_BASIS:=c1.price_basis;
    :XBSI_CONTRACT_PRICE_FACTORS.PRICE_FACTOR:=c1.price_factor;
    next_record;
    END LOOP;
    Try this. you are trying to show all the records in same line. so its overlapping.
    Thankyou
    [email protected]

  • Multiple-record form

    HI Everybody,
    Could anyone be so kind to assist me in the following problem? I have built a master-detail form with several records displayed. Screen items are Read/Write, Read-only and text for domains in popup-lists (these will be populated at the beginning using a record group query). Now, when I have executed a query and there are some records fetched, I can click in any record below, thereby leaving empty records in between. This should not be allowed, because Forms--allegedly--always lets you have a single last record empty (for input), but only one!
    Thank you in advance, kind regards from
    Miklos HERBOLY

    Raj,
    The multi-record forms on tables currently are not supported by Portal. However, there is a creative workaround of using MD forms with one hidden field has been described in this topic:
    http://technet.oracle.com:89/ubb/Forum81/HTML/000757.html
    Thanks,
    Dmitry

  • Saving the record in multi-record block while updating

    Hi gurus
    I have a table name PT . Its is master table where PT_TYPE IS unique
    desc PT
    PT_TYPE VARCHAR2(2) unique,
    PT_CODE VARCHAR2(4),This is the detail table on which the form is being designed is meant for insert/update/delete.Insert and delete are working fine.
    desc PST
    PST_PT_type varchar2(2) unique,
    PST_A_code Varchar2(3) unique,
    PST_A_desc varchar2(10) The form layout is a multi-record form as below and based on PST table with PT_CODE as non-base table item & PST_PT_TYPE
    not displayed but its there in the block.
    FORM_LAYOUT
    PT_CODE PST_A_CODE PST_A_DESC
    ASD          AS          TESTAS
    ASD          AD TESTAD
    ASD DS TESTDS.
    Now the problem is when I am querying record through enter-query mode (say by entering PT_CODE 'ASD') and
    change one of the base table items(PST_A_CODE or PST_A_DESC) values and commit it. its says '1 records applied and save'
    but when I change ONE OF THE PT_CODE(non-base table item) values it says 3 records applied and saved. as the 3 records
    are currently displayed when querying

    Hi Craig,
    Both below program unit is in the WHEN-VALIDATE-ITEM of NBT item PT_CODE
    --this is to check that valid pt_code is entered
    PROCEDURE val_pt_code IS
         cursor val_cur is
         select pt_code
         from pt
         where pt_code =:pst.pt_code;
    v_dummy varchar2(12);
    BEGIN
    open val_cur;
    fetch val_cur into v_dummy;
    if val_cur%notfound then
    close val_cur;     
         warn_alert('Error:The Product Code entered does not exists');
         raise form_trigger_failure;
    end if;
    close val_cur;
    END;
    --this is to check that particular pt_type value is for the pt_code is selected
    PROCEDURE get_pt_type IS
         v_pt_type varchar2(2);
    begin
         select pt_type into v_pt_type
         from      pt
         where pt_code = :pst.pt_code;
         :pst.pt_type := v_pt_type;
    exception
         when no_data_found then
              warn_alert('Error:The Syllabus Type does not exists');
         raise form_trigger_failure;
    end;
    --

  • Return amount of records after query multi-record block

    Hello,
    I would like to have a restriction in my multi-record form that counts the amount of returning records (after execute_query). If the amount is >= 1000 then I have to raise an error.
    How can I implement this?
    Best regards,
    Ronny.

    It most cases forms doesn't return all rows to the user in a batch unless the block property Query-all is set to yes. But if you have sum items based on that block, you have to set it to Yes. If you can turn this flag off and change the Query Array Size (block property) to 0 or something small (like 20), you dont have to worry about how many rows the query is going to return.
    In you case, sounds like you want the user to put more constraints if rows returning > 1000 and you probably dont want the user to ever look those rows. You can do a
    select count(*) from your_table
    where --your critera
    and rownum < 1001
    before execute the query. But this select might take
    a while if you table is very big in oracle 9i.
    The easiest thing is to turn off the Query-All switch, let the forms handle the query and let the user decide whether to refine the query.

  • In oracle forms how to restrict creating new record

    I have a multi record block, I dont want to create new record. If I use the down key after the last record control is moving to next record. I dont want this to happen. I want to scroll between first and last record.
    Can anyone tell me ?

    Look up the Forms Help for 'system.last_record'.
    I'd code the KEY-DOWN trigger on the block as...
    IF :System.Last_Record = 'TRUE' THEN
    Bell;
    Message('You are on the last row');
    ELSE
    down;
    END IF;
    This avoids any processing or validation work being done on leaving the current record or creating the new record.

  • Querying a multi-record block within my form

    I have a form where I perform validations of items entered on my main block. I compare the item value entered to an expected value and if they are different then an exception record must be created in a separate, multi-record block within my application. One record on my main block may end up with multiple different exception records in the multi-record block. As a result, part of my validation must include determining whether the user has already created an exception record for the item that I'm validating in the multi-record block.
    Is there a way for me to query and uncomitted, multi-record block in my form? Help would be greatly appreciated!

    Andreas' method is good.
    Only several changes:
      LOOP... EXIT WHEN :SYSTEM.RECORD_STATUS='NEW';
    (Use NEW, not TRUE)
    And just before the Raise Form_Trigger_Failure, I would Go_Item to either the item in error, or to a new line in the exceptions block. And also issue an error message.
    ....By the way...
    If your exceptions block has more rows than will fit on the screen, then your search loop function will may cause the rows to jump up or down when the user tries to commit. There is a way to reset the view after the function completes its search -- you just need to store the value of the block's Top_Record property before the First_Record command, and then Go_Record(Top_Rec_value); after the function completes its loop.
    Also, there is a way to prompt the user to enter the exception record when you first validate the item in a when-validate-item trigger. But the user might ignore the prompt, so you still need to re-check everything from the key-commit process. To use the WVI prompting, in the WVI trigger you check if an exception is required. If it is, store the item name in a package variable, then start a non-repeating timer. When the timer expires, save the :System.cursor_item value (so you can go_item back to it after calling the function), and then call the function to check for the exception for the item named in the package variable. If not found, prompt the user. If found, go_item back to the cursor_item_value.

  • Multi-record / spread table...moveable fields in designer generated form

    Good morning all;
    I hope you are doing good...
    Imagine a multi-record block layout with it's overflow property set to spread-table to accomodate 10 varchar2(25) fields. Now, of the hundreds of users working with this generated form, not one of them wants to see the fields in the same order on the screen.
    What i would like to do is generate the form from designer so that a user could 'drag'n drop' let say, field #10 to the field #2 spot on the screen. Something like windows explorer where you can move the 'Size' column around so it is viewable without having to use the spread-table bar at the bottom of the screen...
    Any idea on how to generate this form from designer?
    Thank you and wish me luck!

    I don't know a solution, but I think a solution could be easier found if it was a read-only block. You did not specify that. Then maybe you could dynamically change the query behind the block.
    Good luck, Paul.

  • Creating a cfhttp multi part form post for google docs upload

    Hey all,
    If you saw my last thread, you know I am working with google docs and uploading documents to it. Well I got basic document uploading working, but now I am trying to include meta data. Google requires you to include the metadata with the actual file data and seperate them by using a multi part form upload. I don't know exactly the process for doing so, but they have a handy code snippet of the desired results at
    http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDoc s
    So I am basically trying to mimic that payload, however I am continually getting an error stating that there are no parts in a multi part form upload.
    <errors xmlns='http://schemas.google.com/g/2005'><error><domain>GData</domain><code>InvalidEntryException</code><internalReason>No parts detected in multipart message</internalReason></error></errors>
    to be exact. I am not really sure what I am doing wrong here. I figure it is one of two things, either I am not including the actual data in the payload properly (I am currently using a body type param for the payload, but I have also tried a formfield named content to deliver it. Neither worked). So maybe I need to do something else tricky there? The other thing which I am not reallly sure about is the content-length attribute. I don't know exactly how to calculate that, and I read in another forum that a content length attribute was messing that guy up. Right now I am just taking the lenght of the payload string and multiplying by 8 (to get the number of bytes for the entire payload) but hell if I know if that is right. It could be I just don't know how to set up the parts for the message, it seems pretty straight forward though. Just define a boundary in the content-type, then put two dashes before it wherever you define a new part, and two dashes trailing the last part.
    Anyway, here is my code, any help is much appreciate. I'm a bit beyond my expertise here (not really used to trying to have to roll my own http requests, nevermind multipart post form data) so I'm kinda flailing around. Thanks again.
    <cffunction name="upload" access="public" returnType="any" hint="I upload the document." output="false">
        <cfargument name="filePath" type="string" required="false" hint="file to upload.">
        <cfargument name="docType" type="string" required="yes" hint="The document type to identify this document see google list api supported documents">
        <cfargument name="parentCollectionId" type="string" required="no" hint="the name of the collection/collection to create (include collection%3A)">
        <cfargument name="metaData" type="struct" required="no" hint="structure containing meta data. Keyname is attribute name, value is the value">
        <cfset var result = structnew()>
        <cfset result.success = true>
        <cftry>
            <cfif structkeyexists(arguments,"parentCollectionId")>
                      <cfset arguments.parentCollectionId = urlencodedformat(parentCollectionId)>             
                      <cfset result.theUrl = "https://docs.google.com/feeds/default/private/full/#arguments.parentCollectionId#/contents">
                <cfelse>
                        <cfset result.theUrl = "https://docs.google.com/feeds/default/private/full/">
            </cfif>
             <cfoutput>
                  <cffile action="read" file="#arguments.filePath#" variable="theFile">
                <cfsavecontent variable="atomXML">
                     Content-Type: application/atom+xml
                    <?xml version='1.0' encoding='UTF-8'?>
                    <entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">
                      <category scheme="http://schemas.google.com/g/2005##kind"
                          term="http://schemas.google.com/docs/2007###arguments.docType#"/>
                        <cfloop collection="#arguments.metaData#" item="key">
                            <#key#>#arguments.metadata[key]#</#key#>
                        </cfloop>
                    </entry>
                    --END_OF_PART
                    Content-Type: text/plain
                    #theFile#
                    --END_OF_PART--
                </cfsavecontent>       
            </cfoutput>      
            <cfset result.postData = atomXML>
            <cfhttp url="#result.theUrl#" method="post" result="httpRequest" charset="utf-8" multipart="yes">
                <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#getAuth()#">
                <cfhttpparam type="header" name="GData-Version" value="3">
                <cfhttpparam type="header" name="Content-Length" value="#len(trim(atomXML))*8#">           
                <cfhttpparam type="header" name="Content-Type" value="multipart/related; boundary=END_OF_PART">
                <cfhttpparam type="header" name="Slug" value="test file --END_OF_PART">
                <cfhttpparam type="body" name="content" value="#trim(atomXML)#">
            </cfhttp>
            <cftry>
                   <cfset packet = xmlParse(httpRequest.fileContent)>
                <cfif httpRequest.statusCode neq "201 created">
                    <cfthrow message="HTTP Error" detail="#httpRequest.fileContent#" type="HTTP CODE #httpRequest.statusCode#">
                </cfif>
                <cfset result.data.resourceId = packet.entry['gd:resourceId'].xmlText>
                <cfset result.data.feedLink = packet.entry['gd:feedLink'].xmlText>
                <cfset result.data.title = packet.entry.title.xmlText>  
                <cfset result.data.link = packet.entry.title.xmlText>    
                <cfcatch>
                     <cfset result.data = httpRequest>
                </cfcatch>
            </cftry>       
            <cfcatch type="any">
                 <cfset result.error = cfcatch>
                <cfset result.success = false>
            </cfcatch>
        </cftry>   
        <cfreturn result>
    </cffunction>
    Also, this is what my atomXML data ended up looking like when it got sent to google. This isn't the WHOLE request (it doesn't include the headers, just the body).
    Content-Type: application/atom+xml
    <?xml version='1.0' encoding='UTF-8'?>
    <entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">
    <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#document"/>
    <TITLE>Woot Test</TITLE> </entry>
    --END_OF_PART
    Content-Type: text/plain
    I'm a test document lol!
    --END_OF_PART--

    Woot, I got it. I had to send the gData version number, and change the URL.
    Here is the working function.
    <cffunction name="upload" access="public" returnType="any" hint="I upload the document." output="false">
        <cfargument name="myFile" type="string" required="false" hint="file to upload.">
        <cfset var result = "">
        <cfset theUrl = "https://docs.google.com/feeds/default/private/full">
        <cffile action="read" file="C:\website\xerointeractive\testing\test.txt" variable="theFile">
        <cfset fileSize = createObject("java","java.io.File").init("C:\website\xerointeractive\testing\test.txt").length()>
        <cfhttp url="#theURL#" method="post" result="result" charset="utf-8" >
            <cfhttpparam type="header" name="Authorization" value="GoogleLogin auth=#getAuth()#">
            <cfhttpparam type="header" name="Content-Type" value="text/plain">
            <cfhttpparam type="header" name="Slug" value="test file">
            <cfhttpparam type="header" name="GData-Version" value="3">
            <cfhttpparam type="header" name="Content-Length" value="#fileSize#">
            <cfhttpparam type="body" value="#theFile#">
        </cfhttp>
        <cfreturn result>
    </cffunction>

  • Oracle Forms - need to update multi-record block - Help needed asap

    Hi,
    We are using Oracle apps release 11i - Oracle forms 6i.
    I have a field "project_start_date" in project_block in a custom form. There is another multi-record block called role_block in the same custom form and it has a field named start_date. Requirement is when ever I make change in the project_start_date in project_block, that should reflect in role_block.start_date. I tried different means and could update only the very first record of the multi-record block - role_block. I need to update all the records in the role_block with the same project_start_date. Used looping and several other methods. But could not achieve. Any help is really appreciated.
    Thanks
    Akil

    Hi;
    For your issue i suggest close your thread here as changing thread status to answered and move it to Forum Home » Application Development in PL/SQL » Forms which you can get more quick response
    Regard
    Helios

Maybe you are looking for

  • Sun Studio 11 do not parse make output and create link to file?

    Hi, Running Sun Studio 11 and can only get file links in the output window when I run a make command that uses CC -g (debug option). We have integrated other tools into our make system (flexlint, cppUnit..) and even though we make sure that the synta

  • Table and Filed for 'Credit Exposure' and 'Credit Value'

    Hi, Anybody pls let me know the following... 1. What is the source of 'Credit Exposure' in FD33 transaction (Table-Field) ? 2. What is the source of  'Credit Value' in VKM1 transaction (table-Field) ? I know that..... Source of "Credit Exposure" in F

  • How to create a DVD menu like an animated Flash Menu?

    Hello.  I'm trying to figure out how to create an animated menu in Encore for a DVD, much like how menus are that are created in flash.  How can I create one in Encore for a DVD menu?  Thanks.

  • Would tomahawk selectOneRadio work in html  table tag

    hey guys, i want to use the tomahawk tag in a html table in JSF pages, but it seen unwork, my example is shown below <f:view> <h:form> <table> <!-- include from the other pages called LIC3320.jsp --> <x:selectOneRadio id="select" layout="spread" forc

  • Hyperlink link action to open in browser from Syclo WM (Workorder Notes)

    Hello All , I want to make my notes as hyperlink in Agentry Syclo Workorder Level . ex1 : Notes has information : www.google.com if i press "www.google.com" then it should open in iPad safari browser as google.com Ex 2 : if Notes has information : gm