Aufgabenstellung: die interne Tabelle ist definiert über eine Struktur, in der z.B. Monate angegeben sind. Pro Monat soll eine Zahl oder ein Wert ermittelt werden. Die Monate (Spalten) sind nach dem Muster MON01… MON12 definiert.
Lösung: mit einem Feldsymbol den Feldnamen dynamisch bestimmen und dann den Wert dem jeweiligen Feld zuweisen.
DATA: SFIELD(13) TYPE C.
FIELD-SYMBOLS: <MON> TYPE ANY.
*=> hier werden Lohnarten aus IT0015 gelesen, es kann aber eine Schleife über jeden beliebigen
* Datenbestand sein
PROVIDE * FROM P0015 BETWEEN PN-BEGDA AND PN-ENDDA.
…
CLEAR SFIELD.
*=> jetzt wird ein Initialwert zugewiesen, Felder sind MON+Monat
MOVE ‚WA_ITAB-MON01‘ TO SFIELD.
*=> richtige Monatsnummer eintragen
MOVE P0015-BEGDA+4(2) TO SFIELD+11.
*=> Feldsymbol zuweisen an den Inhalt! von SFIELD, Klammern wichtig!
ASSIGN (SFIELD) TO <MON>.
*=> über das Feldsymbol wird jetzt das Feld in ITAB angesprochen
MOVE ‚XYZ‘ TO <MON>.
…
APPEND WA_ITAB TO ITAB.
…
ENDPROVIDE.