原文地址: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
.