CL_SALV_TABLE可以像CL_GUI_ALV_GRID一样在网格上方显示工具栏吗?

问题描述

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

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

解决方法

这是最简单的代码(此处使用最小技巧实现了容器,但是您也可以通过dynpro,CL_GUI_DOCKING_CONTAINER等中的自定义容器来实现;此外,仅在至少一个按钮/功能已启用):

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.