* MAIN *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_handler
DEFINITION . PUBLIC SECTION .
*--To add new functional buttons to the ALV toolbar
handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive ,
*--To implement user commands
handle_user_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm ,
top_of_page FOR EVENT top_of_page "event handler
OF cl_gui_alv_grid
IMPORTING e_dyndoc_id.
*---------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_event_handler
IMPLEMENTATION .
*--Handle Toolbar
PERFORM handle_toolbar
USING e_object e_interactive
.
*--Handle User Command
PERFORM handle_user_command
USING e_ucomm
.
PRIVATE SECTION.
*--Handle Before User Command JG
* METHOD handle_before_user_command .
* PERFORM handle_before_user_command USING e_ucomm .
* ENDMETHOD . "handle_before_user_command
METHOD top_of_page
. "implementation * Top-of-page event
PERFORM event_top_of_page
USING g_dyndoc_id
.
ENDCLASS. "lcl_event_handler IMPLEMENTATION
:
:
*--Creating an instance for the event handler
CREATE OBJECT gr_event_handler .
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_variant = is_variant
i_save = lv_layperm
* i_save = ' '
is_layout = gs_layout
it_toolbar_excluding = lt_exclude
CHANGING
it_outtab = it_data[]
it_fieldcatalog = gt_fieldcat[].
*--Registering handler methods to handle ALV Grid events JG
SET HANDLER gr_event_handler->handle_toolbar FOR grid1.
SET HANDLER gr_event_handler->handle_user_command FOR grid1.
SET HANDLER gr_event_handler->top_of_page FOR grid1.
* Initializing document
CALL METHOD g_dyndoc_id->initialize_document.
* Processing events
CALL METHOD grid1->list_processing_events
EXPORTING
i_event_name = 'TOP_OF_PAGE'
i_dyndoc_id = g_dyndoc_id.
*&---------------------------------------------------------------------*
*& Form EVENT_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->DG_DYNDOC_ID text
*----------------------------------------------------------------------*
FORM event_top_of_page
USING r_top
TYPE REF TO cl_dd_document
. :
: