我是靠谱客的博主 冷傲枫叶,最近开发中收集的这篇文章主要介绍抓取SAP报表ALV GRID上的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在开发的产销存报表的过程中,由于数据量过大,且取数逻辑太过于复杂,导致报表性能上很缓慢;

后来业务顾问要求直接在MB5B上取数,一开始有点纳闷,怎么从标准报表上取数。

于是从网络上搜索相关资料发现还真有,即将其转摘下来,以做备用。

在项目开发过程中需要从标准报表 MB5B中获取数据,以下是本人实例中的相关部分,程序同样适用于获取其他标准报表的数据。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CL_SALV_BS_RUNTIME_INFO=> SET (
     DISPLAY = ABAP_FALSE
     METADATA = ABAP_FALSE
    DATA = ABAP_TRUE  ).
 
SUBMIT RM07MLBD                " Tcode MB5B
   WITH WERKS  IN S_WERKS      " 填写筛选屏幕字段
   WITH DATUM  IN S_BUDAT
   WITH XSUM =  ''
   WITH PA_SUMFL =  'X'
   WITH XCHAR =  ''
   WITH LGBST =  ''
   WITH BWBST =  'X'
   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 '无法获取ALV数据' TYPE 'E' .
 
ENDTRY .
 
CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).
 
IF < LT_DATA > IS  ASSIGNED .
   LOOP AT < LT_DATA >  ASSIGNING < L_DATA >.
     MOVE - CORRESPONDING < L_DATA >  TO LW_MB5B.
     APPEND LW_MB5B  TO LT_MB5B.
     CLEAR LW_MB5B.
   ENDLOOP .
ENDIF .

另外,当首次使用的时候,无法确定内表定义字段时,可以在这断点,然后查看< LT_DATA >的字段;


最后

以上就是冷傲枫叶为你收集整理的抓取SAP报表ALV GRID上的数据的全部内容,希望文章能够帮你解决抓取SAP报表ALV GRID上的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部