ABAP学习(27):SUBMIT获取ALV LIST

本文介绍了如何在ABAP中通过SUBMIT调用来执行Reports程序,并从内存中获取ALV列表数据。示例代码展示了两种方法:一是通过LIST_FROM_MEMORY和WRITE_LIST函数调用来加载和显示列表;二是利用cl_salv_bs_runtime_info类来获取和显示ALV数据。
摘要由CSDN通过智能技术生成

ABAP SUBMIT获取返回LIST

使用Submit调用Reports程序,获取Reports程序返回的ALV Lists输出。

示例:

"submit,获取其他report list
FORM f_test_submit_memory.
  DATA:lt_list TYPE TABLE OF abaplist.
  TYPES:BEGIN OF s_str,
          line TYPE C LENGTH 255,
        END OF s_str.
  DATA:lt_strlist TYPE TABLE OF s_str.
  DATA:ls_strlist LIKE LINE OF lt_strlist.

  FIELD-SYMBOLS:<lt_pay_data> TYPE ANY TABLE.
  FIELD-SYMBOLS:<lt_test> type any . "LIKE LINE OF  it_tab .
  DATA:lr_pay_data TYPE REF TO data.

  cl_salv_bs_runtime_info=>set( exporting display  = abap_false
      metadata = abap_false
    data     = abap_true ).

  "调用report程序,从memery获取report List
  SUBMIT xxxxxx EXPORTING LIST TO MEMORY AND RETURN.
  "方式1:从ABAP内存中加载缓存的LIST
*  CALL FUNCTION 'LIST_FROM_MEMORY'
*    TABLES
*      listobject = lt_list
*    EXCEPTIONS
*      not_found  = 1
*      OTHERS     = 2.
*  "在当前屏幕中显示上面加载的LIST
*  IF sy-subrc = 0.
*    CALL FUNCTION 'WRITE_LIST'
*      TABLES
*        listobject = list_tab.
*  ENDIF.

*   CALL FUNCTION 'LIST_TO_ASCI'
*        TABLES
*          listasci = lt_strlist
*          listobject = lt_list
*        EXCEPTIONS
*          empty_list         = 1
*          list_index_invalid = 2
*          others             = 3.
*   LOOP AT lt_strlist INTO ls_strlist.
*     WRITE:/ ls_strlist-line.
*   ENDLOOP.

   "方式2:使用cl_salv_bs_runtime_info类
   TRY .
      cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_pay_data ).
      ASSIGN lr_pay_data->* TO <lt_pay_data>.
   CATCH cx_salv_bs_sc_runtime_info.
      MESSAGE `Unable to retrieve ALV data` TYPE 'E'.
   ENDTRY.
   cl_salv_bs_runtime_info=>clear_all( ).
   cl_demo_output=>display_data( <lt_pay_data> ).

ENDFORM.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

偶是不器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值
>