CL_SALV_TABLE 能否像 CL_GUI_ALV_GRID 那样在网格上方显示工具栏?

Can CL_SALV_TABLE display a toolbar above the grid, as does CL_GUI_ALV_GRID?

我已经使用 CL_SALV_TABLE 创建了一个报告,现在我想使用网格中 CL_GUI_ALV_GRID 显示的工具栏,这可能吗?

(即可以 CL_SALV_TABLE 在容器中显示 ALV 网格而不是全屏模式)

这里是最简单的代码(容器是在这里使用最小技巧实现的,但您也可以通过 dynpro 中的自定义容器实现,CL_GUI_DOCKING_CONTAINER,等等;此外,工具栏仅显示如果至少启用了一个 button/function):

PARAMETERS dummy.
AT SELECTION-SCREEN OUTPUT.
  PERFORM display USING cl_gui_container=>screen0.

FORM display USING container TYPE REF TO cl_gui_container.
  SELECT * FROM sflight INTO TABLE @DATA(sflight_lines).
  CALL METHOD cl_salv_table=>factory
        EXPORTING
          r_container  = container
        IMPORTING
          r_salv_table = DATA(salv)
        CHANGING
          t_table      = sflight_lines.
  salv->get_functions( )->set_all( ).
  salv->display( ).
ENDFORM.