Anfang des Inhaltsbereichs

Tabellenzeilen über den Index lesen Dokument im Navigationsbaum lokalisieren

Die Anweisung READ, die auch zum Lesen von einzelnen Zeilen beliebiger Tabellen dient, erlaubt auch das Lesen über den Zeilenindex. Um eine einzelne Zeile einer Index-Tabelle auszulesen, verwendet man die Anweisung

READ TABLE <itab> INDEX <idx> <result>.

Das System liest die Zeile mit dem Index <idx> aus Tabelle <itab>. Dieser Zugriff ist schneller als die Suche über einen Schlüssel. Die Angabe <result> bestimmt wie dort, wie mit einer gelesenen Zeile verfahren wird.

Wird ein Eintrag mit dem angegebenen Index gefunden, enthält das Systemfeld SY-SUBRC den Wert 0 und SY-TABIX den Index dieser Zeile. Ansonsten ist SY-SUBRC ungleich 0.

Ist <idx> kleiner oder gleich 0, tritt ein Laufzeitfehler auf. Ist <idx> größer als die Anzahl vorhandener Zeilen, wird SY-SUBRC auf 4 gesetzt.

Beispiel

REPORT demo_int_tables_read_index.

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

DATA itab LIKE SORTED TABLE OF line WITH UNIQUE KEY col1.

FIELD-SYMBOLS <fs> LIKE LINE OF itab.

DO 20 TIMES.
  line-col1 = sy-index.
  line-col2 = 2 * sy-index.
  APPEND line TO itab.
ENDDO.

READ TABLE itab ASSIGNING <fs> INDEX 7.

WRITE:   sy-subrc, sy-tabix.
WRITE: / <fs>-col1, <fs>-col2.

Die Listenausgabe ist:

    0         7
         7         14

Es wird eine sortierte Tabelle ITAB angelegt und mit 20 Zeilen gefüllt. Die Zeile mit dem Index 7 wird gelesen und dem Feldsymbol <FS> zugewiesen.

 

 

Ende des Inhaltsbereichs