У меня есть сетка ALV в модальном диалоговом окне, которая выглядит следующим образом:
Я попытался добавить панель инструментов в ALV следующим образом:
Класс события:
CLASS lcl_evt_task_user_cmd IMPLEMENTATION.
METHOD handle_toolbar.
e_object->mt_toolbar = VALUE ttb_button(
( butn_type = 3 )
( function = 'EDIT' icon = icon_edit_file butn_type = 0 )
).
ENDMETHOD.
METHOD handle_user_command.
CASE e_ucomm.
WHEN 'EDIT'.
ENDCASE.
* cl_gui_cfw=>set_new_ok_code('DUMMY').
ENDMETHOD.
ENDCLASS.
и способ, как я регистрирую панель инструментов:
METHOD show.
FIELD-SYMBOLS <lt_table> TYPE STANDARD TABLE.
IF c_go_provider->c_go_grid IS INITIAL.
DATA(lt_fieldcat) = me->get_fieldcat( c_go_provider->c_gv_struname ).
c_go_provider->c_go_container = NEW cl_gui_custom_container( container_name = co_grid_name ).
c_go_provider->c_go_grid = NEW cl_gui_alv_grid( i_parent = c_go_provider->c_go_container ).
ASSIGN c_go_provider->c_gt_data->* TO <lt_table>.
me->register_event( ).
c_go_provider->c_go_grid->set_table_for_first_display(
EXPORTING
is_variant = VALUE disvariant( report = sy-repid )
i_save = 'A'
is_layout = VALUE lvc_s_layo( sel_mode = 'A' )
CHANGING
it_outtab = <lt_table>
it_fieldcatalog = lt_fieldcat
).
c_go_provider->c_go_grid->set_toolbar_interactive( ).
ENDIF.
c_go_provider->c_go_grid->refresh_table_display( ).
ENDMETHOD.
METHOD register_event.
me->c_go_event = NEW lcl_evt_task_user_cmd( ).
SET HANDLER me->c_go_event->handle_toolbar
me->c_go_event->handle_user_command
FOR c_go_provider->c_go_grid.
ENDMETHOD.
После этого стандартная панель инструментов исчезла:
Что я делаю не так?