ALV OO events
Autor: Ricardo Moura Braga | Publicado: 2015-04-17T10:13:00-03:00

Pra Não esquecer nunca mais....ALV OO....e seus eventos.....

font:&nbsp;http://www.kerum.pl/infodepot/00006%7Chttp://www.kerum.pl/infodepot/00006


PROGRAM&nbsp;zkmalvev.

*&nbsp;1.&nbsp;SE38:&nbsp;create&nbsp;executable&nbsp;program&nbsp;(type&nbsp;1),&nbsp;use&nbsp;PROGRAM
*&nbsp;&nbsp;&nbsp;&nbsp;instead&nbsp;of&nbsp;REPORT&nbsp;because&nbsp;it&nbsp;will&nbsp;have&nbsp;screen&nbsp;and&nbsp;modules
*
*&nbsp;2.&nbsp;SE80:&nbsp;create&nbsp;screen&nbsp;0100
*
*&nbsp;3.&nbsp;Screen&nbsp;Painter:&nbsp;on&nbsp;the&nbsp;screen&nbsp;0100&nbsp;create&nbsp;'Custom&nbsp;control'
*&nbsp;&nbsp;&nbsp;&nbsp;CONT1_0100
*
*&nbsp;4.&nbsp;SE80:&nbsp;for&nbsp;screen&nbsp;0100&nbsp;set&nbsp;the&nbsp;variable&nbsp;OK_CODE&nbsp;for&nbsp;the&nbsp;element&nbsp;OK
*
*&nbsp;5.&nbsp;SE80:&nbsp;create&nbsp;calls&nbsp;to&nbsp;PBO&nbsp;and&nbsp;PAI&nbsp;in&nbsp;the&nbsp;flow&nbsp;logic&nbsp;of&nbsp;screen&nbsp;0100:
*
*&nbsp;&nbsp;&nbsp;&nbsp;PROCESS&nbsp;BEFORE&nbsp;OUTPUT.
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODULE&nbsp;pbo_0100.
*&nbsp;&nbsp;&nbsp;&nbsp;PROCESS&nbsp;AFTER&nbsp;INPUT.
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MODULE&nbsp;pai_0100.
*
*&nbsp;6.&nbsp;SE80:&nbsp;create&nbsp;GUI&nbsp;Status&nbsp;STAT_0100,&nbsp;assign&nbsp;functions&nbsp;EXIT&nbsp;and&nbsp;SAVE
*&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;standard&nbsp;icons,&nbsp;eventually&nbsp;create&nbsp;your&nbsp;own&nbsp;toolbar&nbsp;button

TYPE-POOLS:
&nbsp;&nbsp;slis.

CLASS&nbsp;cl_event_receiver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DEFINITION&nbsp;DEFERRED.
CLASS&nbsp;cl_base_event_receiver&nbsp;&nbsp;DEFINITION&nbsp;DEFERRED.

DATA:
&nbsp;&nbsp;gt_usr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;TABLE&nbsp;OF&nbsp;usr02,
&nbsp;&nbsp;gs_usr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;usr02.

DATA:
&nbsp;&nbsp;go_grid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;REF&nbsp;TO&nbsp;cl_gui_alv_grid,
&nbsp;&nbsp;go_custom_container&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;REF&nbsp;TO&nbsp;cl_gui_custom_container,
&nbsp;&nbsp;go_event_receiver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;REF&nbsp;TO&nbsp;cl_event_receiver,
&nbsp;&nbsp;go_base_event_receiver&nbsp;TYPE&nbsp;REF&nbsp;TO&nbsp;cl_base_event_receiver,
&nbsp;&nbsp;ok_code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;sy-ucomm,
&nbsp;&nbsp;gt_fcat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TYPE&nbsp;lvc_t_fcat.

*----------------------------------------------------------------------*
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLASS&nbsp;cl_event_receiver&nbsp;DEFINITION
*----------------------------------------------------------------------*
CLASS&nbsp;cl_event_receiver&nbsp;DEFINITION.

&nbsp;&nbsp;PUBLIC&nbsp;SECTION.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_right_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;RIGHT_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;right_click&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_left_click_design&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;LEFT_CLICK_DESIGN
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;left_click_design&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_move_control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;MOVE_CONTROL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;move_control&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_size_control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;SIZE_CONTROL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;size_control&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_left_click_run&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;LEFT_CLICK_RUN
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;left_click_run&nbsp;OF&nbsp;cl_gui_alv_grid.


