Back from log screen

Cach 1:

Selection screen:

CLASS lcl_handle_events DEFINITION.
  PUBLIC SECTION.
    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events
        IMPORTING e_salv_function.
ENDCLASS.                    "lcl_handle_events DEFINITION

CLASS lcl_handle_events IMPLEMENTATION.
  METHOD on_user_command.
    CALL SCREEN 200.
    LEAVE TO SCREEN 0.
  ENDMETHOD.
ENDCLASS.                    "lcl_handle_events IMPLEMENTATION

DATAg_okcode TYPE syucomm.
DATAgr_container TYPE REF TO cl_gui_custom_container.

PARAMETERS p_carrid TYPE sflight-carrid DEFAULT 'AA'.

START-OF-SELECTION.
  CALL SCREEN 100.

Screen 100

PROCESS BEFORE OUTPUT.
  MODULE status_0100.
*
PROCESS AFTER INPUT.
  MODULE exit.

MODULE status_0100 OUTPUT.
  SET PF-STATUS '100'.

  IF gr_container IS NOT BOUND.
    SELECT FROM sflight INTO TABLE @DATA(flightsWHERE carrid @p_carrid.

    IF cl_salv_table=>is_offlineEQ if_salv_c_bool_sap=>false.
      CREATE OBJECT gr_container
        EXPORTING
          container_name 'CUSTOM_CONTAINER'.
    ENDIF.

    cl_salv_table=>factory(
    EXPORTING
      r_container    =  gr_container
      IMPORTING
        r_salv_table   DATA(salv)    " Basis Class Simple ALV Tables
      CHANGING
        t_table        flights
    ).

    DATA(handle_eventsNEW lcl_handle_events).
    SET HANDLER handle_events->on_user_command FOR salv->get_event).

    salv->get_functions)->set_all'X' ).

    TRY .
        salv->get_functions)->add_function(
          EXPORTING
            name               'TEST'
            text               'Test'
            tooltip            'Test'
            position           if_salv_c_function_position=>right_of_salv_functions
        ).
      CATCH cx_salv_existing cx_salv_wrong_call.
        EXIT.
    ENDTRY.

    salv->display).
  ENDIF.

ENDMODULE.

MODULE exit INPUT.
  CASE g_okcode.
    WHEN 'BACK' OR 'EXIT' OR 'CANC'.
      SET SCREEN 0.
      LEAVE SCREEN.
  ENDCASE.
ENDMODULE.


Screen 200

PROCESS BEFORE OUTPUT.
  MODULE status_0200.
*
PROCESS AFTER INPUT.
  MODULE exit.

MODULE status_0200 OUTPUT.
  SET PF-STATUS '200'.
ENDMODULE.


GUI Status

Cach 2

Code:
DATA g_log TYPE string.

CLASS lcl_handle_events DEFINITION.
  PUBLIC SECTION.
    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events
        IMPORTING e_salv_function.
ENDCLASS.                    "lcl_handle_events DEFINITION

CLASS lcl_handle_events IMPLEMENTATION.
  METHOD on_user_command.
    g_log 'abc'.
    LEAVE TO SCREEN 0.
  ENDMETHOD.
ENDCLASS.                    "lcl_handle_events IMPLEMENTATION

PARAMETERS p_carrid TYPE sflight-carrid DEFAULT 'AA'.

START-OF-SELECTION.

  SELECT FROM sflight INTO TABLE @DATA(flightsWHERE carrid @p_carrid.

  cl_salv_table=>factory(
    IMPORTING
      r_salv_table   DATA(salv)    " Basis Class Simple ALV Tables
    CHANGING
      t_table        flights
  ).

  DATA(handle_eventsNEW lcl_handle_events).
  SET HANDLER handle_events->on_user_command FOR salv->get_event).

  salv->set_screen_status(
  pfstatus      =  'STAT'
  report        =  sy-repid
  set_functions salv->c_functions_all ).

  salv->display).

END-OF-SELECTION.
  WRITEg_log.

GUI status:

Comments