Code:
DATA: BEGIN OF it_bsik OCCURS 0,
belnr LIKE bsik-belnr,
bukrs LIKE bsik-bukrs,
gjahr LIKE bsik-gjahr,
blart LIKE bsik-blart,
shkzg LIKE bsik-shkzg,
dmbtr LIKE bsik-dmbtr,
END OF it_bsik,
it_tmp LIKE TABLE OF it_bsik WITH HEADER LINE.
CLEAR INVOICE_AMO.
SELECT belnr bukrs gjahr blart shkzg dmbtr INTO TABLE it_tmp FROM BSIK
WHERE rebzg = ' '
AND rebzt = ' '.
SELECT belnr bukrs gjahr blart shkzg dmbtr INTO TABLE it_bsik FROM BSIK
FOR ALL ENTRIES IN it_tmp
WHERE rebzg = it_tmp-belnr
AND rebzt = it_tmp-blart
AND rebzj = it_tmp_gjahr.
LOOP AT it_bsik.
IF it_bsik-shkzg = 'S'.
invoice_amo = invoice_amo + it_bsik-dmbtr.
ELSE.
invoice_amo = invoice_amo - it_bsik-dmbtr.
ENDIF.
ENDLOOP.
Все равно, остается непонятным, зачем Вам суммировать ВСЕ строки бух.дока - обычно выбираются конкретные счета, и сумма накапливается именно по ним.
З.Ы. Пардон, не дочитал до конца Ваше задание. Просто оформил код в соотв. с вашим. Над Вашим заданием подумать еще не успел
Кроме того, в таблице BSIK намного больше полей входит в ключ. Так что Вам надо точно знать, сумму по каким счетам/кредиторам/и т.д. Вы хотите получить сумму.