将报告显示从 ALV 网格更改为 ALV 列表查看器

Change report display from ALV Grid to ALV List Viewer

我被要求将 ALV 网格报告更改为 ALV 列表查看器。到目前为止我发现的是,我唯一需要做的就是将 REUSE_ALV_GRID_DISPLAY 函数替换为 REUSE_ALV_LIST_DISPLAY (如果我错了请纠正我)。

但是,我需要更改的报表使用的是cl_gui_alv_grid class,它没有使用上述功能。

如何使用 cl_gui_alv_grid 更改报告?或者没有办法,只好重写代码,用REUSE_ALV_LIST_DISPLAY?

cl_gui_alv_grid 是不可能的。您应该使用 cl_salv_tablelist-display 参数来完成此操作:

    cl_salv_table=>factory(
      EXPORTING 
        list_display = abap_true
      IMPORTING
        r_salv_table = o_alv
      CHANGING
        t_table      = lt_table ).

您可以通过调用 set_function_code 调用 cl_gui_alv_grid 工具栏中的 'list output' 功能,如下所示。

DATA ucomm_list_output TYPE syucomm VALUE '&RNT_PREV'.
DATA alv TYPE REF TO cl_gui_alv_grid.

...

alv->set_function_code(
  CHANGING
    c_ucomm = ucomm_list_output
).