‎2008 Apr 17 10:18 AM
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.
‎2008 Apr 17 10:45 AM
Problem solved
CALL METHOD grid->register_edit_event
EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified.
missing