跨程序获取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 @   Camellia_85  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示