Event data_changed of cl_gui_alv_grid

I made a program using oo to show and edit alv grid.
Here is the question...if the length of editable cell is less than about 40 ch,It is OK
If editable cell is a little longer,the handler method didn't reflect at all, it seems that the event data_changed is not raised at all
Is anyone know how to solve this problem?
(I have registered event_enter, In fact, if it is not long ,It works fine

OK,
i made some tests and found out that only the last "F4 help" selected field, and it´s value, is inserted in the MT_GOOD_CELLS / MT_MOD_CELLS.
example of my ALV insertion:
field1: "hello"
field2: "world"
field3: (F4-help and selected "X")
field4: "test"
Saving: And now the MT_GOOD/MOD_CELLSis filled with FIELD3 and Value = 'X' ! but the rest is missing !
Any ideas what is wrong or what i am missunderstanding her ?

Similar Messages

  • Question to: event data_changed of cl_gui_alv_grid

    Hi,
    i am using event data_changed of cl_gui_alv_grid in my z_ALV Report to check and save new added ALV entries.
    event: data_changed uses er_data_changed type CL_ALV_CHANGED_DATA_PROTOCOL
    case1: after inserting a new line and saving.
    The attribute: MT_INSERTED_ROWS and MT_GOOD_CELLS is filled with all needed information.
    case 2: but after inserting a new line then using "F4help" on one ALV field and saving.
    The attribute: MT_INSERTED_ROWS is empty and MT_GOOD_CELLS is filled with one ALV field(F4help) ?
    Any ideas what is going wrong here ?
    I checked: BCALV_EDIT_04 within both cases and it´s working fine.:
    The attribute: MT_INSERTED_ROWS and MT_GOOD_CELLS is filled with all data.
    Regards,
    Gordon

    OK,
    i made some tests and found out that only the last "F4 help" selected field, and it´s value, is inserted in the MT_GOOD_CELLS / MT_MOD_CELLS.
    example of my ALV insertion:
    field1: "hello"
    field2: "world"
    field3: (F4-help and selected "X")
    field4: "test"
    Saving: And now the MT_GOOD/MOD_CELLSis filled with FIELD3 and Value = 'X' ! but the rest is missing !
    Any ideas what is wrong or what i am missunderstanding her ?

  • Cl_gui_alv_grid: Summing after event: data_changed

    Hello,
    I want to get the Sub-Total lines refreshed within
    the event "data_changed of cl_gui_alv_grid"
    Actually it works in PAI  with
    method "REFRESH_TABLE_DISPLAY". But i want to do it
    immidiatly when the user has changed some value.
    Calling this method within the event "data_changed.."
    has no effect.
    I could't find a method which is doing this.
    Maybe the event SUBTOTAL_TEXT will work, but i don't
    know exactly whow to implement it.
    Can somebody help me?
    Thanks in advance
    Michael

    Hi Michael
    Try calling the method <b>"REFRESH_TABLE_DISPLAY"</b> at the end of the event <b>"data_changed_finished"</b> instead.
    If this does not help, try defining youe events as application events.
    Regards
    *--Serdar <a href="https://www.sdn.sap.com:443http://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.sdnbusinesscard?u=qbk%2bsag%2bjiw%3d">[ BC ]</a>

  • ALV_grid oo: event "data_changed" on F4 in the line only for some fields

    Hi all,
    when I add a new line in ALV_Grid and I select the search help, for some fields
    the event "data_changed" has triggered even I have not finished to fill the entire fields on the line, and I don't need this.
    Opposite I have some fields which work fine and when I choose F4 the list of the
    possible values has showed without triggering "data_changed".
    Does anyboby know how is it possible?
    Since I'm new on ALV_grid oo, could you give a detailed answer?
    I thank You in advance.
                                                              Best Regards
                                                              Paolo

    I solved the problem int this way: 
    METHODS:
          handle_data_changed
              FOR EVENT data_changed
               OF cl_gui_alv_grid
              IMPORTING er_data_changed
              <u><i>e_onf4</i></u> e_onf4_before e_onf4_after.
      METHOD handle_data_changed.
    DATA: ls_good      TYPE lvc_s_modi.
    error_in_data = space.
    IF e_onf4 IS INITIAL.
      CALL METHOD check_righe_doppie  ( er_data_changed ).
      CALL METHOD update_delta_tables ( er_data_changed ).
      CALL METHOD semantic_checks     ( er_data_changed ).
    ENDIF.
      ENDMETHOD.                                  "handle_data_changed
    Message was edited by:
            Paolo Cavallini

  • AbapOO-event data_changed and F4- not in correct sequence (unwanted popup)

    Hi,
    I have a splitter screen as a docking container to screen 100.
    This splitter has a tree and an alv.
    The alv part is editable and has the event data_changed is defined for the editable field.
    The fieldcatalog on the alv (which has a dynamic field symbol as the data table) had the flag F4AVAILABE=X on the editable field.
    The problem:
    when I change the value on the editable field from invalid value to valid value, I still get the automatic SAP popup that says that my old value is not found in the check table.
    WHY DO I GET THIS POPUP?
    OR
    HOW TO CONTROL THAT THE POPUP WILL BE AFTER THE VALUE CHANGE IS CAUGHT?
    I checked the field symbol table and the value is being changed in the table before I get the message (for some reason on the data_changed event, the table er_data_changed->mt_good_cells is initial but the table er_data_changed->mt_mod_cells is filled with my changed data).
    The ugly solution:
    I put 'leave to screen 100' command after the update and I do not get the popup message anymore. but I would like to do so without refreshing the whole screen with this trip to the server.
    I tried to put dispatch and flush (doesn't make sense to put them here but it can't damage) but this didn't help.
    any ideas?
    Thanks guys.

    Thanks for your reply.
    I did several programs with this method and the data always appears. you can also examine the SAP program I mentioned down.
    I think that will not work but I may be wrong.
    do you have any exape using this handler?
    This event does not have a reference to the changed data so you would not know what field was changed.
    if you look at the SAP example program BCALV_GRID_EDIT you will see that they use the same thing:
    class lcl_event_receiver definition.
      public section.
        methods handle_data_changed
          for event data_changed of cl_gui_alv_grid
          importing er_data_changed.
    class lcl_event_receiver implementation.
      method handle_data_changed.
        perform data_changed using er_data_changed.
      endmethod.
    form data_changed using  rr_data_changed type ref to
                                             cl_alv_changed_data_protocol.
      data: ls_mod_cells type lvc_s_modi.
      loop at rr_data_changed->mt_good_cells into ls_mod_cells.
        case ls_mod_cells-fieldname.
          when  'CARRID'.
    Itay

  • Event data_changed - Can't export all global table values

    METHODS handle_data_changed_pop
        FOR EVENT data_changed OF cl_gui_alv_grid
        IMPORTING er_data_changed.
    I trigger that with methoch check_data_changed..
    Er_data_changed delivers the rows that are changed.
    With this information I enrich the global table I have for set_table forfisrt_display.
    Also I enrich this table with some other information.
    I lose the some new information in the global table after I leave these methods - excpesially check data.
    I don't know what to do...
    Database Modify does also not work at that place of code... Is there a reason?

    Hello Ezachiael
    You should use the event handler method HANDLE_DATA_CHANGED only for validating new and modified data.
    If you need to enrich your OUTTAB itab based on the input data just trigger PAI from your event handler method using:
    CALL METHOD cl_gui_cfw=>set_new_ok_code ( ok_code = 'ENRICH_OUTPUT' ).
    PAI is triggered with this new ok-code and HERE you should enrich your OUTTAB because all the changes from the ALV grid control (frontend) have now been forwarded to you ABAP itab (backend).
    Regards
      Uwe

  • ALV event  data_changed error

    Hello everybody,
    I have a one  editable field in ALV. After 'ENTER'  I want do some actions ( check input , save data into DB table...).
    CLASS lcl_gui DEFINITION CREATE PROTECTED.
      PUBLIC SECTION.
        DATA: mor_alv    TYPE REF TO cl_gui_alv_grid,
    METHODS:   alv_init,
                        alv_changed FOR EVENT data_changed
                                             OF cl_gui_alv_grid
                                             IMPORTING er_data_changed,
                        register_events,
    METHOD register_events .
       CALL METHOD mor_alv->register_edit_event
         EXPORTING
         i_event_id = cl_gui_alv_grid=>mc_evt_enter.
        SET HANDLER me->alv_changed FOR mor_alv.
      ENDMETHOD.
    After  I change field and pres 'ENTER' I get popup with message "Programs error" and program exits.
    (On the screen in other container I  also have  ALV Tree-CL_GUI_ALV_TREE , maybe it is impotrant to mention...)
    Please help.

    Hi Sandeep,
    as I said I just get popup wit error message "Program errors" with just "Exit" button, when I press the button program exits.
    I get no runtime error, just this popup.
    Regards
    Jan.

  • OO ALV validation check without event DATA_CHANGED and results via popup

    Hi Gurus,
    I'm working on SAP ECC 6.0 and I'm facing a problem during the ALV validation check. My requirement is to show an ALV with one editable field. In addition I have to pre-initialize this field in order to give a reference value to the user, but this is not always correct, or better, this field represent the maximum amount available, but, because of other validation checks, this field is not always correct (and it's ok, it's not a problem), and if it is greater than another amount I have to display an error.
    I was thinking about catching the event DATA_CHANGED and do the checks inside of it. It works but not completely, because if the user do not change anything the event is not raised and I cannot do my checks.
    My solution is to do the checks without catching the DATA_CHANGED event and display the errors in a separate popup window.
    The checks are ok, but I have problems during the displaying of the results: I would like to use the class CL_ALV_CHANGED_DATA_PROTOCOL in order to display the errors, I tried creating the Object:
      Data: go_Error Type Ref To CL_ALV_CHANGED_DATA_PROTOCOL.
      Create Object go_Error
        Exporting
    *      i_container =
          i_calling_alv = go_0200_Alv
    giving it a reference to the ALV (the go_0200_Alv is my CL_GUI_ALV_GRID object).
    Then I did many Call Methods to the Add_Protocol_Entry to add the message in the protocol and then display them calling the Display_Protocol Method of my "go_Error".
    The Popup is shown and the "links" to the ALV are correct (if I double click a message it selects the corresponding row of the ALV, but (and it's my problem) I cannot see the Description of the Column with the error: the popup window is an ALV grid itself with 3 columns ("Message Type", "Name of the Column" and "Message Text") where I can see correctly the Message Type and the Message Text but not the name of the column.
    Debugging the code I found that If I catch the event, the parameter er_Data_Changed (the class CL_ALV_CHANGED_DATA_PROTOCOL) is filled with some other informations like Modified Rows and other attributes like FieldCatalog, Row-ID, so I thought the problem was related to that, and that's why I replicated the whole case in my processing, filling every table I would see if I use the "standard way" for validation. Bu it didn't correct the error. I still don't see the name of the Column.
    This is my code, it's only the part interested, If you need other informations, please ask me and I will copy them.
    form CHECK_ALV_0200_0110 Changing pc_Error Type Char01.
      Data: lt_MatchK1 Type tp_Matches1_Key_t,
            l_Message  Type Char100,
            l_MessX    Type String,
            l_QtaRes   Type ZDM_AMT_ASSIGNED,
            l_QtaAcc   Type ZDM_AMT_ACCRUED,
            l_QtaStep  Type ZDM_AMT_ASSIGNED.
      Field-Symbols: <fs_Table>    Type Standard Table,
                     <fs_Master>   Type Standard Table,
                     <fs_Mod_Cell> Type LVC_S_MODI,
                     <fs_Line>     Type Any,
                     <fs_Field>    Type Any,
                     <fs_Any>      Type Any.
      Data lt_Matches_Alv_Mod Type tp_Matches1_Alv_t.
      Data ls_Modi Type LVC_S_MODI.
      Data: l_Row_ID Type I,
            l_Tabix  Type I.
      Field-Symbols: <fs_Match_ALV> Type tp_Matches1_Alv_s.
      Free go_Error.
      CREATE OBJECT go_Error
        EXPORTING
    *      i_container =
          i_calling_alv = go_0200_Alv
    * Validation Checks
      Clear pc_Error.
      Clear ls_Modi.
      Loop At gt_Matches1_Alv Assigning <fs_Match_ALV>.
        l_Tabix = Sy-Tabix.
        Check <fs_Match_ALV>-Status Eq con_Status_Temp.
    *   Set the Modified Row for the CL_ALV_CHANGED_DATA_PROTOCOL object
          Append <fs_Match_ALV> To lt_Matches_Alv_Mod.
          Add 1 To ls_Modi-Row_Id.
          ls_Modi-FieldName = 'AMT_DEDUCTED'.
          Write <fs_Match_ALV>-Amt_Deducted To ls_Modi-Value Currency <fs_Match_ALV>-Waers.
          Condense ls_Modi-Value No-Gaps.
          ls_Modi-Tabix = l_Tabix.
          Append ls_Modi To: go_Error->mt_Mod_Cells,
                             go_Error->mt_Good_Cells.
          l_Row_ID = ls_Modi-Row_Id.
        Clear l_Message.
        If <fs_Match_ALV>-Amt_Deducted Eq 0.
          pc_Error = con_X.
          CALL METHOD go_Error->Add_Protocol_Entry
            EXPORTING
              i_msgid     = 'ZDMV'
              i_msgty     = 'E'
              i_msgno     = '005'
    *          i_msgv1     =
    *          i_msgv2     =
    *          i_msgv3     =
    *          i_msgv4     =
              i_fieldname = 'AMT_DEDUCTED'
              i_row_id    = l_Row_ID
    *          i_tabix     =
          Continue.
        EndIf.
        Case g_Dynnr.
          When '0110'.
            Perform Get_ResQtaDispute1 Using lt_MatchK1
                                             <fs_Match_ALV>
                                       Changing l_QtaRes.
            Perform Get_ResQtaAccrued1 Using <fs_Match_ALV>
                                       Changing l_QtaAcc.
    *      When '0111'.
    *        Perform Get_ResQtaDispute2 Using lt_MatchK2
    *                                         <fs_Match_ALV>
    *                                   Changing l_QtaRes.
    *        Perform Get_ResQtaAccrued2 Using <fs_Match_ALV>
    *                                   Changing l_QtaAcc.
        EndCase.
        Add <fs_Match_ALV>-Amt_Deducted To l_QtaStep.
        If l_QtaStep > l_QtaRes.
    *     Store the Error
          pc_Error = con_X.
          Write l_QtaRes To l_Message Currency <fs_Match_ALV>-Waers.
          Condense l_Message No-Gaps.
          CALL METHOD go_Error->Add_Protocol_Entry
            EXPORTING
              i_msgid     = 'ZDMV'
              i_msgty     = 'E'
              i_msgno     = '002'
              i_msgv1     = l_Message
    *          i_msgv2     =
    *          i_msgv3     =
    *          i_msgv4     =
              i_fieldname = 'AMT_DEDUCTED'
              i_row_id    = l_Row_ID
    *          i_tabix     =
        EndIf.
        If l_QtaStep > l_QtaAcc.
    *     Store the Error
          pc_Error = con_X.
          Write l_QtaAcc To l_Message Currency <fs_Match_ALV>-Waers.
          Condense l_Message No-Gaps.
          CALL METHOD go_Error->Add_Protocol_Entry
            EXPORTING
              i_msgid     = 'ZDMV'
              i_msgty     = 'E'
              i_msgno     = '002'
              i_msgv1     = l_Message
    *          i_msgv2     =
    *          i_msgv3     =
    *          i_msgv4     =
              i_fieldname = 'AMT_DEDUCTED'
              i_row_id    = l_Row_ID
    *          i_tabix     =
        EndIf.
      EndLoop.
      If pc_Error Eq con_X.
    *   If there was at least one error, Display the Popup
        go_Error->mt_FieldCatalog[]   = gt_0200_FCat[].
        go_Error->ms_Layout-Zebra     = con_X.
        Get Reference Of lt_Matches_Alv_Mod[] Into go_Error->Mp_Mod_Rows.
        CALL METHOD go_error->display_protocol
    *      EXPORTING
    *        i_container        =
    *        i_display_toolbar  =
    *        i_optimize_columns =
      EndIf.
    EndForm.
    Do you know if there is a particular issue about that? Or, maybe, I'm doing something wrong...
    Please help me
    Regards,
    Claudio
    Edited by: Claudio Distrutti on Oct 31, 2008 12:38 PM

    Hello Claudio
    Nobody prevents you from calling your event handler method go_grid->HANDLE_DATA_CHANGED directly!
    What do I mean with that?
    I assume you are calling method go_grid->CHECK_CHANGED_DATA at the beginning of the PAI module to catch any changes from the editable ALV grid. Within the event handler method you do your validation and send the error popup if necessary.
    Now when the user closes the error popup and pushes e.g. the SAVE button then I can happen that method HANDLE_DATA_CHANGED does not trigger event DATA_CHANGED because nothing was indeed changed on the ALV grid. Yet the invalid value is still there.
    However within the FORM routine for saving the data you can just call your event handler method directly:
    FORM save_data.
    CALL METHOD go_grid->handle_data_changed
        EXPORTING
    *      er_data_changed =
          e_ucomm = 'SAVE'.
    ENDFORM.
    Now within your event handler method you always know when the method was called because if method CHECK_CHANGED_DATA triggers event DATA_CHANGED the IMPORTING parameter ER_DATA_CHANGED is bound whereas it is empty when the method is called from your SAVE routine.
    METHOD handle_data_changed.
      DATA: lo_log   TYPE REF TO CL_ALV_CHANGED_DATA_PROTOCOL.
        IF ( er_data_changed IS BOUND ).
          lo_log = er_data_changed.
        ELSE.
          CREATE OBJECT lo_log.
        ENDIF.
    " Do the validations and send error log if necessary
      lo_log->DISPLAY_PROTOCOL( ).
    ENDMETHOD.
    Regards
      Uwe

  • Problem in raising the event DATA_CHANGED in OOP ALV

    Hi experts,
    I am currently having trouble in raising the event 'data_changed' in my OOP ALV . The event is triggered everytime I make changes to my editable cells but when it comes to clicking on the save button, it only calls 'data_changed_finished' and bypasses 'data_changed'.
    I need to call 'data_changed' before the data is saved to do some verification.
    My code is shown below.
    CALL METHOD gr_alvgrid->register_edit_event
         EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
    *--functions
        CALL METHOD gr_alvgrid->set_table_for_first_display
        EXPORTING
        is_variant           = s_variant
        i_save               = 'A'
        i_default            = gc_true
        is_layout            = gs_layout
        it_toolbar_excluding = gt_exclude
        CHANGING
        it_outtab            = gt_list
        it_fieldcatalog      = gt_fieldcat
        EXCEPTIONS
        invalid_parameter_combination = 1
        program_error = 2
        too_many_lines = 3
        OTHERS = 4 .
        IF sy-subrc <> 0.
    "raise message
        ENDIF.
    CREATE OBJECT gr_event.
    SET HANDLER gr_event->handle_data_changed FOR gr_alvgrid.
    SET HANDLER gr_event->handle_data_changed_finished FOR gr_alvgrid.
    CALL METHOD gr_alvgrid->set_toolbar_interactive.
    CALL METHOD gr_alvgrid->set_ready_for_input
                  EXPORTING i_ready_for_input = 1.
    In my PAI
    CASE ok_code.
        WHEN 'SAVE'.
    *--->this calls the event 'data_changed_finished' and bypasses  'data_changed'.*                                                     
    *Check if there's data changed.
          CALL METHOD gr_alvgrid->check_changed_data
            IMPORTING
              e_valid = l_valid.
      ENDCASE.
    I checked the sap sample program BCALV_EDIT_04 and I don't see any difference except for register_edit_event but I don't think that I can leave this out in my code . Is there any points i'm missing here?
    Thanks,
    Patrick

    Hi, Spin
    do like below,
    DATA: gr_alvgrid TYPE REF TO cl_gui_alv_grid,
          cc_alv TYPE REF TO cl_gui_custom_container.
    IF cc_alv IS INITIAL. " USE This Condition
      CREATE OBJECT cc_alv
        EXPORTING
          container_name = 'CC_ALV'.
      CREATE OBJECT gr_alvgrid
        EXPORTING
          i_parent = cc_alv.
      CALL METHOD gr_alvgrid->set_table_for_first_display
        EXPORTING
          is_variant                    = s_variant
          i_save                        = 'A'
          i_default                     = gc_true
          is_layout                     = gs_layout
          it_toolbar_excluding          = gt_exclude
        CHANGING
          it_outtab                     = gt_list
          it_fieldcatalog               = gt_fieldcat
        EXCEPTIONS
          invalid_parameter_combination = 1
          program_error                 = 2
          too_many_lines                = 3
          OTHERS                        = 4.
      IF sy-subrc = 0.
        "raise message
      ENDIF.
    ENDIF.
    Please reply if any Issue,
    Thanks and Regard,
    Faisal

  • ALV, event DATA_CHANGED, avoid insert of duplicate key

    Hello,
    I would like to implement edit functionality of an internal table with ALV based on class CL_GUI_ALV_GRID. Some fields of internal table are key fields and the combination of them should be unique. The user has a possibility to add a new record (all fields in new record are editable) or change values in an existing record (only non-key fields are editable). So far so good, it works.
    I'm doing a validation of entered data in the event DATA_CHANGED. In this event I'm checking if the new record is a duplicate combination of existing key fields. If yes, then all fields of the new record are reported as error with ADD_PROTOCOL_ENTRY method. This removes all entries related to this row from MT_GOOD_CELLS table and this is ok for me.
    My problem: after validation ALV inserts such empty row in my internal table and next time, when the user makes a correction, this record is an update and not a new record (there is no entry in MT_INSERTED_ROWS).
    Question: Is there a possibility to avoid ALV inserting a new record when all its cells are bad?
    Regards,
    Annie

    Hi,
    As far as i have understood your problem,you can try the following to avoid the insertion of an empty row:
    When you must be creating an empty row,just set a flag say flag_create = 'X'.
    Then when you are performing the validation then if there is an error then check for this flag that is :
    if flag_create = 'X'.
    then delete from the internal table based on sy-tabix.
    endif.
    This way the new row that got appended with wrong values will get deleted and the code will not consider this as an updated row.
    Kindly <<deleted> if useful.:)
    Follow the rules of engagement
    Edited by: Vijay Babu Dudla on Jan 9, 2012 7:07 AM

  • Raise event data_changed doesnu00B4t pass parameter

    I'm using a editable alv (inheritance).
    CLASS lcl_my_alv DEFINITION INHERITING FROM cl_gui_alv_grid.
      PUBLIC SECTION.
        METHODS: activate_data_chg.
    ENDCLASS.                    "lcl_my_alv DEFINITION
    CLASS lcl_my_alv IMPLEMENTATION.
      METHOD activate_data_chg.
        DATA: pr_data_changed TYPE REF TO cl_alv_changed_data_protocol.
        RAISE EVENT data_changed
          EXPORTING er_data_changed = pr_data_changed.
      ENDMETHOD.                  
    ENDCLASS.                    "lcl_my_alv IMPLEMENTATION
    The event is raised by
      CALL METHOD alv_loc_onh->activate_data_chg
    The method handling the event is activated.
    The problem is that the parameter er_data_changed remains empty.
    Suggestions how to solve this ?

    Hi ,
            you have to call checked_changed_data using the class cl_alv_gui_grid object
    Please reward if useful.

  • Set ALV cell, use of event DATA_CHANGED

    Hi experts,
    I want to set some ALV input fields using abap.
    That's easy, I can modify the table as I need and call the refresh of the ALV table ( refresh_table_display).
    But how can I "fill" the fields that the event DATA_CHANGED is called?
    When I fill manually in ALV, this event is raised...I need the event also when filling with ABAP...
    Thanks in advance
    Michael

    Hello Michael,
    This link shows you the right way to do:
    Get Changed Value In ALV Grid Dynamically - ABAP Development - SCN Wiki
    Inside HANDLE_DATA_CHANGED method, you can change the value of a cell in this way:
    CALL METHOD PR_DATA_CHANGED->MODIFY_CELL
        EXPORTING
          I_ROW_ID    = IT_TABLE-ROW_ID
          I_FIELDNAME = 'FIELD'
          I_VALUE     = IT_FLIGHT-FIELD.
    I hope you help.

  • ALV-Event data_changed after searchhelp with userdefined searchhelpexit

    Hi there ...
    I'm using an OO alv grid with an elementary searchhelp at defined fields.
    the search help uses an searchhelpexit, that simply filters data, to show the right stuff
    everything works fine!
    dependent on the returned value of the searchhelp, I need to trigger a recalculation of values.
    the alv-event "data_changed" looks interesting for that issue ... especially the flag "e_onf4_after" ...
    BUT: I don't know, when the flag is set :$
    the event is raised (with marked flags "e_onf4" and "e_onf4_before") before the Searchhelplist is displayed .... but I need to react AFTER the searchhelp is closed and the selected value is returned ...
    all I want to do is:
    trigger the recalculation after the user selected a value at the searchhelp
    can anybody help me in that case?!
    thanks a lot  & enjoy your weekend
    Markus

    Hi,
    You can call elementary search help like any popup screen
    with function F4IF_FIELD_VALUE_REQUEST.
    - Call f4 help manually in the event DATA_CHANGED
    - Process your recalculation
    - set values on cells..
    I hope it helps.

  • About events of class cl_gui_alv_grid

    When the following two event gets trigger in execution.
    I mean by clicking what they get trigger or how we can triger them and how to use them.
    menu_button
    data_changed
    In general how one can understand that which event will be triigered when from the class event.

    Hello Amit
    In order to understand the event DATA_CHANGED in more detail you may have a look at Get edited data ou of grid back into internal tabel
    and the links provided therein (in particular my discussion with David Halitsky).
    Regards
      Uwe

  • EVENT USER_COMMAND for CL_GUI_ALV_GRID

    Hello All,
    We have a program that uses the CL_GUI_ALV_GRID and the events user_command and context_menu_request.  The program functions by selecting an option for the context menu on an ALV grid which will then take you to another screen with another ALV grid. 
    The issue is on the second screen where the user clicks the back button to return to the first ALV Grid.  For some reason, the functionality of Method user_command is triggered twice preventing the user from returning to the initial screen.  Once when the menu option is selected and again when the Back button on the second screen is selected.  If the user clicks the Back button again it will return to the initial ALV grid.  We need to have the program go to the initial ALV grid after the Back button is clicked the first time not the second. 
    Does anyone have any suggestions on how to correct this?  Thanks in advance for your help.
    John

    Hi John,
    maybe this will help you. I had a similar situation.
    1.) When you initialize the grid-controls try to set a
    unique identifier within the display-variant.
    lf_variant TYPE disvariant.
    lf_variant-report = ls_report (NOT SY_REPID!)
    lf_variant-handle = 'HUGO'....
    2.) After leaving the 2. screen clear all handles using
    the method hndle->free, free, clear ...
    In PAI you can easaly check <if hndle is initial> 
    or <if not ( hndle is initial )> ....
    Hope this will help you
    BR
    Michael

Maybe you are looking for

  • Change day range in Calendar to end at 3am?

    Hello, I am a night-owl.  It would help when planning my day if the day hour range spanned from something like 11am to 3am, rather than 12am to 11pm.  I don't think this is possible but thought I should ask, anyway. Thank you.

  • Long Text In ALV - Exporting to Excel sheet

    Hi, Currently my ALV report reads the text using READ_TEXT fm and it displays only the first line of the text in the report. To the see the remaining lines of the text, user needs to double click on the text in the report and it creates another ALV r

  • Why some PDF files are not imported into my iPod?

    Hi, Yesterday, I added a new book to iTune and syn my iPod.  After the syn, I found that only about 50% of the books on iTune showed up on the iPod.  Can anyone tell me what is wrong and how to fix this problem so that all books can be imported?

  • Best monitor for colour critical work

    Hopefully this won't in the wrong forum but I'm looking for monitor recommendations for using with CS5.5 for print work in Photoshop and InDesign on a Mac Mini. I've got a Spyder 3 for calibration so that side of things is covered, the Apple Thunderb

  • SpeedGrade crashes every time it is launched standalone and never works when using direct link from Premiere.

    SpeedGrade crashes every time it is launched standalone and when using Direct link to Adobe SpeedGrade from Premiere it only closes Premiere. It never try to even open SpeedGrade. All the effects have been removed and I have been successful with this