Show TOC Anfang des Inhaltsbereichs

Selbstdefinierte Tabellentypen  Dokument im Navigationsbaum lokalisieren

Mit der Anweisung:

TYPES dtype TYPE|LIKE tabkind OF linetype [WITH key] ... .

wird ein interner Tabellentyp der Zugriffsart tabkind, dem Zeilentyp linetype und dem Schlüssel key definiert. Der Zeilentyp linetype ist ein beliebiger bekannter Datentyp. Die Angaben zum Schlüssel sind optional. Interne Tabellen können also generisch sein.

Interne Tabellen

Die Syntax für die direkte Deklaration einer internen Tabelle als gebundenen Datentyp einer Variablen entspricht der Definition eines Tabellentyps mit der TYPES-Anweisung:

DATA itab TYPE|LIKE tabkind OF linetype [WITH key] ... .

Die Variable itab wird als interne Tabelle der Zugriffsart tabkind, dem Zeilentyp linetype und dem Schlüssel key deklariert. Der Zeilentyp linetype ist ein beliebiger bekannter Datentyp.

Für ausführliche Informationen zur Definition interner Tabellen siehe Interne Tabellen sowie Schlüsselwortdokumentation.

Ranges-Tabellen

Mit Hilfe der Anweisungen:

TYPES dtype {TYPE RANGE OF type}|{LIKE RANGE OF dobj} ... .
DATA rtab {TYPE RANGE OF type}|{LIKE RANGE OF dobj} ... .

kann ein spezieller Tabellentyp als eigenständiger Datentyp für Ranges-Tabellen oder als Attribut des Datenobjektes rtab mit der Tabellenart Standardtabelle, mit einem Standardschlüssel und einem speziell strukturierten Zeilentyp definiert werden.

Für weitere Informationen zu Ranges-Tabellen: siehe Schlüsselwortdokumentation.

Beispiel

PROGRAM demo_internal_table.

TYPES: BEGIN OF mytext,
         number TYPE i,
         name   TYPE c
LENGTH 10,
       END OF mytext.

TYPES mytab TYPE STANDARD TABLE OF mytext WITH DEFAULT KEY.

DATA text TYPE mytext.
DATA itab TYPE mytab.

text-number = 1. text-name = 'John'.
APPEND text TO itab.

text-number = 2. text-name = 'Paul'.
APPEND text TO itab.

text-number = 3. text-name = 'Ringo'.
APPEND text TO itab.

text-number = 4. text-name = 'George'.
APPEND text TO itab.

LOOP AT itab INTO text.
  WRITE: / text-number, text-name.
ENDLOOP.

Dieses Programm erzeugt die folgende Bildschirmausgabe:

         1  John

         2  Paul

         3  Ringo

         4  George

In diesem Beispiel wird ein Datentyp mytext als Struktur definiert. Dann wird ein Datentyp mytab als interne Tabelle mit dem Zeilentyp mytext definiert. Die Datenobjekte text und itab werden mit Bezug auf die programmlokalen Datentypen mytext und mytab deklariert. Die Zeilen der internen Tabelle itab werden dynamisch mit APPEND erzeugt. Über die Struktur text wird der Inhalt der Tabelle itab auf die Ausgabeliste geschrieben. Siehe auch Interne Tabellen

Ende des Inhaltsbereichs