SAP ABAP调用标准报表执行结果

有时候我们需要拿到标准报表的结果来进行一些操作:例如:MB5M执行结果
SUBMIT将所需要的参数传进去,一般标准报表:对于ALV展示效果最好选择ALV网格,这样输出的字段会比较全

*&---------------------------------------------------------------------*
*& Report ZSY_ZM_TEST16
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zsy_zm_test16.

TABLES:marav,marcv,mard,mchb.
DATA:lr_alv_data TYPE REF TO data.

FIELD-SYMBOLS : <lt_alv_data> TYPE ANY TABLE .
FIELD-SYMBOLS : <lt_data> TYPE any. "LIKE LINE OF  it_tab .

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-000.
  SELECT-OPTIONS: s_matnr FOR marav-matnr,  "物料
                  s_werks FOR marcv-werks,   "工厂
                  s_lgort FOR mard-lgort,   "存储位置
                  s_charg FOR mchb-charg.   "批次

  PARAMETERS: p_lagrlz LIKE am07m-lgrlz RADIOBUTTON GROUP list,  "剩余的货架寿命
              p_gesrlz LIKE am07m-gsrlz RADIOBUTTON GROUP list DEFAULT 'X'.  "总剩余货架寿命
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& "计算特殊库存E的期初期末
*&---------------------------------------------------------------------*
START-OF-SELECTION.
  cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false
                                          metadata = abap_false
                                          data     = abap_true ).
  CLEAR lr_alv_data.
  UNASSIGN <lt_alv_data>.

  SUBMIT rm07mmhd                                         "MB5B特殊库存及搜索条件
         WITH matnr IN s_matnr
         WITH werks IN s_werks
*       WITH lgort EQ so_lgort-low "循环获取每个库存地点的期初期末
         WITH lgort IN s_lgort
         WITH charg IN s_charg
         "库存类型-特殊库存
         WITH lagrlz EQ p_lagrlz
         WITH gesrlz EQ p_gesrlz
         WITH p_grid EQ 'X'
         AND RETURN.

  TRY.
      cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ).

      ASSIGN lr_alv_data->* TO <lt_alv_data>.
    CATCH cx_salv_bs_sc_runtime_info.

      MESSAGE 'Unable to retrieve ALV data! Please try other conditions.' TYPE 'E'.
  ENDTRY.

  cl_salv_bs_runtime_info=>clear_all( ).

  "
  IF <lt_alv_data> IS ASSIGNED.
    UNASSIGN <lt_data>.
    LOOP AT <lt_alv_data> ASSIGNING <lt_data>."即所需要内表数据

    ENDLOOP.
  ENDIF.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值