SAP 获取自开发报表数据

有时候开发报表的时候需要用到其他自开发报表的数据,但是重新写逻辑又显得很复杂,所以通过以下的代码可以直接获取到自开发报表的结果数据,其中的ty_show结构原则上来说和 引用的自开发报表结构一致,或者更少。

  DATA: gt_res TYPE STANDARD TABLE OF ty_show.
  DATA: ls_res TYPE REF TO data.
  FIELD-SYMBOLS: <ft_res> TYPE ANY TABLE.

"设置执行时不显示,只获取ALV数据
  cl_salv_bs_runtime_info=>set(
      display = abap_false
      metadata = abap_false
      data  = abap_true ).

  SUBMIT ZFIR014
                 AND RETURN.

  TRY .
      cl_salv_bs_runtime_info=>get_data_ref(
        IMPORTING r_data = ls_res ).

      ASSIGN ls_res->* TO <ft_res>.

    CATCH  cx_salv_bs_sc_runtime_info.
      MESSAGE '无法获取SALE数据'  TYPE  'E'.
  ENDTRY.

  IF <ft_res> IS ASSIGNED.
    "填充报表数据到内表
    MOVE-CORRESPONDING <ft_res> TO gt_res.
  ELSE.
    MESSAGE e003(psi_we_msg) INTO lv_msg.
    _msg: 'S' lv_msg.  " 查询无结果
  ENDIF.

  cl_salv_bs_runtime_info=>clear_all( ).

  LOOP AT gt_res ASSIGNING FIELD-SYMBOL(<fs_res>).
    APPEND INITIAL LINE TO SALE_OUTTABLE[] ASSIGNING FIELD-SYMBOL(<fs_out>).
    MOVE-CORRESPONDING <fs_res> TO <fs_out>.
  ENDLOOP.
posted @ 2024-02-01 14:49  otowa  阅读(79)  评论(0编辑  收藏  举报