&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_onf1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONF1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;onf1&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_fieldname
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;er_event_data.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_onf4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONF4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;onf4&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_fieldname
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_fieldvalue
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;er_event_data
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;et_bad_cells
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_display.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_data_changed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DATA_CHANGED
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;data_changed&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;er_data_changed
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_onf4
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_onf4_before
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_onf4_after
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_ucomm.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_ondropgetflavor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONDROPGETFLAVOR
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;ondropgetflavor&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dragdropobj
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_flavors.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_ondrag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONDRAG
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;ondrag&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dragdropobj.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_ondrop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONDROP
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;ondrop&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dragdropobj.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_ondropcomplete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;ONDROPCOMPLETE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;ondropcomplete&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dragdropobj.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_subtotal_text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;SUBTOTAL_TEXT
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;subtotal_text&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_subtottxt_info
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ep_subtot_line
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_event_data.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_before_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;BEFORE_USER_COMMAND
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;before_user_command&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_ucomm.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;USER_COMMAND
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;user_command&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_ucomm.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_after_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;AFTER_USER_COMMAND
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;after_user_command&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_ucomm
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_not_processed.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_double_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DOUBLE_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;double_click&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_delayed_callback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DELAYED_CALLBACK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;delayed_callback&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_delayed_changed_sel_cal&nbsp;"&nbsp;DELAYED_CHANGED_SEL_CALLBACK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;delayed_changed_sel_callback&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_print_top_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;PRINT_TOP_OF_PAGE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;print_top_of_page&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table_index.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_print_top_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;PRINT_TOP_OF_LIST
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;print_top_of_list&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_print_end_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;PRINT_END_OF_PAGE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;print_end_of_page&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_print_end_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;PRINT_END_OF_LIST
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;print_end_of_list&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_top_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOP_OF_PAGE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;top_of_page&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dyndoc_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table_index.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_context_menu_request&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;CONTEXT_MENU_REQUEST
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;context_menu_request&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_object.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_menu_button&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;MENU_BUTTON
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;menu_button&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_object
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_ucomm.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_toolbar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOOLBAR
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;toolbar&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_object
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_interactive.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_hotspot_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;HOTSPOT_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;hotspot_click&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_row_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_column_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_end_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;END_OF_LIST
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;end_of_list&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_dyndoc_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_after_refresh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;AFTER_REFRESH
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;after_refresh&nbsp;OF&nbsp;cl_gui_alv_grid.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_button_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;BUTTON_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;button_click&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_col_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;es_row_no.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_data_changed_finished&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DATA_CHANGED_FINISHED
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;data_changed_finished&nbsp;OF&nbsp;cl_gui_alv_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e_modified
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;et_good_cells.

ENDCLASS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cl_event_receiver&nbsp;DEFINITION

*----------------------------------------------------------------------*
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLASS&nbsp;cl_event_receiver&nbsp;IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS&nbsp;cl_event_receiver&nbsp;IMPLEMENTATION.

&nbsp;&nbsp;METHOD&nbsp;handle_right_click.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_right_click

&nbsp;&nbsp;METHOD&nbsp;handle_left_click_design.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_left_click_design

&nbsp;&nbsp;METHOD&nbsp;handle_move_control.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_move_control

&nbsp;&nbsp;METHOD&nbsp;handle_size_control.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_size_control

&nbsp;&nbsp;METHOD&nbsp;handle_left_click_run.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_left_click_run

&nbsp;&nbsp;METHOD&nbsp;handle_onf1.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_onf1

&nbsp;&nbsp;METHOD&nbsp;handle_onf4.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_onf4

&nbsp;&nbsp;METHOD&nbsp;handle_data_changed.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_data_changed

&nbsp;&nbsp;METHOD&nbsp;handle_ondropgetflavor.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_ondropgetflavor

&nbsp;&nbsp;METHOD&nbsp;handle_ondrag.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_ondrag

&nbsp;&nbsp;METHOD&nbsp;handle_ondrop.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_ondrop

&nbsp;&nbsp;METHOD&nbsp;handle_ondropcomplete.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_ondropcomplete

&nbsp;&nbsp;METHOD&nbsp;handle_subtotal_text.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_subtotal_text

&nbsp;&nbsp;METHOD&nbsp;handle_before_user_command.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_before_user_command

&nbsp;&nbsp;METHOD&nbsp;handle_user_command.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_user_command

