Ir para o conteúdo

ALV com Botões Customizados

Adicionar botões próprios na toolbar do ALV.


🔹 Com CL_SALV_TABLE

DATA: lo_functions TYPE REF TO cl_salv_functions_list.

lo_functions = lo_alv->get_functions( ).
lo_functions->set_all( abap_true ).

" Adicionar botão customizado
lo_functions->add_function(
  name     = 'BTN_EXPORT'
  icon     = '@49@'  " Ícone de exportar
  text     = 'Exportar Seleção'
  tooltip  = 'Exportar linhas selecionadas'
  position = if_salv_c_function_position=>right_of_salv_functions ).

" Capturar evento
DATA: lo_events TYPE REF TO cl_salv_events_table.
lo_events = lo_alv->get_event( ).
SET HANDLER handle_user_command FOR lo_events.

CLASS lcl_handler DEFINITION.
  PUBLIC SECTION.
    METHODS handle_user_command
      FOR EVENT added_function OF cl_salv_events
      IMPORTING e_salv_function.
ENDCLASS.

CLASS lcl_handler IMPLEMENTATION.
  METHOD handle_user_command.
    CASE e_salv_function.
      WHEN 'BTN_EXPORT'.
        MESSAGE 'Botão Export clicado!' TYPE 'I'.
    ENDCASE.
  ENDMETHOD.
ENDCLASS.