1.被调用程序
选择屏幕
输出ALV
2.在另一个程序调用上面程序,并获取ALV数据
DATA: lt_selscreen TYPE STANDARD TABLE OF rsparams,
ls_selscreen LIKE LINE OF lt_selscreen.
DATA: lc_data TYPE REF TO data,
lc_data_line TYPE REF TO data,
lc_data_descr TYPE REF TO cl_abap_datadescr,
lc_data_descr_line TYPE REF TO cl_abap_datadescr.
FIELD-SYMBOLS: <fs_data> TYPE ANY TABLE.
"封装条件
ls_selscreen-selname = 'P_WERKS'.
ls_selscreen-kind = 'P'. "选择条件 P:PARAMATERS S:SELECT-OPTIONS
ls_selscreen-sign = 'I'.
ls_selscreen-option = 'EQ'.
ls_selscreen-low = '1001'.
APPEND ls_selscreen TO lt_selscreen.
CLEAR ls_selscreen.
ls_selscreen-selname = 'S_MATNR'.
ls_selscreen-kind = 'S'.
ls_selscreen-sign = 'I'.
ls_selscreen-option = 'EQ'.
ls_selscreen-low = 'C1007622000'.
APPEND ls_selscreen TO lt_selscreen.
CLEAR ls_selscreen.
ls_selscreen-selname = 'S_MATNR'.
ls_selscreen-kind = 'S'.
ls_selscreen-sign = 'I'.
ls_selscreen-option = 'EQ'.
ls_selscreen-low = 'C1007622002'.
APPEND ls_selscreen TO lt_selscreen.
cl_salv_bs_runtime_info=>set(
EXPORTING display = abap_false
metadata = abap_false
data = abap_true ).
SUBMIT ywx_test08
WITH SELECTION-TABLE lt_selscreen
AND RETURN.
TRY.
"1、获取数据源参考
cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING
r_data = lc_data ).
* r_data_line = lc_data_line
* r_data_descr = lc_data_descr
* r_data_line_descr = lc_data_descr_line ).
"2、分配变量给指针
ASSIGN lc_data->* TO <fs_data> .
"3、获取数据
cl_salv_bs_runtime_info=>get_data(
IMPORTING
t_data = <fs_data> ).
CATCH cx_salv_bs_sc_runtime_info.
MESSAGE `获取ALV数据出错` TYPE 'E'.
ENDTRY.
IF <fs_data> is not INITIAL.
LOOP AT <fs_data> ASSIGNING FIELD-SYMBOL(<fs>).
WRITE:/ <fs>.
ENDLOOP.
ENDIF.
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/17990.html