&nbsp;&nbsp;METHOD&nbsp;handle_after_user_command.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_after_user_command

&nbsp;&nbsp;METHOD&nbsp;handle_double_click.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_double_click

&nbsp;&nbsp;METHOD&nbsp;handle_delayed_callback.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_delayed_callback

&nbsp;&nbsp;METHOD&nbsp;handle_delayed_changed_sel_cal.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_delayed_changed_sel_cal

&nbsp;&nbsp;METHOD&nbsp;handle_print_top_of_page.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_print_top_of_page

&nbsp;&nbsp;METHOD&nbsp;handle_print_top_of_list.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_print_top_of_list

&nbsp;&nbsp;METHOD&nbsp;handle_print_end_of_page.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_print_end_of_page

&nbsp;&nbsp;METHOD&nbsp;handle_print_end_of_list.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_print_end_of_list

&nbsp;&nbsp;METHOD&nbsp;handle_top_of_page.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_top_of_page

&nbsp;&nbsp;METHOD&nbsp;handle_context_menu_request.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_context_menu_request

&nbsp;&nbsp;METHOD&nbsp;handle_menu_button.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_menu_button

&nbsp;&nbsp;METHOD&nbsp;handle_toolbar.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_toolbar

&nbsp;&nbsp;METHOD&nbsp;handle_hotspot_click.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_hotspot_click

&nbsp;&nbsp;METHOD&nbsp;handle_end_of_list.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_end_of_list

&nbsp;&nbsp;METHOD&nbsp;handle_after_refresh.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_after_refresh

&nbsp;&nbsp;METHOD&nbsp;handle_button_click.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_button_click

&nbsp;&nbsp;METHOD&nbsp;handle_data_changed_finished.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_data_changed_finished

ENDCLASS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cl_event_receiver&nbsp;IMPLEMENTATION

*----------------------------------------------------------------------*
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLASS&nbsp;cl_base_event_receiver&nbsp;DEFINITION
*----------------------------------------------------------------------*
CLASS&nbsp;cl_base_event_receiver&nbsp;DEFINITION&nbsp;INHERITING&nbsp;FROM&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;PUBLIC&nbsp;SECTION.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;set_protected_handlers.

&nbsp;&nbsp;PROTECTED&nbsp;SECTION.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_toolbar_menubutton_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOOLBAR_MENUBUTTON_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;toolbar_menubutton_click&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_click_col_header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;CLICK_COL_HEADER
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;click_col_header&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_delayed_move_curr_cell&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DELAYED_MOVE_CURRENT_CELL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;delayed_move_current_cell&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_f1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;F1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;f1&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_dblclick_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DBLCLICK_ROW_COL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;dblclick_row_col&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_click_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;CLICK_ROW_COL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;click_row_col&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_toolbar_button_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOOLBAR_BUTTON_CLICK
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;toolbar_button_click&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_double_click_col_sep&nbsp;&nbsp;&nbsp;"&nbsp;DOUBLE_CLICK_COL_SEPARATOR
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;double_click_col_separator&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_delayed_change_select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;DELAYED_CHANGE_SELECTION
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;delayed_change_selection&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_context_menu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;CONTEXT_MENU
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;context_menu&nbsp;OF&nbsp;cl_gui_alv_grid_base.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_total_click_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOTAL_CLICK_ROW_COL
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;total_click_row_col&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;row_id
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;col_id.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_context_menu_selected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;CONTEXT_MENU_SELECTED
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;context_menu_selected&nbsp;&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fcode.

&nbsp;&nbsp;&nbsp;&nbsp;METHODS&nbsp;handle_toolbar_menu_selected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;TOOLBAR_MENU_SELECTED
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;EVENT&nbsp;toolbar_menu_selected&nbsp;OF&nbsp;cl_gui_alv_grid_base
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fcode.

ENDCLASS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cl_base_event_receiver&nbsp;DEFINITION

*----------------------------------------------------------------------*
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLASS&nbsp;cl_base_event_receiver&nbsp;IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS&nbsp;cl_base_event_receiver&nbsp;IMPLEMENTATION.

&nbsp;&nbsp;METHOD&nbsp;set_protected_handlers.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_toolbar_menubutton_clk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_click_col_header&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_delayed_move_curr_cell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_f1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_dblclick_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_click_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_toolbar_button_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_double_click_col_sep&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_delayed_change_select&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_context_menu&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_total_click_row_col&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_context_menu_selected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;me-&gt;handle_toolbar_menu_selected&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"set_protected_handlers

