Enter query clear block

Hi,
Is it possible to enter the ENTER_QUERY mode without the implicit CLEAR_BLOCK ?
In other words is it possible to keep some data in some text field when we change to enter_query mode so that the user wouldn't need to enter the criteria everytime.
Thank you...

How about doing something like this in the key-entqry trigger?
declare
  x varchar2(100);
begin
  x := :block.item;
  enter_query;
  :block.item := x;
end;

Similar Messages

  • Clearing items upon hitting "Enter Query"

    I have a detail block with 5 fields in each record. There are five non-database items on the form to display the current record in this detail block. Upon moving the cursor to a different record in the block, the new record's fields are displayed in these non-database items.
    What is required is that upon hitting "enter query" on this detail block, these non-database item fields become cleared also.
    Any thoughts would be appreciated.
    Ammar

    this approach is not recommended as I think that these built-ins cause problems on some platforms (the go_block built-in)Never heard of such problems. If thisis so, then no forms-application would run on that platform, for forms also uses GO_BLOCK for master-details-relationships.
    The easiest way to achieve your functionality (without any coding) would be to do the following:
    Delete your second datablock with the non-database-items.
    Duplicate the items in the databaseblock you want to show in a detail-area.
    Set No. of tems displayed to 1 on these items.
    Move the items in the layout to the desired position.
    Set the poperty "Synchronize with" for each item so that it matches the item it should get the value from.
    Thats all.

  • Display Item cleared when using 'Enter-Query'

    Hi all,
    i am going to develop a multilanguage application with very
    special heading texts using display items for these headings.
    BUT- if I press EnterQuery, they are cleared also.
    How can I restrict cleanup of these display items used as
    headings ?
    I was looking in the properties, but no idea.
    Thanks for help,
    udo

    I'm showing how to do it when switching modes. I'm
    not suggesting this is the best way to do a query.We need to look at this in the context of the original probelm in the thread linked to above. For most cases the when-timer-expired etc is just a huge detour around using the pre-query trigger but it's an interesting approach to the specific problem in the earlier thread. The OP there wanted to be able to type '>5000' into a number field in a non-database block, which we can do in a database block in enter-query mode, and use it as a query parameter in the database block. Perhaps if we enter this into a character field in the non-database block and populate the numeric field in the database block whilst in enter-query mode then we can do searches on ranges of data? Unfortunately it doesn't work - you get an ora-06502 error just like you do when using the pre-query trigger. For the situation in the original thread you would have to use a 'default where'.

  • Problems with LOV+Clear Form +Enter Query

    Hi Friends,
    I have a Master Detail Form which is only query form my
    requirement is as soon as the user presses F9(List of Values) on
    Employee Number then 3 activities should be done.
    1. Clear Form
    2. Enter Query
    3. Displaying List of Values
    Any ideas please let me know
    Thanks in Advance
    Rao Guduru
    null

    Hi Rao,
    Here is solution for your problem.
    in KEY-LISTVAL trigger of the Employee number filed write
    following code
    Begin
    Do_Key('clear_form');
    Do_Key('Enter_Query');
    End;
    in the WHEN-NEW-ITEM-INSTANCE Trigger of Employee number filed
    BEGIN
    If (:system.Mode = 'ENTER-QUERY') Then
    list_values;
    End If;
    END;
    If the Employee number is not the first navigable item in that
    block , then in the first navigable item's WHEN-NEW-ITEM-
    INSTANCE trigger write the following code
    If (:system.Mode = 'ENTER-QUERY') Then
    go_item('EMP1.EMPNO');
    End If;
    Let me know whether it solved your problem or not.
    Regards
    Surendra.
    Rao Guduru (guest) wrote:
    : Hi Friends,
    : I have a Master Detail Form which is only query form my
    : requirement is as soon as the user presses F9(List of Values)
    on
    : Employee Number then 3 activities should be done.
    : 1. Clear Form
    : 2. Enter Query
    : 3. Displaying List of Values
    : Any ideas please let me know
    : Thanks in Advance
    : Rao Guduru
    null

  • How to display LOV on web in ENTER-QUERY mode with form or block query only.

    Hello all
    How can I display lov automatic on the web in from enter-query
    mode in form or block query only mode.
    thankx

    If I understand correctly your explanation, your called form
    fails to activate the LOV in enter-query mode when it is deployed
    and test on the browser.
    So lets proceeed like this, to make it work in all environments,
    let us programetically activate the LOV.
    HOW?
    In the called form, write in the WHEN-NEW-ITEM-INSTANCE TRIGGER
    at block level (if have more than one LOV)
    IF :SYSTEM.MODE = 'ENTER-QUERY' THEN
    IF get_item_property(:system.cursor_item,lov_name) IN ('YOUR
    LOV1', 'LOV2' etc) THEN
    IF SHOW_LOV(get_item_property(:system.cursor_item,lov_name))
    THEN
    NULL;
    END IF;
    END IF;
    END IF;
    The above code maybe tweak to suite your need and condition.
    This way, we explicitly make the LOV appear in ENTER-QUERY mode
    whenever the user clicks on an item with an attached LOV.
    Hope this helps.
    Mohammed R.Qurashi

  • Blocking some fields from entering in summary block in enter query mode

    Hi ,
    I have a data block where in some fileds have to be dynamically allowed to enter and some are not based on
    a particular condition. The problem is whenever the forms enters enter query mode, all the fileds in the block are updateble. Even maually I tried to set/unset the property in forms using set_item_property, but the enter query mode was trying to overiride it and making updateble.
    Please suggest a solution for this.
    Thanks in advance.
    Thanks,
    Lohith

    Try the below code
    IF  :SYSTEM.MODE='ENTER-QUERY' THEN
    SET_BLOCK_PROPERTY('BLOCKNAME',INSERT_ALLOWED,PROPERTY_TRUE);
    SET_BLOCK_PROPERTY('BLOCKNAME',UPDATE_ALLOWED,PROPERTY_TRUE);
    SET_BLOCK_PROPERTY('BLOCKNAME',DELETE_ALLOWED,PROPERTY_TRUE);
    you can set the item here too by using the below code
    SET_ITEM_PROPERTY('BLOCK.ITEM_NAME',INSERT_ALLOWED,PROPERTY_TRUE);
    SET_ITEM_PROPERTY('BLOCK.ITEM_NAME',UPDATE_ALLOWED,PROPERTY_TRUE);Regards
    Moazam
    Edited by: Moazam Shareef on Oct 6, 2010 6:10 AM

  • Block based on view ,enter query

    Hi,
    I have a block based on a view.One column of the view is
    substr(f_gt_marks(tcs23.idu_nr_dossr),1,128).
    When I enter 'PAPER%' for the above column and press execute query i get:
    PAPER
    PAPER1PAPER2
    When the form is in enter query mode and when I enter 'PAPER' and press execute query I get FRM 40301 query caused no rows to be retrieved.
    I want only paper to be retrieved.The form works only if I append % to the search criteria.
    Can you please advise me.
    I am working on forms 9i.
    Thanks and Regards

    Try to debug for form, and get the SQL Statement that is being executed, see if it's doing anything out of the ordinary and try to run in SQL*Plus and see the result.
    I think your SQL is trying use the SUBSTR function on the value you enter in ENTER-QUERY mode.
    SUBSTR(f_gt_marks('PAPER'),1,128)Anyway, best for you to see what the form's SQL statement is when issuing the query.
    Tony

  • Enter Query Mode with Block Based on Stored Procedure

    How can I get the ENTER QUERY mode to work when the data block is based on a stored procedure?

    Thank you for your review.
    Because the package is long, I stripped most of it out, but left the basics. After I stripped out the code, I ran the new code under a new user. Under the new user I built I new form, tested it, and I still cannot use the ENTER QUERY mode to retrieve the correct record. Query always returns the first record. I have included table structure and 3 test records.
    CREATE TABLE FR_Charge      
    (      FR_Charge_ID               NUMBER(8),
         FR_Charge_Code               VARCHAR2(8) CONSTRAINT FR_Charge_Code_nn NOT NULL,
         FR_Charge_Code_DESC          VARCHAR2(35),
         FR_Charge_Code_CMT          VARCHAR2(50),
              CONSTRAINT FR_Charge_pk PRIMARY KEY (FR_Charge_ID)
    CREATE SEQUENCE FR_Charge_SEQ;
    INSERT INTO FR_Charge
    VALUES(FR_Charge_SEQ.NEXTVAL,'0.0WS','E-Mail Notification', NULL);
    INSERT INTO FR_Charge
    VALUES(FR_Charge_SEQ.NEXTVAL,'0.1', 'Shipping', NULL);
    INSERT INTO FR_Charge
    VALUES(FR_Charge_SEQ.NEXTVAL,'0.12', 'Shipping Charges', NULL);
    --Package follows
    CREATE OR REPLACE PACKAGE DataCard_Pkg
    AUTHID CURRENT_USER
    AS
         -- The following records defines the data structure needed by the FR_Card.
         TYPE FR_Charge_Record IS RECORD
         (     FR_Charge_ID                    FR_Charge.FR_Charge_ID%TYPE,
              FR_Charge_Code                    FR_Charge.FR_Charge_Code%TYPE,
              FR_Charge_Code_DESC               FR_Charge.FR_Charge_Code_DESC%TYPE,
              FR_Charge_Code_CMT               FR_Charge.FR_Charge_Code_CMT%TYPE
         -- REF CURSOR definition used by the query procedure.
         TYPE FR_Charge_REFCUR IS REF CURSOR RETURN FR_Charge_Record;
         -- INDEX OF TABLES used for the DML Operation procedures.
         TYPE FR_Charge_Table IS TABLE OF FR_Charge_Record
              INDEX BY BINARY_INTEGER;
         --Define Procedure Specifications
         PROCEDURE FR_Charge_Query (DMLResultSet IN OUT FR_Charge_REFCUR);     
         PROCEDURE FR_Charge_Lock (DMLResultSet IN OUT FR_Charge_Table);
         PROCEDURE FR_Charge_Insert (DMLResultSet IN OUT FR_Charge_Table);
         PROCEDURE FR_Charge_Update (DMLResultSet IN OUT FR_Charge_Table);
         PROCEDURE FR_Charge_Delete (DMLResultSet IN OUT FR_Charge_Table);
    END DataCard_Pkg;
    CREATE OR REPLACE PACKAGE BODY DataCard_Pkg
    AS
         PROCEDURE FR_Charge_Query (DMLResultSet IN OUT FR_Charge_REFCUR)
         IS
         BEGIN
              OPEN DMLResultSet FOR
              SELECT FR_CHARGE.FR_Charge_ID,
                   FR_CHARGE.FR_Charge_Code,
                   FR_CHARGE.FR_Charge_Code_DESC,
                   FR_CHARGE.FR_Charge_Code_CMT
         FROM FR_Charge;
         END FR_Charge_Query;
         PROCEDURE FR_Charge_Lock (DMLResultSet IN OUT FR_Charge_Table)
         AS
              x_index NUMBER := 1;
              x_count NUMBER := DMLResultSet.COUNT;
              x_dummy_var VARCHAR2(1);
         BEGIN
              FOR x_index IN 1..x_count LOOP
                   SELECT 'X'
                   INTO x_dummy_var
                   FROM FR_Charge
                   WHERE FR_Charge_ID = DMLResultSet(x_index).FR_Charge_ID
                   FOR UPDATE NOWAIT;
              END LOOP;
         END FR_Charge_Lock;
         PROCEDURE FR_Charge_Insert (DMLResultSet IN OUT FR_Charge_Table)
         AS
              x_index NUMBER := 1;
              x_count NUMBER := DMLResultSet.COUNT;
         BEGIN
         FOR x_index IN 1..x_count LOOP
              INSERT INTO FR_Charge
              (      FR_Charge_ID,
                   FR_Charge_Code,
                   FR_Charge_Code_DESC,
                   FR_Charge_Code_CMT
              VALUES                               
              (     FR_Charge_SEQ.NEXTVAL,
                   UPPER(DMLResultSet(x_index).FR_Charge_Code),
                   DMLResultSet(x_index).FR_Charge_Code_DESC,
                   DMLResultSet(x_index).FR_Charge_Code_CMT
              END LOOP;
         END FR_Charge_Insert;
         PROCEDURE FR_Charge_Update (DMLResultSet IN OUT FR_Charge_Table)
         AS
              x_index NUMBER := 1;
              x_count NUMBER := DMLResultSet.Count;
         BEGIN
              FOR x_index IN 1..x_count LOOP
              UPDATE FR_Charge
                   SET FR_Charge_Code = UPPER(DMLResultSet(x_index).FR_Charge_Code),
                   FR_Charge_Code_DESC = DMLResultSet(x_index).FR_Charge_Code_DESC,
                   FR_Charge_Code_CMT = DMLResultSet(x_index).FR_Charge_Code_CMT
              WHERE FR_Charge_ID = DMLResultSet(x_index).FR_Charge_ID;
              END LOOP;
         END FR_Charge_Update;
         PROCEDURE FR_Charge_Delete (DMLResultSet IN OUT FR_Charge_Table)
         AS
              x_index NUMBER := 1;
              x_count NUMBER := DMLResultSet.Count;
         BEGIN
              FOR x_index IN 1..x_count LOOP
                   DELETE FROM FR_Charge
                   WHERE FR_Charge_ID = DMLResultSet(x_index).FR_Charge_ID;
              END LOOP;
         END FR_Charge_Delete;
    END DataCard_Pkg;

  • Exiting from a Block that is in Enter-Query Mode

    hello,
    can anybody show me how to cancel the query of block "x" and go to block "y", when block "x" is in enter-query mode, and the user navigates using the mouse to a field in block "y".
    thanks

    Hi, Samir
    Please create the following WHEN-MOUSE-CLICK trigger in your second block.
    If you don't want to activate enter-query mode when you click on the second block, simply remove the "enter-query;" line below.
    if :system.mode = 'ENTER-QUERY' then
    declare
    oldmsg varchar2(2);
    begin
    oldmsg := :system.message_level;
    :system.message_level := '10';
    exit_form;
    :system.message_level := oldmsg;
    end;
    next_block;
    enter_query;
    end if;When the mode is ENTER-QUERY, some built-in routines change their behaviour. EXIT_FORM; is used to cancel the enter-query mode.
    Hope this helps,
    Pedro.

  • Prevent interpretation of special characters in enter-query mode

    My problem goes as follows:
    - forms version: Forms [32 Bit] Version 6.0.8.10.3 (Production)
    - non-database item block.X, char
    - block.X is filled in post-query trigger. The post-query logic cannot be integrated in a view because it uses procedures, and usage of a pipelined function + view is currently not allowed due to "internal restrictions". Put simply: all logic to fill the field must remain in the post-query trigger
    - user wants the field to be queryable. This is achieved by storing the entered criterium in a variable in the pre-query trigger, and using it in the post-query trigger to exclude records. E.g.
    pre-query ==> help_block.query_X := block.X;
    post-query ==> if help_block.query_X is not null and block.X is null or not block.X like help_block.query then raise form_trigger_failure; end if;
    - this works fine for "regular" search strings. However:
    - whenever the search string starts with <, <=, >, >=, !, forms seems to interpret the leading characters before doing anything else. During pre-query, block.X is null, and as soon as I use it in pl/sql, I get FRM-40831: Truncation Occured: value too long for field. E.g.
    user puts the following in block.X ==> '<X', so he wants to search for records with value '<X' (text; not 'smaller than ...')
    pre-query => msg.show(block.X) ==> appears to be empty/null, but right after the message, I get FRM-40831 Truncation Occured: value too long for field ...
    This only happens if < is the first non-space character in the search string.
    Does anyone know of a way to prevent oracle from interpreting the <, <=, ... characters entered in enter-query mode?

    I'm sorry for not making myself clear; I'll give it another go:
    The problem is that, if I enter '<abc' in a form field in enter-query mode (so during creation of the "example record"), forms immediately interprets the < as 'smaller than' and does some obscure things with it (my guess: converting to a where clause, but since I'm using a non db field, this actually does nothing), and finishes by erasing the field contents (in the example record). In the pre-query trigger, I can no longer get the '<abc' and store it. I want one of the following:
    - prevent forms from interpreting the '<' in front (same thing happens for !=, <=, >=, =, ...)
    or
    - capture the entered string ('<abc') before forms reacts to the '<' in front
    Edited by: [email protected] on Feb 17, 2009 12:30 PM

  • Pressing enter query function key more than once displays past search key

    At present, in Oracle Forms this is what's happening:
    1. User presses entery-query (F7)
    2. User searches for employee name smith. Plases %Smith% in the employee name field.
    3. User presses execute-query (F8)
    4. All employee names with "Smith" is displayed.
    5. User presses enter-query again (F7). Screen is cleared.
    6. User presses enter-query for the 2nd time (F7). %Smith% appears on the employee name field.
    The problem is the user do not want %Smith% to appear the second time they press enter-query. If you guys have any idea or have experienced this, please let me know.
    Thanks.

    You are experiencing the default query last criteria functionality. When you execute the ENTER_QUERY built-in while in enter query mode, it will show the last query criteria. To override this, you could create a KEY-ENTQRY trigger on your block and give it code similar to:
    IF :SYSTEM.MODE != 'ENTER-QUERY' THEN
      ENTER_QUERY;
    END IF;

  • Enter-Query Mode

    I'm interested in starting a discussion on the restrictions of
    Enter-Query Mode, principally, why can you not navigate to a
    query only block whilst in this form mode? I have successfully
    implemented an full Query functionality without using the
    default forms behaviour, and wonder if there are any
    disadvantages that I have overlooked.
    null

    Kannan T. (guest) wrote:
    : Hi Steve,
    : Can you make your quest/requirement more clear and detailed,
    so
    : that I will be able to discuss with you for each specific
    : points.
    : With best regards,
    : Kannan
    Hi there,
    Its quite involved, I have some documentation that goes some way
    to describing the problem/solution, but briefly I find that when
    in 'Enter-Query' mode (system.mode = 'ENTER-QUERY') there are
    two restrictions
    1) You cannot navigate to another block. This is useful in a
    number of cases, like if you want to implement a more powerful
    List of Values facility, or provide the user a seperate screen
    to build up complex query criteria
    2) If you write a trigger that uses 'enter_query' built in,
    processing stops at this point. The standard workaround for this
    is to start a timer before the call to 'enter_query', and when
    the timer expires it performs the processing you want to do
    after 'enter_query'.
    So, I decided to rewrite the default forms enter/execute query
    processing (which was pretty straightforward), so my forms never
    go into 'Enter-Query' mode. What I am interested in is if there
    is anything that using the default forms processing gives, that
    I may have missed!
    Regards Steve
    null

  • Enter query

    hii i have two blocks control and data block
    whenever i am in enter query mode
    i want all the tabluar form (data balock ) records to be cleared
    plzz help me
    mandar

    Hi,
    before issuing the command 'enter_quey' , use the command 'clear_form'.
    Simon

  • When new record instance trigger at Fire Enter Query event is throwing erro

    HI
    I have the following code on when new record instance which is set to fire at Enter Query Mode
    IF :SYSTEM.BLOCK_STATUS <> 'QUERY' THEN
    rec_num:=Get_Block_Property( 'MASTER', CURRENT_RECORD);
    GO_ITEM('DETAIL.ITEM_NAME');
    CLEAR_BLOCK(NO_VALIDATE);
    GO_BLOCK('MASTER');
    GO_RECORD(rec_num);
    END IF;
    But this is throwing error when I am querying record on master block.
    It says 'Function not allowed.Please see a list of keys or functions'
    Thanks in advance.

    hi,
    GO_ITEM( ) procedure is resctricted procedure.It can not be used in Enter Query mode to navigate to an item in a different block.
    You can check wheter rest of the procedures are Enter Query Mode -Yes/No thourgh forms help window.
    Message was edited by:
    Manish.Sharma

  • Change background color in enter-query mode

    Hi everyone,
    I am trying to Change background color in enter-query mode in forms10g. I am using this
    Set_Item_property('org.branch_code', BACKGROUND_COLOR, 'Green' );
    Thanks

    This is the code that allows to colorise items in enter_query mode, then de-colorize them after execute_query.
    Assume that you have created a VA_QUERY visual atribute in your module.
    -- Colorise in enter-query mode --
    PROCEDURE Start_query IS
      LC$Block      Varchar2(30) := Name_in('system.trigger_block') ;
      LC$item       varchar2(60);
      LC$itemdeb    varchar2(60);
      LN$len        pls_integer ;
    BEGIN
      lc$itemdeb := get_block_property(LC$BLOCK, FIRST_ITEM) ;
      lc$item := LC$BLOCK || '.' || lc$itemdeb ;
      while lc$itemdeb is not null Loop
        IF GET_ITEM_PROPERTY(LC$Item , ITEM_TYPE) NOT IN ('BUTTON','RADIO GROUP','DISPLAY ITEM') Then
          IF GET_ITEM_PROPERTY(LC$Item , QUERYABLE ) = 'TRUE' Then
            set_item_property(LC$item, CURRENT_RECORD_ATTRIBUTE, 'VA_QUERY');
          End if ;
        End if ;
        lc$itemdeb := get_item_property( lc$item, NEXT_NAVIGATION_ITEM );
        lc$item := LC$BLOCK || '.' || lc$itemdeb ;
      end loop ;
    END;
    -- Unclororize after execute_query --
    PROCEDURE End_query IS
      LC$Block     Varchar2(30) := Name_in('system.trigger_block') ;
      LC$item     varchar2(60);
      LC$itemdeb     varchar2(60);
      LN$len          pls_integer ;
      LN$Multi  pls_integer ;
    BEGIN
      lc$itemdeb := get_block_property(LC$BLOCK, FIRST_ITEM) ;
      lc$item := LC$BLOCK || '.' || lc$itemdeb ;
      LN$Multi := GET_BLOCK_PROPERTY(LC$Block , RECORDS_DISPLAYED ) ;
      while lc$itemdeb is not null Loop
        IF GET_ITEM_PROPERTY(LC$Item , ITEM_TYPE) NOT IN ('BUTTON','RADIO GROUP','DISPLAY ITEM') Then
          IF GET_ITEM_PROPERTY(LC$Item , QUERYABLE ) = 'TRUE' Then
             If LN$Multi > 1 Then
                set_item_property(LC$item, CURRENT_RECORD_ATTRIBUTE, 'VA_CURRENT_RECORD');
             Else
                set_item_property(LC$item, CURRENT_RECORD_ATTRIBUTE, '');
             End if ;
          End if ;
        End if ;
        lc$itemdeb := get_item_property( lc$item, NEXT_NAVIGATION_ITEM );
        lc$item := LC$BLOCK || '.' || lc$itemdeb ;
      end loop ;
    END;Francois

Maybe you are looking for