ALV在展示时实现小计功能

在需要小计的字段,添加FIELDCATE-DO_SUM = 'X'属性

如果需要小计在第一行显示 需要添加TOTALS_BEFORE_ITEMS = 'X'属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  DATA LV_COL_POS  TYPE LVC_COLPOS.
DATA LT_FIELDCAT TYPE LVC_T_FCAT.
DATA LS_FIELDCAT TYPE LVC_S_FCAT.
DATA LS_LAYOUT TYPE LVC_S_LAYO.
DATA LT_SORT TYPE LVC_T_SORT.
DATA LT_EVENTS TYPE SLIS_T_EVENT.
DATA LS_EVENTS TYPE SLIS_ALV_EVENT.
DATA LO_GRID TYPE REF TO CL_GUI_ALV_GRID.

"set fieldcat...

"指定需要小计的列,以及如何排序
LT_SORT = VALUE #( ( SPOS = 1 FIELDNAME = 'ACGRP' SUBTOT = '' )
( SPOS = 2 FIELDNAME = 'ACTXT' SUBTOT = 'X' ) ).

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = LS_LAYOUT
IT_FIELDCAT_LVC = LT_FIELDCAT
I_CALLBACK_HTML_TOP_OF_PAGE = 'TOP_OF_PAGE1'
* IT_EVENTS = LT_EVENTS
IT_SORT_LVC = LT_SORT
TABLES
T_OUTTAB = GT_DETAIL
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.