产销存报表直接在MB5B上取数

原文地址:http://www.sapjx.com/get_sap_alv_grid_data.html

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

后来业务顾问要求直接在MB5B上取数, 

于是从网络上搜索相关资料转摘下来,以做备用。

 

文章出处:http://www.cnblogs.com/raychenfj/p/3194546.html

 

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 >的字段;

以下是我 MB5B 中出现的字段:

产销存报表直接在MB5B上取数

你可能感兴趣的:(偶尔会用到的东西)