DATA: o_alv TYPE REF TO if_salv_gui_table_ida.
CLASS lcl_events DEFINITION.
PUBLIC SECTION.
* Konstante für Button-Event
CONSTANTS: co_btn_showdetail type UI_FUNC VALUE 'SHOW_DETAIL'.
CLASS-METHODS: on_toolbar_function_selected FOR EVENT function_selected OF if_salv_gui_toolbar_ida
IMPORTING
ev_fcode
sender.
ENDCLASS.
CLASS lcl_events IMPLEMENTATION.
METHOD on_toolbar_function_selected.
DATA: lv_row TYPE sflight.
CASE ev_fcode.
* wenn Button-Funktion
WHEN co_btn_showdetail.
IF abap_true = o_alv->selection( )->is_row_selected( ).
* ganzen Datensatz holen
o_alv->selection( )->get_selected_row( EXPORTING
iv_request_type = if_salv_gui_selection_ida=>cs_request_type-all_fields
IMPORTING
es_row = lv_row ).
* Datensatz anzeigen
cl_salv_ida_show_data_row=>display( iv_text = 'Flug-Details'
is_data = lv_row ).
ENDIF.
ENDCASE.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
o_alv = cl_salv_gui_table_ida=>create( iv_table_name = 'SFLIGHT' ).
* Single-Selection
o_alv->selection( )->set_selection_mode( if_salv_gui_selection_ida=>cs_selection_mode-single ).
* Toolbar button einfügen
o_alv->toolbar( )->add_button( EXPORTING
iv_fcode = lcl_events=>co_btn_showdetail
iv_icon = icon_flight
iv_text = 'Details'
iv_quickinfo = 'Flug-Details'
iv_before_standard_functions = abap_true ).
* Separator
o_alv->toolbar( )->add_separator( EXPORTING
iv_before_standard_functions = abap_true ).
* Event-handler
SET HANDLER lcl_events=>on_toolbar_function_selected FOR o_alv->toolbar( ).
* Tabelle anzeigen
o_alv->fullscreen( )->display( ).