0
点赞
收藏
分享

微信扫一扫

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

登高且赋 2022-06-20 阅读 45




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

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

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

 

文章出处:​​javascript:void(0)​​

 


​ 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上取数_html



举报

相关推荐

0 条评论