Code: Alles auswählen.
DATA: lt_vbap TYPE TABLE OF vbap,
ls_vbap TYPE vbap.
DATA: menge TYPE vbap-kwmeng.
SELECT * FROM vbap INTO TABLE lt_vbap UP TO 200 ROWS.
SORT lt_vbap BY vbeln.
LOOP AT lt_vbap INTO ls_vbap.
AT NEW vbeln.
CLEAR menge.
WRITE: / 'Verkaufsbeleg:', ls_vbap-vbeln.
ENDAT.
WRITE: / 'Position:', ls_vbap-posnr, ls_vbap-kwmeng.
menge = menge + ls_vbap-kwmeng.
AT END OF vbeln.
WRITE: / 'Verkaufsbeleg:', ls_vbap-vbeln, menge.
ENDAT.
ENDLOOP.
Code: Alles auswählen.
SELECT laufi,
SUM( zbkn ) AS sum
FROM @itab AS i
GROUP BY laufi
INTO TABLE @DATA(sums).Code: Alles auswählen.
LOOP AT gt_table REFERENCE INTO DATA(gr_group) GROUP BY gr_group->laufi.
APPEND INITIAL LINE TO gt_sums ASSIGNING FIELD-SYMBOL(<fs_sum>).
<fs_sum>-laufi = gr_group->laufi.
<fs_sum>-zkbnk = REDUCE #( INIT sum = 0
FOR <fs_line> IN GROUP gr_group
NEXT sum = sum + <fs_line>-zkbnk ).
ENDLOOP.
Code: Alles auswählen.
DATA sum TYPE i.
LOOP AT gr_group ASSIGNING <fs_line>.
sum = sum + <fs_line>-zkbnk.
ENDLOOP.
Code: Alles auswählen.
FIELD-GROUPS: header, max.
TYPES: BEGIN OF _tim,
laufi TYPE c LENGTH 5,
poppo TYPE i,
END OF _tim,
_tom TYPE SORTED TABLE OF _tim WITH NON-UNIQUE KEY laufi.
DATA mara TYPE _tom.
DATA miri TYPE _tim.
DEFINE moo.
INSERT VALUE #( laufi = '&1' poppo = &2 ) INTO TABLE mara.
end-OF-DEFINITION.
moo 24mc1 18988394.
moo 24mc1 2751518.
moo 24mc1 190142216.
moo 24mc2 2047039.
moo 24mc2 36990000.
moo 24mc3 40346231.
moo 24mc3 21428574.
moo 24mc4 18102951.
moo 24mc5 84216000.
moo 24mc6 7448768.
INSERT miri-laufi miri-poppo INTO header.
LOOP AT mara INTO miri.
EXTRACT header.
ENDLOOP.
SORT STABLE.
LOOP.
AT END OF miri-laufi.
WRITE: / miri-laufi, sum(miri-poppo).
ENDAT.
ENDLOOP.Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
a-dead-trousers
Well played!
Das Programm arbeitet mit Feldgruppen, die ich schon damals, als ich vor 30 Jahren angefangen habe, veraltet waren und die ich damals schon kaum verstanden hatte.Zum "guten" Ton passend hätten auch noch GET und PUT reingehört.