Aber wie kann ich jezt die Summe pro ID bilden?z_mue hat geschrieben:Code: Alles auswählen.
DATA: summe TYPE p. LOOP AT itab INTO wa. summe = summe + wa-menge. ENDLOOP.
Code: Alles auswählen.
LOOP AT XXX.
AT NEW ID.
clear SUM.
ENDAT.
SUM = WERT1 + WERT2.
ENDLOOP.
Code: Alles auswählen.
DATA: itab_neu LIKE itab_alt.
LOOP AT itab_alt INTO wa.
COLLECT wa INTO itab_neu.
ENDLOOP.
Code: Alles auswählen.
REPORT zz_test_15.
TYPES: BEGIN OF gt_table,
id(2) TYPE c,
menge TYPE i,
END OF gt_table,
gt_table_t TYPE TABLE OF gt_table.
DATA: li_table TYPE gt_table_t,
ls_table TYPE gt_table.
ls_table-id = 22.
ls_table-menge = 50.
COLLECT ls_table INTO li_table.
ls_table-id = 22.
ls_table-menge = 49.
COLLECT ls_table INTO li_table.
ls_table-id = 23.
ls_table-menge = 33.
COLLECT ls_table INTO li_table.
LOOP AT li_table INTO ls_table.
WRITE: / ls_table-id, ls_table-menge.
ENDLOOP.
Code: Alles auswählen.
REPORT zz_test_15.
TYPES: BEGIN OF gt_table,
id(2) TYPE c,
menge TYPE i,
END OF gt_table,
gt_table_t TYPE TABLE OF gt_table.
DATA: li_table TYPE gt_table_t,
li_table2 Type gt_table_t,
ls_table TYPE gt_table.
field-symbols: <fs_table> type gt_table.
ls_table-id = 22.
ls_table-menge = 50.
append ls_table TO li_table.
ls_table-id = 22.
ls_table-menge = 49.
append ls_table TO li_table.
ls_table-id = 23.
ls_table-menge = 33.
append ls_table TO li_table.
LOOP AT li_table INTO ls_table.
read table li_table2 assigning <fs_table>
with key id = ls_table-id.
if sy-subrc ne 0.
append ls_table to li_table2.
else.
<fs_table>-menge = <fs_table>-menge + ls_table-menge.
endif.
ENDLOOP.
Loop at li_table2 assigning <fs_table>.
write:/ <fs_table>-id, <fs_table>-menge.
endloop.
Code: Alles auswählen.
REPORT zz_test_15.
TYPES: BEGIN OF gt_table,
id(2) TYPE c,
menge TYPE i,
END OF gt_table,
gt_table_t TYPE TABLE OF gt_table.
DATA: li_table TYPE gt_table_t,
li_table2 type gt_table_t,
ls_table TYPE gt_table.
ls_table-id = 22.
ls_table-menge = 50.
append ls_table TO li_table.
ls_table-id = 22.
ls_table-menge = 49.
append ls_table TO li_table.
ls_table-id = 23.
ls_table-menge = 33.
append ls_table TO li_table.
loop at li_table into ls_table.
at end of id.
sum.
append ls_table to li_table2.
endat.
endloop.
Code: Alles auswählen.
REPORT zz_test_15.
TYPES: BEGIN OF gt_table,
id(2) TYPE c,
menge TYPE i,
END OF gt_table,
gt_table_t TYPE TABLE OF gt_table,
BEGIN OF gt_index,
tabix TYPE sy-tabix,
END OF gt_index,
gt_index_t TYPE TABLE OF gt_index.
DATA: li_table TYPE gt_table_t,
li_index TYPE gt_index_t,
ls_index TYPE gt_index,
ls_table TYPE gt_table,
ld_sum TYPE c.
ls_table-id = 22.
ls_table-menge = 50.
APPEND ls_table TO li_table.
ls_table-id = 22.
ls_table-menge = 49.
APPEND ls_table TO li_table.
ls_table-id = 23.
ls_table-menge = 33.
APPEND ls_table TO li_table.
LOOP AT li_table INTO ls_table.
ls_index-tabix = sy-tabix.
CLEAR ld_sum.
AT END OF id.
SUM.
MODIFY li_table FROM ls_table INDEX ls_index-tabix.
ld_sum = 'X'.
ENDAT.
IF ld_sum IS INITIAL.
APPEND ls_index TO li_index.
ENDIF.
ENDLOOP.
LOOP AT li_index INTO ls_index.
DELETE li_table INDEX ls_index-tabix.
ENDLOOP.
Folgende Benutzer bedankten sich beim Autor PeterPaletti für den Beitrag (Insgesamt 2):
kaufikauf • wexpress