PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
module create_fieldcat.
module create_alv.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
*&---------------------------------------------------------------------*
*& Report ZPURE_ALV_FIELDCAT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zpure_alv_event.
DATA: r_container TYPE REF TO cl_gui_custom_container,
r_grid TYPE REF TO cl_gui_alv_grid.
DATA: it_fcat TYPE lvc_t_fcat,
wa_fcat TYPE lvc_s_fcat.
DATA: BEGIN OF wa_sflight .
INCLUDE TYPE sflight.
DATA: tx_occ TYPE p LENGTH 3 DECIMALS 2,
END OF wa_sflight.
DATA: it_sflight LIKE TABLE OF wa_sflight.
INCLUDE zpure_alv_event_handle.
DATA: r_handle TYPE REF TO lcl_event_handler.
START-OF-SELECTION.
SELECT * FROM sflight
INTO TABLE it_sflight
UP TO 100 ROWS.
LOOP AT it_sflight INTO wa_sflight.
wa_sflight-tx_occ =
( wa_sflight-seatsocc / wa_sflight-seatsmax )
* 100.
MODIFY it_sflight FROM wa_sflight
INDEX sy-tabix.
ENDLOOP.
CALL SCREEN 0100.
INCLUDE zpure_alv_event_o01.
*INCLUDE ZPURE_ALV_FIELDCAT_O01.
INCLUDE zpure_alv_event_i01.
*INCLUDE ZPURE_ALV_FIELDCAT_I01.
*&---------------------------------------------------------------------*
*& Include ZPURE_ALV_EVENT_HANDLE
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION.
PUBLIC SECTION.
METHODS: on_double_click FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_column es_row_no.
ENDCLASS. "lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
* CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
METHOD on_double_click.
MESSAGE i888(sabapdocu) WITH 'você deu duplo clique na coluna '
e_column
' e linha '
es_row_no-row_id.
ENDMETHOD. "on_double_click
ENDCLASS. "lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
***INCLUDE ZPURE_ALV_FIELDCAT_I01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
IF sy-ucomm = 'BACK'.
LEAVE TO SCREEN 0.
ENDIF.
ENDMODULE. " USER_COMMAND_0100 INPUT
*----------------------------------------------------------------------*
***INCLUDE ZPURE_ALV_FIELDCAT_O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module create_alv OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE create_alv OUTPUT.
CREATE OBJECT r_container
EXPORTING
container_name = 'CONTAINER1'.
CREATE OBJECT r_grid
EXPORTING
i_parent = r_container.
CREATE OBJECT r_handle.
SET HANDLER r_handle->on_double_click FOR ALL INSTANCES.
CALL METHOD r_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'SFLIGHT'
CHANGING
it_outtab = it_sflight
it_fieldcatalog = it_fcat.
ENDMODULE. " create_alv OUTPUT
*&---------------------------------------------------------------------*
*& Module create_fieldcat OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE create_fieldcat OUTPUT.
CLEAR wa_fcat.
wa_fcat-fieldname = 'TX_OCC'.
wa_fcat-col_pos = 10.
wa_fcat-coltext = 'Tx. Occ.'.
APPEND wa_fcat TO it_fcat.
ENDMODULE. " create_fieldcat OUTPUT