Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Problem with data_changed event (single/double click)

Former Member
0 Likes
439

Hi there. I've got a problem. I have a class


*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver DEFINITION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS: event_handler_hit_enter
    FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING
      er_data_changed
      sender .

    CLASS-METHODS: handle_double_click
    FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING
      e_row
      e_column
      es_row_no .

    CLASS-METHODS: e_cbox_clicked02
    FOR EVENT data_changed OF cl_gui_alv_grid
    IMPORTING
      er_data_changed
      sender .
ENDCLASS.



*---------------------------------------------------------------------*
*       CLASS lcl_event_receiver IMPLEMENTATION
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
...

  METHOD e_cbox_clicked02 .
    DATA: mod_line like G_changes02  .
    DATA: pchange type ref to cl_alv_changed_data_protocol .
    DATA: G_changes_ LIKE LINE OF G_changes02 .
    DATA: roid TYPE LVC_S_ROID .

    field-symbols <mod_table> type standard table .

    pchange = er_data_changed .
    ASSIGN pchange->mp_mod_rows->* TO <mod_table> .
    READ table <mod_table> INTO mod_line INDEX 1 .
    MODIFY TABLE G_changes02 FROM mod_line .

    CALL METHOD g_report02->refresh_table_display .

    call method cl_gui_cfw=>set_new_ok_code
      exporting
        new_code = 'GRIDHANDLE'.
  ENDMETHOD .
...

ENDCLASS .

I create a gri object

 
  IF ( c_report02 IS INITIAL ) .
    CREATE OBJECT c_report02
      EXPORTING container_name = 'C_REPORT02'.

    REFRESH G_changes02 .

    SELECT * ...

  IF ( g_report02 IS INITIAL ) .
    CREATE OBJECT g_report02
      EXPORTING i_parent = c_report02 .

    SET HANDLER lcl_event_receiver=>e_cbox_clicked02
      FOR g_report02 .

    PERFORM fieldcat_report02 .

    l_report02-no_toolbar = 'X' .
    l_report02-zebra      = 'X' .

    CALL METHOD g_report02->set_table_for_first_display
      EXPORTING is_layout = l_report02
                i_save     = 'A'
      CHANGING  it_outtab  = G_changes02[]
                it_fieldcatalog = ws_fieldcat_report02 .
  ELSE .
    CALL METHOD g_report02->refresh_table_display .
  ENDIF .

Now when I tick a checkbox inside grid - it doesn't enter class method e_cbox_clicked02, whilst when I give 2 click on the checkbox - it works

Do You have any suggestions about that? Greetings. P.

1 REPLY 1
Read only

Former Member
0 Likes
323

Problem solved


    CALL METHOD grid->register_edit_event
      EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.

missing