前言
顾问需要通过查询me2l 未清数据来进行导出或其他操作,但是由于数据量大,操作麻烦,所以采用程序调用me2l获取alv列表数据进行处理
r_selpa[] = VALUE #( ( sign = ‘I’ option = ‘EQ’ low = ‘RECHNUNG’ ) ) .
即为me2l前台未清选择条件输入值
*---------------------------------查询me2l-----------------------------------*
RANGES:r_selpa FOR t160t-selpa.
DATA: lt_outtab TYPE STANDARD TABLE OF merep_outtab_purchdoc.
FIELD-SYMBOLS: <lt_data> LIKE lt_outtab,
<fs_data> TYPE merep_outtab_purchdoc.
DATA go_data TYPE REF TO data.
r_selpa[] = VALUE #( ( sign = 'I' option = 'EQ' low = 'RECHNUNG' ) ) .
" 设定SALV运行模式,
cl_salv_bs_runtime_info=>set(
EXPORTING
display = abap_false "不显示
metadata = abap_false
data = abap_true
).
SUBMIT rm06em00 "标准报表对应的程序名
WITH s_matnr IN s_matnr
WITH s_ebeln IN s_ebeln
WITH s_werks IN s_werks
WITH el_lifnr IN s_lifnr
WITH s_bedat IN s_bedat
WITH selpa IN r_selpa
WITH listu EQ 'ALV'
AND RETURN.
TRY.
"取得运行数据
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING
r_data = go_data
).
* 数据赋值
ASSIGN go_data->* TO <lt_data>.
CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.
CALL METHOD cl_salv_bs_runtime_info=>clear_all.
"处理数据
IF <lt_data> IS ASSIGNED.
ELSE.
MESSAGE '未查询到数据' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.