ich hab ein kleines Problem, vllt kann mir da jemand weiterhelfen. und zwar ich habe eine Berechnung gemacht und das Problem ist, dass das Ergebnis (afoeg)nur von dem letzen Datensatz berechnet wird, die vorherigen werden einfach ignoriert und ich weiß nicht wo der Fehler liegt.
so sieht meine Codes aus:
LOOP AT itab.
* Reset values for next row
IF itab-row NE gd_currentrow.
APPEND wa_record TO it_record.
CLEAR wa_record.
gd_currentrow = itab-row.
ENDIF.
CASE itab-col.
WHEN '0001'.
wa_record-pernr = itab-value.
WHEN '0002'.
wa_record-vname = itab-value.
WHEN '0003'.
wa_record-nname = itab-value.
WHEN '0004'.
wa_record-glohn = itab-value.
WHEN '0005'.
wa_record-bealt = itab-value.
WHEN '0006'.
wa_record-beneu = itab-value.
WHEN '0007'.
wa_record-afoeg = itab-value.
ENDCASE.
ENDLOOP.
REPLACE ALL OCCURRENCES OF ',' IN wa_record WITH '.'.
beges = wa_record-glohn + wa_record-beneu.
IF beges LE 299.
wa_record-afoeg = '26'.
ELSEIF beges GE 325.
wa_record-afoeg = '0'.
ELSE.
wa_record-afoeg = 325 - beges.
DO 50 TIMES.
IF wa_record-afoeg(1) EQ ' '.
SHIFT wa_record-afoeg BY 1 PLACES.
ENDIF.
ENDDO.
ENDIF.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-glohn WITH ','.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-beneu WITH ','.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-afoeg WITH ','.
Entweder du musst den LOOP ... ENDLOOP über das ganze Coding ziehen.
Oder du macht über den unteren Block (mit den ganze REPLACES) einen eigenen LOOP über die Tabelle IT_RECORD.
WA_RECORD ist ja nur eine Zeile aus IT_RECORD.
lg ADT
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag: Ngu
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
ich hab es jetzt so gemacht und er berechnet mir auch nur wieder den letzen Satz. Komischerweise wenn ich "APPEND wa_record TO it_record." vor "ENDLOOP" einfüge, dann tut er alles berechnen macht aber dafür ne endlose Schleife. Kann mir das jemand bitte erklären und wie ich das korrigieren kann?
Vielen Dank im Voraus.
LOOP AT it_record INTO wa_record.
REPLACE ALL OCCURRENCES OF ',' IN wa_record WITH '.'.
beges = wa_record-glohn + wa_record-beneu.
IF beges LE 299.
wa_record-afoeg = '26'.
ELSEIF beges GE 325.
wa_record-afoeg = '0'.
ELSE.
wa_record-afoeg = 325 - beges.
DO 50 TIMES.
IF wa_record-afoeg(1) EQ ' '.
SHIFT wa_record-afoeg BY 1 PLACES.
ENDIF.
ENDDO.
ENDIF.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-glohn WITH ','.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-beneu WITH ','.
REPLACE ALL OCCURRENCES OF '.' IN wa_record-afoeg WITH ','.