ich bin ABAP Neuling und beiße mir gerade die Zähne aus, wie man folgende Logik umsetzt, vllt. kann mir einer von euch helfen:
In der Tabelle COST sind Leistungen/Tarife monatsabhängig in den Spalten abgelegt. Diese kopiere ich zunächst in eine interne Tabelle I_COST. Soweit so gut.
Nun möchte ich die Preise aus den Spalten der I_COST Zeile für Zeile untersuchen und je Tarif und je Preisänderung einen Eintrag in einer neuen Tabelle erzeugen.
Z.B
Tarif 123 (Objnr): Jan = 5, Feb = 5, März = 6, April = 6, Mai = 5.... Dez = 5
Tarif 124 ....
Ergebnis:
Tarif 123; Preis = 5; von Jan bis Feb
Tarif 123; Preis = 6; von März bis April
Tarif 123; Preis = 5, von Mai bis Dez
Tarif 124 ...
Sieh dir mal den Befehl "ASSIGN COMPONENT comp OF STRUCTURE struc TO <field_symbol>" an.
Den benutze ich gerne wenn es darum geht Daten aus einer Struktur in
mehrere Zeilen (oder andersherum) zu konvertieren.
Ich würde nach folgendem, groben Schema vorgehen:
- LOOP über die I_COST
- DO-Schleife für die Monate (also 12 mal)
- Zähler für den aktuellen Monat
- Zähler für die Komponentennummer (comp)
- ASSIGN COMPONENT comp OF STRUCTURE <Struktur aus dem Loop über die
I_COST> TO <field_symbol>
( z.B. comp = 5 -> das Feldsymbol zeigt auf den Wert der fünften Komponente der
benannten Struktur.)
- Vergleichen, ob der Wert der aktuellen Komponente mit dem Wert der
Vorangegangenen gleich ist (Hilfsvariable).
- Zielstruktur füllen und ggf. APPEND (wenn neuer Preis) in deine Zieltabelle
- Hilfsvariable mit aktuellem Preis für den nächsten Schleifendurchlauf füllen.
- Ende DO-Schleife
- Zähler für den aktuellen Monat zurücksetzen
- Zähler für die Komponentennummer auf die "Startkomponente" zurücksetzen
- Ende LOOP über die I_COST