[ABAB] Struct (Datentyp) definieren

Einfaches Beispiel

* Definition
TYPES: BEGIN OF s_adresse,
         knr(8)  TYPE n,
         name    TYPE string,
         vorname TYPE string,
         plz(5)  TYPE n,
         ort     TYPE string,
       END OF s_adresse.

* Variable vom Typ
DATA: adresse TYPE s_adresse.

* Zugriff
adresse-knr = '1234'.
adresse-name = 'Hoffmann'.
adresse-vorname = 'Horst'.
adresse-plz = '01069'.
adresse-ort = 'Dresden'.

* Ausgabe
WRITE:  / adresse-knr,
        / adresse-name,
        / adresse-vorname,
        / adresse-plz,
        / adresse-ort.

Verschachtelung von Structen

TYPES: BEGIN OF s_type1,
         num TYPE i,
         name TYPE string,
       END OF s_type1.

TYPES: BEGIN OF s_type2,
         col TYPE i,
         text TYPE string,
       END OF s_type2.

TYPES: BEGIN OF s_mystruct,
         a TYPE s_type1,
         b TYPE s_type2,
       END OF s_mystruct.

[ABAP] Variablendeklaration

DATA zahl TYPE i.                         " ganze Zahl (int)
DATA zahl TYPE i VALUE '1'.               " ganze Zahl (int) mit vordefiniertem Wert '1'
DATA chk TYPE c LENGTH 1 VALUE 'X'.       " char Länge 1 Vorbelegung mit Wert 'X'
DATA preis TYPE p DECIMALS 2 VALUE '1.3'. " gepackte Gleitkommazahl, zwei Nachkommastellen, Wert '1.3'
DATA zk(5) TYPE c.                        " char Länge 5 (obsolet)

TYPES zk TYPE c LENGTH 5.                 " Typdef zk vom Typ char Länge 5
DATA text TYPE zk.                        " text vom Typ zk

DATA: dt TYPE sy-datum,                   " verkettete Anweisung mit Komma getrennt
      zt TYPE sy-uzeit.                   " Nutzung von Systemdatentypen

Links

[ABAP] Datentypen

In ABAP wird unterschieden zwischen:

  • eingebauten (elementaren) ABAP-Typen, die wiederum in
    • vollständige Datentypen (parameterlos) -> d, t, i, f, string, xstring
    • unvollständige Datentypen (mit Parametern) -> c, n, p, x

    unterschieden werden

  • programmlokale (per TYPES definierte) Datentypen
  • externe (globale) Datentypen (Abbildung auf ABAP-Datentypen) im ABAP Dictionary
    • Datenelement
    • Strukturtyp
    • interne Tabellen
  • komplexe Datentypen (Strukturen, Tabellen)
  • Referenztypen (Daten, Objekte)

[ABAP] Systemfelder

Wichtige Systemfelder für Verzweigungslisten

Systemfeld  Funktion

sy-lsind    Index der Liste, die während dieses Ereignis erstellt wird (Grundliste = 0)
sy-listi    Index der Listenstufe, auf der das Ereignis ausgelöst wurde
sy-lilli    Absolute Nummer der Zeile, auf der das Ereignis ausgelöst wurde 
sy-lisel    Inhalt der Zeile, auf der das Ereignis ausgelöst wurde
sy-curow    Position der Zeile im Fenster, auf der das Ereignis ausgelöst wurde (Zählung beginnt bei 1)
sy-cucol    Position der Spalte im Fenster, auf der das Ereignis ausgelöst wurde (Zählung beginnt bei 2)
sy-cpage    Seitennummer der obersten angezeigten Seite der Liste, auf der das Ereignis ausgelöst wurde
sy-staro    Nummer der obersten Zeile der obersten angezeigten Seite der Liste, auf der das Ereignis ausgelöst wurde (Zählung beginnt bei 1). Gegebenenfalls befindet sich dort der Seitenkopf.
sy-staco    Nummer der ersten angezeigten Spalte der Liste auf der das Ereignis ausgelöst wurde (Zählung beginnt bei 1)
sy-ucomm    Funktionscode, der das Ereignis ausgelöst hat
sy-pfkey    GUI-Status der angezeigten Liste

Weiterführender Link: ABAP-Systemfelder