Enabling Double Click event & Handling
Interface IF_SALV_GUI_TABLE_IDA provides method DISPLAY_OPTIONS which returns the reference of interface IF_SALV_GUI_TABLE_DISPLAY_OPT to enable double click event.
Interface IF_SALV_GUI_TABLE_DISPLAY_OPT provides events DOUBLE_CLICK
Event parameters.
To enable double click on the UI interface IF_SALV_GUI_TABLE_DISPLAY_OPT provides method ENABLE_DOUBLE_CLICK
The event parameters returns reference to the interface IF_SALV_GUI_ROW_DATA_IDA which provides method GET_ROW_DATA to read the values of the double clicked row.
Code:
CLASS lcl_handle_dc DEFINITION.
PUBLIC SECTION.
METHODS double_click
FOR EVENT double_click OF if_salv_gui_table_display_opt
IMPORTING ev_field_name eo_row_data.
ENDCLASS.
CLASS lcl_handle_dc IMPLEMENTATION.
METHOD double_click.
DATA: ls_sflight TYPE sflight.
CHECK ev_field_name = ‘CARRID’.
* read the row data
eo_row_data->get_row_data(
EXPORTING
iv_request_type = if_salv_gui_selection_ida=>cs_request_type–all_fields
IMPORTING
es_row = ls_sflight ).
* Display the row data
cl_salv_ida_show_data_row=>display( iv_text = ‘Flight Row Info’ is_data = ls_sflight ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: lr_salv TYPE REF TO if_salv_gui_table_ida,
lr_handle TYPE REF TO lcl_handle_dc.
cl_salv_gui_table_ida=>create(
EXPORTING
iv_table_name = ‘SFLIGHT’
RECEIVING
ro_alv_gui_table_ida = lr_salv ).
DATA(lr_disp) = lr_salv->display_options( ).
* Enable double click
lr_disp->enable_double_click( ).
CREATE OBJECT lr_handle.
SET HANDLER lr_handle->double_click FOR ALL INSTANCES.
* Display ALV
lr_salv->fullscreen( )->display( ).
Output: Double click on a row.