Execute_query and go_item

Hello.
I have a master-detail form.
And i have key-exeqry trigger. Here i have execute_query built-in and then go_item.
But when i execute_query, cursor doesn't jump to item i specified in go_item.
For testing i created timer which waits for 1 second after execute_query. In when-timer-expired trigger i use the same go_item. After timer expires then go_item works.
Can anyone help me with that? I don't want to use timer.
Any idea?
Thanks.

Are you sure?
I have seen the online help and there is nothing about it..
Here is the online help.
Post-Query Trigger Description
When a query is open in the block, the Post-Query trigger fires each time Oracle Forms fetches a record into a block. The trigger fires once for each record placed on the block's list of records.
Definition Level form or block Legal Commands SELECT statements, unrestricted built-ins Enter Query Mode no
Usage Notes Use a Post-Query trigger to perform the following tasks: populate control items or items in other blocks calculate statistics about the records retrieved by a query calculate a running total When you use a Post-Query trigger to SELECT non-base table values into control items, Oracle Forms marks each record as CHANGED, and so fires the When-Validate-Item trigger by default. You can avoid the execution of the When-Validate-Item trigger by explicitly setting the Status property of each record to QUERY in the Post-Query trigger. To set record status programmatically, use SET_RECORD_PROPERTY . On Failure Oracle Forms flushes the record from the block and attempts to fetch the next record from the database. If there are no other records in the database, Oracle Forms closes the query and waits for the next operator action. Fires In Fetch Records Post-Query Trigger Examples Example This example retrieves descriptions for code fields, for display in non-database items in the current block. DECLARE CURSOR lookup_payplan IS SELECT Payplan_Desc FROM Payplan WHERE Payplan_Id = :Employee.Payplan_Id; CURSOR lookup_area IS SELECT Area_Name FROM Zip_Code WHERE Zip = :Employee.Zip; BEGIN /* ** Lookup the Payment Plan Description given the ** Payplan_Id in the Employee Record just fetched. ** Use Explicit Cursor for highest efficiency. */ OPEN lookup_payplan; FETCH lookup_payplan INTO :Employee.Payplan_Desc_Nondb; CLOSE lookup_payplan; /* ** Lookup Area Descript given the Zipcode in ** the Employee Record just fetched. Use Explicit ** Cursor for highest efficiency. */ OPEN lookup_area; FETCH lookup_area INTO :Employee.Area_Desc_Nondb; CLOSE lookup_area; END

Similar Messages

  • Webutil and execute_query

    Hi All, Here's my problem for today.
    I have a tabular datablock with over 30 data items in each row that is populated by Execute_query.
    What I want to do is take results of that query and use Web_util and download the data to my desktop.
    I've done something similar by using a cursor, looping thru it and writing the data out, line by line using the "client_text_io.put_line" command and specifying the individual data items.
    Is there a way to be able to capture the results of the execute_query and in one swell foop use web_util to transfer this data to my desktop?
    Thanks,
    Larry

    If you must use the result of a execute query in a block you can use GO_BLOCK('block_name'), FIRST_RECORD and NEXT_RECORD to loop over the records and then use put_line to write the content of the block's fields to a file.

  • Execute_query after on-insert trigger

    Hello.
    I use on-insert trigger to insert data into database and then i want to execute_query so i can see all records including the last one i inserted.
    How can i workaround the problem with using execute_query or go_item in (or after) on-insert trigger?
    Thanks.

    Hi,
    you cannot execute navigational or query built-ins when in a transaction control point (ON-INSERT).
    ON-, KEY triggers replace the functionality of the events they fire upon.
    You can use the KEY-COMMIT Trigger to do this. For instance:
    <<KEY-COMMIT>>
    Commit_Form; -- all validation triggers are fired
    -- WHEN SUCCESSFUL
    Go_Block ('BLOCK_NAME');
    Execute_Query;
    Go_Block ('STARTING_BLOCK_NAME');
    -- END KEY-COMMIT
    Regargds,
    Hans

  • Execute_query not showing the  -WORKING ...-  Message on Forms 10g

    Hello,
    There is a strange thing happening with our Forms that were migrated to 10g.
    1) Our keys were remapped to the ones used in the 6i Version. For example: CTL+L is F9
    2) When a user presses F7 and then F8, on Forms 6i, we have the sequence of message:
    Enter a query; press F8, CTRL+q to cancel
    then
    Working ...
    and finally we get the records.
    However on Forms 10g, we have when a user presses F7 and then F8 :
    Enter a query; press F8, CTRL+q to cancel
    and the message -WORKING...- is not shown and after a while we get the records.
    There are no message_level before the enter_query or execute_query and there is no :system.suppress_working in the form.
    What could be the problem ?

    1) Our keys were remapped to the ones used in the 6i Version. For example: CTL+L is F9 Key mapping is controlled by the file fmrweb.res in path <DevSuiteHome_1 path>/forms/
    Forms 10g is released with a unix style file where Ctrl+L is mapped to List of Values. There is an alternate file named fmrpcweb.res that maps F9 to List of Values. By renaming fmrweb.res to something else, and copying fmrpcweb.res to fmrweb.res, you will get the PC platform functionality.
    You can edit the Web Forms fmrweb.res file using a text editor to tailor the function keys any way you need.
    and the message -WORKING...- is not shown and after a while we get the records.Hmmm.... I tried that with a simple "default" test form, and indeed, the working... message does NOT appear, even when I set the Query Array size and Records Buffered properties to 1000 and queried a very large table. Why don't you open a Service Request with Oracle, and report back if you find a solution.

  • Set_block_property with Like and Between and function

    Hellow All
    I need to find out record where Column Name between
    :Text_item1 and :Text_item2 with Default_where
    For example Manu guide me to find out record with
    SET_BLOCK_PROPERTY('Block53', DEFAULT_WHERE, 'name like ''' || :block70.text || '%''');
    go_block('block53');
    EXECUTE_QUERY;
    Now i need
    To find our Record where name between :block70.Text1 and :Block70.text2 with Like Function
    For example
    I have one Column :NAME
    I want to find out record in name Column with Default Where option where name between Text1 and Text2
    I Hope you guys understand my requirement
    Regards
    Shahzaib ismail

    Hai,
    Try
    SET_BLOCK_PROPERTY('BLOCK53', DEFAULT_WHERE, 'NAME BETWEEN ''' || :BLOCK70.TEXT1 || ''' AND ''' || :BLOCK70.TEXT2 || '''');
    GO_BLOCK('BLOCK53');
    EXECUTE_QUERY;and when you are using BETWEEN for character fields, then LIKE will be there.
    Example, your NAME field have,
    1) Abcde
    2) Asdf
    3) Awer
    And if your condition is NAME BETWEEN 'A' AND 'Z' then you will get all daya.
    And if your condition is NAME BETWEEN 'Ad' AND 'Z' then you will get 2 and 3. like that.
    Regards,
    Manu.
    If this answer is helpful or correct, please mark it. Thanks.

  • Execute_query error

    Hi master
    Sir
    I use enter_query through button and give 10 in deptno textbox
    But I execute_query through button no give result
    An use form menu then give result easily what happen
    Enter_query code
    Go_block(‘emp’);
    Enter_query;
    execute_query code
    Go_block(‘emp’);
    execute_query;
    and
    execute_query code
    execute_query;
    and how use option button
    please give me idea
    thanking you

    Hi Karen,
    We have just run into this issue...trying to find out more, but the Crystal Report developer stated...
    "When I alias a table in crystal and use a field from that alias I get the following error:"
    Database connector error: /CRYSTAL/OSQL_EXECUTE_QUERY returned: subrc: 4. message "CONTENT-0-0" has already been declared.
    Was this the same  OSQL_EXECUTE_QUERY error you received? and by chance did you get it resolved.
    Also having the resource go through the checks on the transports per Ingo.
    Thanks.
    Kevin

  • Alternative trigger like post_change but can 'go_item'

    Any trigger similar to 'Post-change' but can use 'GO_BLOCK', 'GO_ITEM' etc.
    If no, I found that it is very difficult to write program that require very complicated on-line response to user.
    'When-validate-item' also cannot 'go_block' and 'go_item'
    Thanks!!!

    We have used this technique before:
    When-Validate-Item (trigger)
    Declare
    htimer Timer;
    Begin
    Instance.Item_To_Go_To := 'myblock.myitem';
    Create_Timer( 'wvi_nav_timer', 1, NO_REPEAT);
    End;
    Then in the When-Timer-Expired trigger...
    Begin
    If ( Get_Application_Property( Timer_Name ) = 'wvi_nav_time' ) Then
    Go_Item( Instance.Item_To_Go_To );
    End If;
    End;
    Item_To_Go_To is a package level variable stored in the Instace package.
    Hope this helps.
    Regards,
    Bren

  • The values for list items of other data blocks are not getting displayed when executed.

    Hi,
        I have a new problem again.
        I am doing a new form in which there are around 8 blocks. All the blocks have their tables in the oracle database.
        Each block has 18 columns with the same column & column names. But the values in those columns are different & the values do not match.
        The problem lies while i execute the form, it populates only the first block data. Other blocks do not display or populate the values.
        I cannot create a master relationship because all the column values are different.
        How do i display or populate the values of all the tables?
       Please help me. Thank You.

    hi
    if your form has truly disassociated tables, then you could simply use a key-exeqry trigger at forms level to travel to each block in turn and perform an execute-query built-in, eventually returning to the starting block.
    ie
    go_block('..');
    execute_query;
    go_block('..');
    execute_query;
    etc
    go_item(......);
    In this case you would use the block where clause to constrain each table to the appropriate set.
    If however, the database has no relationships between the tables but the data content has some corelation, then you could craft a forms relation manually.
    cheers
    Rod

  • Tlist Query (Urgent..)

    Hi Experts,
    I'm using One list Item (Tlist).
    I have 20 records in List Item. when I pressed on this Tlist list Item - 1, it execute the records one by one in text items.
    List-Item 1     
    -----------     |-----|
    |A     |     |-----|Text Item 1
    |B     |
    |C     |     |-----|
    |D     |     |-----|Text Item 2
    |E     |
    |F     |     |-----|
    |G     |     |-----|Text Item 3
    |H     |     
    i.e. when I press 1st record (A) in Tlist List Item - 1 , then It will execute that record & fetches relevent info in to Text Item 1,Text Item 2 and Text Item 3.
    But If now I presses the next record button from Text Item 1, then the focus should automaticcaly increament into Tlist List Item - 1. (i.e. B,C,D,E,F,..) with respect to Text Items.
    I would much appreciate if any one help me how to achive this
    thanx in advance
    Bhavesh

    Dear Experts,
    I'm using List Item (The List Item is non database Field). While Quering, I do fetch all the records (say First name & Last name) from Database in to that list item. It showing all the records from the database, which is fine.
    Now when I click on the list Item values (First name & Last name), the corresponding details are showing in respective Items (which is database block). I mean the full detail about that person.
    But now My problem is : When I pressed next record button or Key down key, It is not showing me next record. It just displays that record. My Next & Previous Buttons are getting disabled automatically. So I cann't go to next record.
    Below is the code I writtern in When List changed Item:
    BEGIN
              GO_BLOCK('bcompanyaddresses');
              SET_BLOCK_PROPERTY('bcompanyaddresses',DEFAULT_WHERE,
                                                                'WHERE idcompany = :bcompany.idcompany
                                                                AND idaddress = :ctrl_list.nbt_list_add');
              EXECUTE_QUERY(NO_VALIDATE);
              GO_ITEM('bcompanyaddresses.address1');
    END;
    But If I remove the stmt Go_BLOCK, from above code, My requirement is getting fullfilled. But I need to have the functionality, when user clicks on List Item then It should execute that detail along with next record on pressing Key Down.
    Hope u'll get my question.
    Thanx in Advance
    Bhavesh

  • All typed data erased when ...

    I am using Form 9i.
    I have master-details form. In detail form, key field is labour_code. When labour_code is selected, it displays the details in that row. If I selected some labour say 3, and on selected 4th labour if it is not available for this new job then my all data is erased. I have to select all data again.
    I am using two triggers on labour_code. When KEY-NEXT-ITEM trigger is made comment, then data is not erased. But then I didn't accomplish full task. What can be done to avoid this.
    Thanks and regards,
    Vikas
    1) WHEN-VALIDATE-ITEM
    DECLARE
    v_count                         NUMBER;
    v_status                    CHAR(1);
    v_workorder_no     VARCHAR2(15);
    v_pass_no                    VARCHAR2(15);
    v_to_dt                         DATE;
    BEGIN
         IF :workorder_dtls.labour_code IS NOT NULL THEN
              SELECT COUNT(*) INTO v_count FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
              IF v_count > 0 THEN --if labour exist.
                   SELECT status INTO v_status FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
                   IF v_status = 'I' THEN --'I' stands for busy.
                        --check if labour is for extension i.e. if labour is working for same workorder
                        SELECT COUNT(*) INTO v_count FROM workorder_dtls
                                            WHERE labour_code = :workorder_dtls.labour_code
                                            AND workorder_no = :workorder_dtls.workorder_no;
                        IF v_count > 0 THEN
                             SELECT to_dt, pass_no INTO v_to_dt, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND workorder_no = :workorder_dtls.workorder_no;
                             IF v_to_dt - SYSDATE < 3 THEN
                                  --if working in same workorder then for extension, then give from_dt, to_dt
                                  SELECT MAX(TO_DT)+1 INTO :workorder_dtls.from_dt FROM workorder_dtls
                                                      WHERE labour_code = :workorder_dtls.labour_code
                                                      AND workorder_no = :workorder_dtls.workorder_no
                                                      AND to_dt - SYSDATE < 3;
                             ELSE
                                  --if working in same workorder but not for extension then give message.
                                  MESSAGE('This labour is already working in this workorder using pass .'||v_pass_no||' which will expire on '||v_to_dt||'.');
                                  RAISE FORM_TRIGGER_FAILURE;
                             END IF;
                        ELSE
                             SELECT workorder_no, pass_no, to_dt INTO v_workorder_no, v_pass_no, v_to_dt FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND workorder_no <> :workorder_dtls.workorder_no;
                             MESSAGE('This labour is already working through workorder no. '||v_workorder_no||' using pass '||v_pass_no||' which will expire on '||v_to_dt||'.');
                             RAISE FORM_TRIGGER_FAILURE;
                        END IF;
                   ELSIF v_status = 'A' THEN--'A' stands for available.
                        IF :workorder_master.from_dt > SYSDATE THEN
                             :workorder_dtls.from_dt := :workorder_master.from_dt;
                             :workorder_dtls.issue_dt := :workorder_master.from_dt;
                        ELSE
                             :workorder_dtls.from_dt := SYSDATE;
                             :workorder_dtls.issue_dt := SYSDATE;
                        END IF;
                   ELSIF v_status = 'H' THEN--'H' stands for help-up.
                        SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND cancil_dt IS NOT NULL;
                        MESSAGE('This labour has been held-up for not submitting gatepass.');
                        RAISE FORM_TRIGGER_FAILURE;
                   ELSIF v_status = 'S' THEN--'S' stands for suspend.
                             SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code;
                        MESSAGE('This labour has been suspended through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                        RAISE FORM_TRIGGER_FAILURE;
                   END IF;
                   IF v_status IN ('A', 'I') THEN
                        IF :workorder_dtls.from_dt + 90 <= :workorder_master.to_dt THEN
                             :workorder_dtls.to_dt := :workorder_dtls.from_dt + 90;
                        ELSE
                             :workorder_dtls.to_dt := :workorder_master.to_dt;
                        END IF;
                   END IF;
              ELSE --if labour does not exist.
                   MESSAGE('Invalid labour code');
                   RAISE FORM_TRIGGER_FAILURE;
              END IF;
         END IF;
    END;
    2) KEY-NEXT-ITEM
                   :BLK_TEMP_WORKORDER.LABOUR_CODE := :WORKORDER_DTLS.LABOUR_CODE;     
                   GO_BLOCK('WORKORDER_DTLS_IMG');
                   EXECUTE_QUERY(NO_VALIDATE);      
                   GO_ITEM('WORKORDER_DTLS.from_dt');

    OK Sir, I am giving you indented code. This code is written in WHEN-VALIDATE-ITEM of labour_code.
    [HTML]
    DECLARE
    v_count                         NUMBER;
    v_status                    CHAR(1);
    v_workorder_no     VARCHAR2(15);
    v_pass_no                    VARCHAR2(15);
    v_to_dt                         DATE;
    BEGIN
         IF :workorder_dtls.labour_code IS NOT NULL THEN
              SELECT COUNT(*) INTO v_count FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
              IF v_count > 0 THEN --if labour exist.
                   SELECT status INTO v_status FROM labour_master
                                  WHERE labour_code = :workorder_dtls.labour_code;
                   IF v_status = 'I' THEN --'I' stands for busy.
                        --check if labour is for extension i.e. if labour is working for same workorder
                        SELECT COUNT(*) INTO v_count FROM workorder_dtls
                                            WHERE labour_code = :workorder_dtls.labour_code
                                            AND workorder_no = :workorder_dtls.workorder_no;
                        IF v_count > 0 THEN
                             SELECT to_dt, pass_no INTO v_to_dt, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND workorder_no = :workorder_dtls.workorder_no;
                             IF v_to_dt - SYSDATE < 3 THEN
                                  --if working in same workorder then for extension, then give from_dt, to_dt
                                  SELECT MAX(TO_DT)+1 INTO :workorder_dtls.from_dt FROM workorder_dtls
                                                      WHERE labour_code = :workorder_dtls.labour_code
                                                      AND workorder_no = :workorder_dtls.workorder_no
                                                      AND to_dt - SYSDATE < 3;
                             ELSE
                                  --if working in same workorder but not for extension then give message.
                                  MESSAGE('This labour is already working in this workorder using pass .'||v_pass_no||' which will expire on '||v_to_dt||'.');
                                  RAISE FORM_TRIGGER_FAILURE;
                             END IF;
                        ELSE
                             SELECT workorder_no, pass_no, to_dt INTO v_workorder_no, v_pass_no, v_to_dt FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND workorder_no <> :workorder_dtls.workorder_no;
                             MESSAGE('This labour is already working through workorder no. '||v_workorder_no||' using pass '||v_pass_no||' which will expire on '||v_to_dt||'.');
                             RAISE FORM_TRIGGER_FAILURE;
                        END IF;
                   ELSIF v_status = 'A' THEN--'A' stands for available.
                        IF :workorder_master.from_dt > SYSDATE THEN
                             :workorder_dtls.from_dt := :workorder_master.from_dt;
                             :workorder_dtls.issue_dt := :workorder_master.from_dt;
                        ELSE
                             :workorder_dtls.from_dt := SYSDATE;
                             :workorder_dtls.issue_dt := SYSDATE;
                        END IF;
                   ELSIF v_status = 'H' THEN--'H' stands for help-up.
                        SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code
                                                 AND cancil_dt IS NOT NULL;
                        MESSAGE('This labour has been held-up for not submitting gatepass.');
                        RAISE FORM_TRIGGER_FAILURE;
                   ELSIF v_status = 'S' THEN--'S' stands for suspend.
                             SELECT workorder_no, pass_no INTO v_workorder_no, v_pass_no FROM workorder_dtls
                                                 WHERE labour_code = :workorder_dtls.labour_code;
                        MESSAGE('This labour has been suspended through workorder no. '||v_workorder_no||' using pass '||v_pass_no);
                        RAISE FORM_TRIGGER_FAILURE;
                   END IF;
                   IF v_status IN ('A', 'I') THEN
                        IF :workorder_dtls.from_dt + 90 <= :workorder_master.to_dt THEN
                             :workorder_dtls.to_dt := :workorder_dtls.from_dt + 90;
                        ELSE
                             :workorder_dtls.to_dt := :workorder_master.to_dt;
                        END IF;
                   END IF;
              ELSE --if labour does not exist.
                   MESSAGE('Invalid labour code');
                   RAISE FORM_TRIGGER_FAILURE;
              END IF;
         END IF;
    END;[HTML]
    Another code is written in KEY-NEXT-ITEM of labour_code. This trigger is only used to display image of labour which exist in seperate block. And I think there is no other way to display image of labour. Is it correct sir?
    [HTML]
              :BLK_TEMP_WORKORDER.LABOUR_CODE := :WORKORDER_DTLS.LABOUR_CODE;     
                   GO_BLOCK('WORKORDER_DTLS_IMG');
                   EXECUTE_QUERY(NO_VALIDATE);      
                   GO_ITEM('WORKORDER_DTLS.from_dt');[HTML]
    Thanks and regards,
    Vikas

  • Non-Database Item Sort Using Multiple Block Values

    I need to sort the result set of a block based on a calculated item. I found several messages addressing this, however they all speak to using the columns from within the same block as input variables to the function used to calculate the non-database column value.
    My problem is that I need to use values from a different block as input variables. I have not found a way to use them since I need to use the full block.column syntax. Forms does not like this and always thows an error right at the period(.). I need to do this because the column names are the same in each block. the function compares the column values and changes the record instance background a different color based based on how many of the column pairs match. Each block is mutually exclusive from each other and doing a accurate join is not really possible.
    I tried renaming the block column name to something unique, however I get a variable not bound error when I try to use it in the order by function even though their values are in the top most block.
    For Example:
    First Block. Contains a list of cases that need to be worked because the automated process could not find a valid provider based on the values received. This list is created by a background process.
    Table: CASE_MAIN
    TIN
    CASE_ID
    FCLTY_CM
    MEDICARE_CM
    Unrelated Second Block (i.e., no join). It uses the TIN value in the first block to get a list of all of the providers for the TIN associated with the Case so that a person can assign the correct Provider to the case (A TIN has a provider and address associated with it). As a result there is no link to the results of this table and the CASE_ID. That's what the users needs to do manually
    Table: PROVIDER_MAIN
    FCLTY
    MEDICARE
    I need to take the values in the first block and compare them in the second block so that I can recolor the background based on matching logic in the function below.
    order by clause = get_vals( ''||:FCLTY_CM||''
    ,''||:MEDICARE_CM||''
    ,fclty
    ,medicare) desc
    I am able to do the coloring within the form easily, however I need to order them by how many values match exactly so the ones that match to most value pairs show at the top. Hence ordering by the result of the function. I return a 0,1, or 2 based on the matches. 0 for none and 2 for both.
    I cannot create a view because the sources of the information I need to compare are NOT related to each other, yet. that is what the application is designed to do. I have a case without a
    provider assigned, but I have a tax id number that possible identifies the provider. I use this TIN to query the provider table for all of the possible providers under that TIN. As a result there is no link between the case information and provider information. The goal is to get this list compare the values from the target information and put the most likely matches on top, with
    the ones with the most matches first. I can create a function many ways that takes in various parameters. For example Case ID and Provider Id and query the records in subselects
    individually like so;
    select count(*)
    from (select fclty, medicare from case_main where case_id p_case_id) cm
    ,(select fclty, medicare from provider_main where prv_id = p_prv_id) pm
    where cm.fclty = pm.fclty
    and cm.medicare = pm.medicare
    If the number is greater than zero I know I have a match with that provider and I can sort accoringly. I can also pass in the target information from case_main and the provider inforation from provider_main and then do an if/then statement for comparing. Then I can use this function to create a column value for each record and then use the same reference to the function in the order by clause to order by that value.
    The problem comes in trying to reference the case_id or target information from a different block than where the fucntion needs to be used. I get a variable bound not error message. What am I missing here. Why can I not reference a uniquely named block item as a input variable to a function in a different block? Does Forms first figure out what it needs to retrieve and then executes the SQL for each block in isolation, or does the first block's result set get retrieved, then the second, third, etc. Based on the message i am getting I would suspect the former since it appears their is no value in subsequent blocks. If so is there anyway around this? thanks.

    Don't quite understand your problem completely. But this might help. I sure hope your Provider_Main is a single-record block ...otherwise, how would you supply a list of values of FCLTY and MEDICARE to the function that does the sorting? Be awere, too, that the order-by is processed by the server, and NOT by Forms.
    Assuming it is a single-record block, you can put the values into parameters:
    :Parameter.Fclty := :Provider_Main.Fclty;
    :Parameter.Medicare := :Provider.Medicare;
    Execute_Query;
    And your order-by clause would be
    get_vals( ''||:FCLTY_CM||'',''||:MEDICARE_CM||'',
    :Parameter.Fclty,
    :Parameter.Medicare) desc
    By the way, the first line of your order-by looks strange. Shouldn't it be:
    get_vals( FCLTY_CM || ',' || MEDICARE_CM,
    or even better, get_vals should take in 4 parameters:
    get_vals(Fclty_cm, Medicare_cm, :parameter.Fclty, :parameter.Medicare)

  • Asynchronous Processing in Forms 9i

    Here's what I want to do:
    I have an external PL/SQL routine invoked by form A which inserts records into a database table.
    I want to show, in real time, the data being written to this table by the routine invoked by form A.
    Here's what I did in 6i:
    Prior to invoking the routine, form A called form B with run_product(forms, asynchronous etc..). Form B then sat there checking for updates to the table and displaying them when it found them while Form A went on doing its business.
    My question:
    How do I do this in 9i? run_product is now unsupported for calling a form, and neither open_form nor call_form will let form A carry on while form B is working. I tried web.show_document as suggested elsewhere in this forum, but the new browser window didn't open until form A had finished what it was doing which is no use.
    Is there a far easier way of doing this? Form B has no user interaction, it's just displaying data written to a table as it's written. Is there an asynchronous trigger that I could use in a field on Form A instead? How else can I do this?

    Ok, i have created a form A with the following code in a WHEN-BUTTON-PRESSED :
    declare
         lc$url varchar2(1024);
    Begin
         lc$url := 'cmd /c START "appli" IEXPLORE.EXE "http://f3sieg2kdegrell:8888/forms90/f90servlet?form=D:\Projets\Atena\Forms9i\Designer\MODULE2.fmx&userid=ATENA/MAGNOLIA2@atenadev"' ;
    host( lc$url ) ;
    message('debut insere lignes');synchronize ;
    insere_lignes; -- stored procedure that insert rows
    message('fin insere lignes');synchronize;
    end ;
    And a form B with a timer wich fire every second and do the following code in the WHEN-TIMER-EXPIRED :
    go_block('the_block');
    execute_query ;
    AND IT WORKS !
    this is the code of the stored procedure :
    CREATE OR REPLACE PROCEDURE insere_lignes IS
    BEGIN
         delete from TEST ;
         for i in 1..50 loop
              insert into TEST (nom)
              values ( 'NOM_' || ltrim(to_char(i)) );
         commit ;
              dbms_lock.sleep( 1 ) ;
         end loop ;
    END;

  • (another) stacked canvas on content canvas problem

    I've searched the forums for the last 2+ hours and can't find a solution for my problem, although there are hundreds of questions on this subject.
    I have a stacked canvas on top of a content canvas. The canvases share the same window. They also share a data block. I added radio buttons on the main canvas to "show/hide" the stacked (my ultimate goal is to have 2-3 stacked and toggle. When hide, the stacked canvas is hidden, but when i click show, it is not. I understand reading all the posts that the block with focus will display, and I've added both a go_block and go_item prior to the show_view. Below is my code. MEL_DETAILS is content and MEL_LINE_ITEM is stacked.
    IF :stack = 'SHOW_STACK' THEN
    GO_BLOCK('MEL_ITEM');
    GO_ITEM('MEL_ITEM.MIS_PROJECT_NO');
    SHOW_VIEW('MEL_LINE_ITEM');
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_true);
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', display_position, 718, 583);
    SET_ITEM_PROPERTY('PROJECTS.STACK',MOUSE_NAVIGATE,PROPERTY_FALSE); -- radio button
    ELSif :stack = 'HIDE_STACK' THEN
    HIDE_VIEW('MEL_LINE_ITEM');
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_false);
    SET_ITEM_PROPERTY('PROJECTS.STACK',MOUSE_NAVIGATE,PROPERTY_TRUE);
    END IF;

    user12198246 wrote:
    I've searched the forums for the last 2+ hours and can't find a solution for my problem, although there are hundreds of questions on this subject.
    I have a stacked canvas on top of a content canvas. The canvases share the same window. They also share a data block. I added radio buttons on the main canvas to "show/hide" the stacked (my ultimate goal is to have 2-3 stacked and toggle. When hide, the stacked canvas is hidden, but when i click show, it is not. I understand reading all the posts that the block with focus will display, and I've added both a go_block and go_item prior to the show_view. Below is my code. MEL_DETAILS is content and MEL_LINE_ITEM is stacked.
    IF :stack = 'SHOW_STACK' THEN
    GO_BLOCK('MEL_ITEM');
    GO_ITEM('MEL_ITEM.MIS_PROJECT_NO');
    SHOW_VIEW('MEL_LINE_ITEM');
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_true);
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', display_position, 718, 583);
    SET_ITEM_PROPERTY('PROJECTS.STACK',MOUSE_NAVIGATE,PROPERTY_FALSE); -- radio button
    ELSif :stack = 'HIDE_STACK' THEN
    HIDE_VIEW('MEL_LINE_ITEM');
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_false);
    SET_ITEM_PROPERTY('PROJECTS.STACK',MOUSE_NAVIGATE,PROPERTY_TRUE);
    END IF;Here, it seems two problem..
    The line..
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_true);
    and
    SET_VIEW_PROPERTY('MEL_LINE_ITEM', visible, property_false);No needed
    Hope this helps
    Hamid

  • FRM-41361 Cannot navigate out of current form in Enter-Query Mode

    Hi All,
    I am getting the FRM-41361 error in the bottom message area when opening a form from the function navigator. The issue does not exist when opening the form from the application homepage. The form is loaded in enter-query mode, and the enter_query command is in the WHEN-NEW-FORM-INSTANCE trigger. I have checked all triggers that fire after this point for any type of navigation but do not see any. The interesting thing is, if I put a fnd_message.set_string and fnd_message.show just before the enter_query call to debug, the issue goes away entirely.
    Is it possible there are security triggers firing after the form is loaded into enter-query mode that could be causing this and that the fnd_message calls are indeed buying time for those triggers to complete before the enter_query call?
    Any help/advice is appreciated. Thanks!
    Dan

    Yes, when I looked through the triggers I made sure to look for go_block and go_item calls as well as any calls to leave the form.

  • Losing focus in Web Form

    I have the following problem:
    I have a form (B), which is a stacked canvas, which is called
    from another form (A). In the when-new-form-instance of (B) I
    execute_query and go_block to a block on (B). A visual attribute
    is set to highlight the current record (1) - this works. However
    if I select any record, say record (3), then the input focus
    seems to go to record (1), if I click again the focus, and
    current record attribute move to record (3).
    On client server the form works ok.
    I suspect this is a bug in the application server (3.??) or the
    appletviewer. However I suspect there may be a workaround.
    Ideas anyone ?
    Andrew Stubbs
    [email protected]
    null

    Sounds like a problem we had - Oracle Germany say its a
    jinitiator problem, that is solved in 1.1.7.11. According to the
    support matrix, you will also need to use the most recent
    patchset.
    - Matthew Cain
    Andrew Stubbs (guest) wrote:
    : I have the following problem:
    : I have a form (B), which is a stacked canvas, which is called
    : from another form (A). In the when-new-form-instance of (B) I
    : execute_query and go_block to a block on (B). A visual
    attribute
    : is set to highlight the current record (1) - this works.
    However
    : if I select any record, say record (3), then the input focus
    : seems to go to record (1), if I click again the focus, and
    : current record attribute move to record (3).
    : On client server the form works ok.
    : I suspect this is a bug in the application server (3.??) or the
    : appletviewer. However I suspect there may be a workaround.
    : Ideas anyone ?
    : Andrew Stubbs
    : [email protected]
    null

Maybe you are looking for

  • How to stop syncing betwen 2 iphone

    How to turn of syncing betwen 2 iphones

  • Sending mail to LOTUS NOTES inbox.

    Hi all, I am working on WORKFLOWS and i need to send a mail to lotus notes inbox. I have got the function module to send the mail.I Created a method for sending the mail. But Where and how to impletement this method in the work flow. Please through s

  • SugarSync, Yosemite, and Microsoft Office

    With SugarSync running, I cannot open a Word or Excel file from within those programs, i.e. File, Open... When I do that Word "stops responding" as soon as the Finder window opens. SugarSync assures me there is no problem with their program and Yosem

  • No direct postings possible for frieght G/L account

    hi, sap gurus, good eve to all, i am creating service P.O. for vendor settle and kept the settlement of vendor happens against this particular sales order. its asking a G/L account number and my sales order number. giving sales order number is not a

  • Is it possible to downgrade software of ipod touch ?

    is it possible to downgrade ipod touch's software from 4.3.5 to 4.3.3 ?