Anfang des Inhaltsbereichs

Attribute interner Tabellen bestimmen Dokument im Navigationsbaum lokalisieren

Um zur Laufzeit Attribute einer internen Tabelle zu bestimmen, die eventuell nicht statisch bekannt sind, verwendet man die Anweisung:

DESCRIBE TABLE <itab> [LINES <l>] [OCCURS <n>] [KIND <k>].

Mit dem Parameter LINES wird die Anzahl der gefüllten Zeilen in die Variable <l> geschrieben. Mit OCCURS wird der beim Anlegen in INITIAL SIZE angegebene Wert in die Variable <n> geschrieben. Mit dem Parameter KIND wird die Tabellenart als 'T' für Standard-Tabellen, 'S' für sortierte Tabellen und 'H' für Hash-Tabellen in die Variable <k> geschrieben.

Beispiel

REPORT demo_int_tables_describe_table .

DATA: BEGIN OF line,
         col1 TYPE i,
         col2 TYPE i,
      END OF line.

DATA itab LIKE HASHED TABLE OF line WITH UNIQUE KEY col1
                                    INITIAL SIZE 10.

DATA: lin    TYPE i,
      ini    TYPE i,
      knd(1) TYPE c.

DESCRIBE TABLE itab LINES lin OCCURS ini KIND knd.
WRITE: / lin, ini, knd.

DO 1000 TIMES.
  line-col1 = sy-index.
  line-col2 = sy-index ** 2.
  INSERT line INTO TABLE itab.
ENDDO.

DESCRIBE TABLE itab LINES lin OCCURS ini KIND knd.
WRITE: / lin, ini, knd.

Die Listenausgabe ist:

         0         10  H

     1,000         10  H

Es wird eine Hash-Tabelle ITAB angelegt und gefüllt. Die Anweisung DESCRIBE TABLE wird vor und nach dem Füllen der Tabelle ausgeführt. Die aktuelle Zeilenzahl ändert sich, die Zahl der initialen Zeilen und die Tabellenart kann sich natürlich nicht ändern.

Ende des Inhaltsbereichs