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.