&nbsp;&nbsp;METHOD&nbsp;handle_toolbar_menubutton_clk.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_toolbar_menubutton_clk

&nbsp;&nbsp;METHOD&nbsp;handle_click_col_header.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_click_col_header

&nbsp;&nbsp;METHOD&nbsp;handle_delayed_move_curr_cell.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_delayed_move_curr_cell

&nbsp;&nbsp;METHOD&nbsp;handle_f1.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_f1

&nbsp;&nbsp;METHOD&nbsp;handle_dblclick_row_col.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_dblclick_row_col

&nbsp;&nbsp;METHOD&nbsp;handle_click_row_col.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_click_row_col

&nbsp;&nbsp;METHOD&nbsp;handle_toolbar_button_click.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_toolbar_button_click

&nbsp;&nbsp;METHOD&nbsp;handle_double_click_col_sep.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_double_click_col_sep

&nbsp;&nbsp;METHOD&nbsp;handle_delayed_change_select.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_delayed_change_select

&nbsp;&nbsp;METHOD&nbsp;handle_context_menu.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_context_menu

&nbsp;&nbsp;METHOD&nbsp;handle_total_click_row_col.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_total_click_row_col

&nbsp;&nbsp;METHOD&nbsp;handle_context_menu_selected.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_context_menu_selected

&nbsp;&nbsp;METHOD&nbsp;handle_toolbar_menu_selected.
&nbsp;&nbsp;&nbsp;&nbsp;BREAK-POINT.
&nbsp;&nbsp;ENDMETHOD.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"handle_toolbar_menu_selected

ENDCLASS.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"cl_base_event_receiver&nbsp;IMPLEMENTATION

*&amp;---------------------------------------------------------------------*
*&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;START-OF-SELECTION
*&amp;---------------------------------------------------------------------*
START-OF-SELECTION.

*&nbsp;read&nbsp;sample&nbsp;data&nbsp;to&nbsp;internal&nbsp;table
&nbsp;&nbsp;SELECT&nbsp;*&nbsp;FROM&nbsp;usr02&nbsp;UP&nbsp;TO&nbsp;30&nbsp;ROWS
&nbsp;&nbsp;&nbsp;&nbsp;APPENDING&nbsp;CORRESPONDING&nbsp;FIELDS&nbsp;OF&nbsp;TABLE&nbsp;gt_usr
&nbsp;&nbsp;&nbsp;&nbsp;ORDER&nbsp;BY&nbsp;bname.

*&nbsp;create&nbsp;field&nbsp;catalog
&nbsp;&nbsp;PERFORM&nbsp;create_fieldcat.

*&nbsp;display&nbsp;screen
&nbsp;&nbsp;CALL&nbsp;SCREEN&nbsp;0100.

*&amp;---------------------------------------------------------------------*
*&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form&nbsp;&nbsp;create_fieldcat
*&amp;---------------------------------------------------------------------*
FORM&nbsp;create_fieldcat.

&nbsp;&nbsp;DATA:
&nbsp;&nbsp;&nbsp;&nbsp;ls_fcat&nbsp;TYPE&nbsp;lvc_s_fcat.

*&nbsp;create&nbsp;field&nbsp;catalog
&nbsp;&nbsp;CALL&nbsp;FUNCTION&nbsp;'LVC_FIELDCATALOG_MERGE'
&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i_structure_name&nbsp;=&nbsp;'USR02'
&nbsp;&nbsp;&nbsp;&nbsp;CHANGING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ct_fieldcat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;gt_fcat.

*&nbsp;hotspot&nbsp;fields
&nbsp;&nbsp;ls_fcat-hotspot&nbsp;=&nbsp;'X'.
&nbsp;&nbsp;MODIFY&nbsp;gt_fcat&nbsp;FROM&nbsp;ls_fcat
&nbsp;&nbsp;&nbsp;&nbsp;TRANSPORTING&nbsp;hotspot
&nbsp;&nbsp;&nbsp;&nbsp;WHERE&nbsp;fieldname&nbsp;=&nbsp;'BNAME'.

*&nbsp;editable&nbsp;column
&nbsp;&nbsp;ls_fcat-edit&nbsp;=&nbsp;'X'.
&nbsp;&nbsp;MODIFY&nbsp;gt_fcat&nbsp;FROM&nbsp;ls_fcat
&nbsp;&nbsp;&nbsp;&nbsp;TRANSPORTING&nbsp;edit
&nbsp;&nbsp;&nbsp;&nbsp;WHERE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldname&nbsp;=&nbsp;'GLTGV'.

