跨程序获取ALV显示内容

该种使用方式,A程序结构发生改变的时候,不会造成B程序ABAP DUMP,且可以灵活获取到对应输出ALV中的某一个字段值。不过无法获取内表中嵌套的表数据。

DATA:LS_DATA TYPE REF TO DATA.
FIELD-SYMBOLS: <LT_DATA> TYPE TABLE,
<FS_DATA> TYPE DATA.

SUBMIT TCODE WITH SELECTION AND RETURN.


TRY.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
IMPORTING R_DATA = LS_DATA ).
ASSIGN LS_DATA->* TO <LT_DATA>.

CATCH CX_SALV_BS_SC_RUNTIME_INFO.
MESSAGE 'UNABLE TO RETRIEVE ALV DATA' TYPE 'E'.

ENDTRY.

CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).

IF <LT_DATA> IS NOT ASSIGNED.
RAISE NO_MORE_DATA.
ENDIF.

LOOP AT <LT_DATA> ASSIGNING <FS_DATA>.
MOVE-CORRESPONDING <FS_DATA> TO E_T_DATA.
ASSIGN COMPONENT FIELDNAME OF STRUCTURE <FS_DATA> TO <FS_FIELD>.
ENDLOOP.

 

posted @ 2022-04-14 16:17  Camellia_85  阅读(119)  评论(0)    收藏  举报