我们以累加COSP表中WOG001~WOG016为例
FIELD-SYMBOLS <FS> .
DATA: G_FIELD(40).
CLEAR GT_COSP[] .
SELECT COSP~KSTAR
COSP~WRTTP
COSP~GJAHR
COSP~OBJNR
COSP~HRKFT
COSP~MEINH
COSP~WOG001
COSP~WOG002
COSP~WOG003
COSP~WOG004
COSP~WOG005
COSP~WOG006
COSP~WOG007
COSP~WOG008
COSP~WOG009
COSP~WOG010
COSP~WOG011
COSP~WOG012
COSP~WOG013
COSP~WOG014
COSP~WOG015
COSP~WOG016
INTO CORRESPONDING FIELDS OF TABLE GT_COSP[]
FROM COSP
LEFT JOIN COKEY ON COSP~HRKFT = COKEY~HRKFT
FOR ALL ENTRIES IN GT_DATA[]
WHERE COSP~OBJNR = GT_DATA-OBJNR
* AND COKEY~WERKS = GT_DATA-WERKS
AND COSP~LEDNR = '00'
AND COSP~GJAHR <= P_GJAHR
AND COSP~WRTTP IN ( '01','04','05' )
AND COSP~VERSN = '000'
AND COSP~BEKNZ IN ( 'S','H' )
.
LOOP AT GT_COSP.
IF GT_COSP_C-GJAHR < P_GJAHR.
LV_MONAT = 16 .
ELSE .
IF P_MONAT >= 12.
LV_MONAT = 16 .
ELSE .
LV_MONAT = P_MONAT .
ENDIF.
ENDIF.
LV_NUM = '01' .
WHILE LV_NUM <= LV_MONAT.
CLEAR G_FIELD .
G_FIELD = 'GT_COSP-WOG0' && LV_NUM .
ASSIGN (G_FIELD) TO <FS>.
IF <FS> IS ASSIGNED.
GT_COSP-WCBHZ = GT_COSP-WCBHZ + <FS>.
ENDIF.
UNASSIGN <FS>.
LV_NUM = LV_NUM + 1.
ENDWHILE.
MODIFY GT_COSP .
CLEAR GT_COSP .
ENDLOOP.