*&nbsp;F4&nbsp;list
&nbsp;&nbsp;ls_fcat-f4availabl&nbsp;=&nbsp;'X'.
&nbsp;&nbsp;MODIFY&nbsp;gt_fcat&nbsp;FROM&nbsp;ls_fcat
&nbsp;&nbsp;&nbsp;&nbsp;TRANSPORTING&nbsp;f4availabl
&nbsp;&nbsp;&nbsp;&nbsp;WHERE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldname&nbsp;=&nbsp;'UFLAG'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OR&nbsp;fieldname&nbsp;=&nbsp;'ANAME'.

*&nbsp;dropdown&nbsp;list
&nbsp;&nbsp;ls_fcat-drdn_hndl&nbsp;=&nbsp;'1'.
&nbsp;&nbsp;MODIFY&nbsp;gt_fcat&nbsp;FROM&nbsp;ls_fcat
&nbsp;&nbsp;&nbsp;&nbsp;TRANSPORTING&nbsp;drdn_hndl
&nbsp;&nbsp;&nbsp;&nbsp;WHERE
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fieldname&nbsp;=&nbsp;'CLASS'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OR&nbsp;fieldname&nbsp;=&nbsp;'LOCNT'.
ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"create_fieldcat

*&amp;---------------------------------------------------------------------*
*&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Form&nbsp;&nbsp;field_f4_register
*&amp;---------------------------------------------------------------------*
FORM&nbsp;field_f4_register.

&nbsp;&nbsp;DATA:
&nbsp;&nbsp;&nbsp;&nbsp;lt_f4&nbsp;TYPE&nbsp;lvc_t_f4,
&nbsp;&nbsp;&nbsp;&nbsp;ls_f4&nbsp;TYPE&nbsp;lvc_s_f4.

&nbsp;&nbsp;ls_f4-fieldname&nbsp;&nbsp;=&nbsp;'UFLAG'.
&nbsp;&nbsp;ls_f4-register&nbsp;&nbsp;&nbsp;=&nbsp;'X'.
*&nbsp;ls_f4-getbefore&nbsp;&nbsp;=&nbsp;'X'.
*&nbsp;ls_f4-chngeafter&nbsp;=&nbsp;'X'.
&nbsp;&nbsp;INSERT&nbsp;ls_f4&nbsp;INTO&nbsp;TABLE&nbsp;lt_f4.

&nbsp;&nbsp;ls_f4-fieldname&nbsp;&nbsp;=&nbsp;'ANAME'.
&nbsp;&nbsp;ls_f4-register&nbsp;&nbsp;&nbsp;=&nbsp;'X'.
*&nbsp;ls_f4-getbefore&nbsp;&nbsp;=&nbsp;'X'.
*&nbsp;ls_f4-chngeafter&nbsp;=&nbsp;'X'.
&nbsp;&nbsp;INSERT&nbsp;ls_f4&nbsp;INTO&nbsp;TABLE&nbsp;lt_f4.

&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_grid-&gt;register_f4_for_fields
&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it_f4&nbsp;=&nbsp;lt_f4.
ENDFORM.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"field_f4_register

*----------------------------------------------------------------------*
*&nbsp;&nbsp;MODULE&nbsp;pbo_0100&nbsp;OUTPUT
*----------------------------------------------------------------------*
MODULE&nbsp;pbo_0100&nbsp;OUTPUT.

*&nbsp;set&nbsp;GUI&nbsp;status
&nbsp;&nbsp;SET&nbsp;PF-STATUS&nbsp;'STAT_0100'.

&nbsp;&nbsp;IF&nbsp;go_custom_container&nbsp;IS&nbsp;INITIAL.

&nbsp;&nbsp;&nbsp;&nbsp;CREATE&nbsp;OBJECT&nbsp;go_custom_container
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;container_name&nbsp;=&nbsp;'CONT1_0100'.

&nbsp;&nbsp;&nbsp;&nbsp;CREATE&nbsp;OBJECT&nbsp;go_grid
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i_appl_events&nbsp;=&nbsp;'X'
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i_parent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;go_custom_container.

*&nbsp;&nbsp;&nbsp;create&nbsp;handler
&nbsp;&nbsp;&nbsp;&nbsp;CREATE&nbsp;OBJECT&nbsp;go_event_receiver.

