ABAP - 在程序中获取其他ALV的数据的简单方法

笔者在没有接触到这个方法之前 获取其他程序的数据都是用 MEMORY ID的方法去获取的,这个要修改其他程序挺麻烦的。

示例代码:

DATA lo_data TYPE REF TO data.

"这里定义和被调用程序展示的ALV类型相同的内表
DATA:lt_031 TYPE TABLE OF zfir073_s_031.

FIELD-SYMBOLS:<lt_031> LIKE lt_031,

"这里作用是全局不显示ALV
cl_salv_bs_runtime_info=>set(
  display  = abap_false
  metadata = abap_false
  data     = abap_true ).

调用程序 zfir073_031是被调用程序
SUBMIT zfir073_031
  WITH s_bukrs IN lr_bukrs
  WITH s_hkont IN lr_hkont
  WITH s_gjahr IN s_gjahr
  WITH s_monat IN s_monat 
AND RETURN.

"数据转换
TRY.
    cl_salv_bs_runtime_info=>get_data_ref(
          IMPORTING
            r_data = lo_data
    ).
    ASSIGN lo_data->* TO <lt_031>.
  CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.

"清除数据缓存
cl_salv_bs_runtime_info=>clear_data( ).
"清除所有缓存 让ALV可以正常显示
cl_salv_bs_runtime_info=>clear_all( ).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值