Dienstag, 18. Oktober 2011

ABAP - Dynamisch Felder ansprechen über Feldsymbole

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.

Keine Kommentare:

Kommentar veröffentlichen