*&nbsp;&nbsp;&nbsp;register&nbsp;handler&nbsp;for&nbsp;events
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_right_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_left_click_design&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_move_control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_size_control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_left_click_run&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_onf1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_onf4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_data_changed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_ondropgetflavor&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_ondrag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_ondrop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_ondropcomplete&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_subtotal_text&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_before_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_after_user_command&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_double_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_delayed_callback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_delayed_changed_sel_cal&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_print_top_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_print_top_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_print_end_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_print_end_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_top_of_page&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_context_menu_request&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_menu_button&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_toolbar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_hotspot_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_end_of_list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_after_refresh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_button_click&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.
&nbsp;&nbsp;&nbsp;&nbsp;SET&nbsp;HANDLER&nbsp;go_event_receiver-&gt;handle_data_changed_finished&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR&nbsp;go_grid.

*&nbsp;&nbsp;&nbsp;create&nbsp;handler&nbsp;for&nbsp;protected&nbsp;events
&nbsp;&nbsp;&nbsp;&nbsp;CREATE&nbsp;OBJECT&nbsp;go_base_event_receiver.

*&nbsp;&nbsp;&nbsp;register&nbsp;handler&nbsp;for&nbsp;protected&nbsp;events
&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_base_event_receiver-&gt;set_protected_handlers.

*&nbsp;&nbsp;&nbsp;register&nbsp;F4&nbsp;fields
&nbsp;&nbsp;&nbsp;&nbsp;PERFORM&nbsp;field_f4_register.

*&nbsp;&nbsp;&nbsp;register&nbsp;extra&nbsp;events&nbsp;for&nbsp;edit&nbsp;mode
*&nbsp;&nbsp;&nbsp;-&nbsp;events&nbsp;DATA_CHANGED&nbsp;and&nbsp;DATA_CHANGED_FINISHED&nbsp;are&nbsp;called,&nbsp;when:

*&nbsp;&nbsp;&nbsp;ENTER&nbsp;key&nbsp;is&nbsp;pressed&nbsp;or
&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_grid-&gt;register_edit_event
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i_event_id&nbsp;=&nbsp;cl_gui_alv_grid=&gt;mc_evt_enter.

*&nbsp;&nbsp;&nbsp;data&nbsp;is&nbsp;changed&nbsp;and&nbsp;cursor&nbsp;is&nbsp;moved&nbsp;from&nbsp;the&nbsp;cell
&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_grid-&gt;register_edit_event
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXPORTING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i_event_id&nbsp;=&nbsp;cl_gui_alv_grid=&gt;mc_evt_modified.

*&nbsp;&nbsp;&nbsp;display&nbsp;table
&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_grid-&gt;set_table_for_first_display
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHANGING
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it_fieldcatalog&nbsp;=&nbsp;gt_fcat
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;it_outtab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;gt_usr.
&nbsp;&nbsp;ENDIF.
ENDMODULE.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"pbo_0100&nbsp;OUTPUT

*----------------------------------------------------------------------*
*&nbsp;&nbsp;MODULE&nbsp;pai_0100&nbsp;INPUT
*----------------------------------------------------------------------*
MODULE&nbsp;pai_0100&nbsp;INPUT.

&nbsp;&nbsp;BREAK-POINT.

*&nbsp;to&nbsp;react&nbsp;on&nbsp;custom&nbsp;events:
&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;cl_gui_cfw=&gt;dispatch.

&nbsp;&nbsp;BREAK-POINT.

&nbsp;&nbsp;CASE&nbsp;ok_code.

&nbsp;&nbsp;&nbsp;&nbsp;WHEN&nbsp;'EXIT'.
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LEAVE&nbsp;PROGRAM.

&nbsp;&nbsp;&nbsp;&nbsp;WHEN&nbsp;'SAVE'.
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;force&nbsp;ALV&nbsp;to&nbsp;copy&nbsp;the&nbsp;data&nbsp;from&nbsp;grid&nbsp;to&nbsp;the&nbsp;internal&nbsp;table
*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(events&nbsp;DATA_CHANGED&nbsp;and&nbsp;DATA_CHANGED_FINISHED&nbsp;will&nbsp;be&nbsp;fired)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;METHOD&nbsp;go_grid-&gt;check_changed_data.
&nbsp;&nbsp;ENDCASE.

&nbsp;&nbsp;CLEAR&nbsp;ok_code.
ENDMODULE.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"pai_0100&nbsp;INPUT