ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Interne Daten verarbeiten →  Interne Tabellen →  Ausdrücke und Funktionen für interne Tabellen → 

table_exp - Tabellenausdrücke

Syntax

... itab[ itab_line ][-comp|[ ... ]|->comp] ...

Wirkung

Ein Tabellenausdruck besteht aus der Angabe einer internen Tabelle itab direkt gefolgt von einer in eckigen Klammern [ ] eingeschlossenen Zeilenangabe itab_line, an die eine Verkettung -comp|[ ... ]|->comp angehängt werden kann. Der Ausdruck sucht die angegebene Zeile in der internen Tabelle.

Das Ergebnis eines Tabellenausdrucks kann wie folgt verwendet werden:

Die interne Tabelle itab muss direkt wie unter Lesepositionen beschrieben über ihren Namen, ein Feldsymbol oder eine dereferenzierte Datenreferenz angegeben werden. Bei einer Tabelle mit Kopfzeile wird der Tabellenkörper und nicht die Kopfzeile angesprochen.

Wenn die angegebene Zeile nicht gefunden wird, kommt es an allen Operandenpositionen zu einer behandelbaren Ausnahme der Klasse CX_SY_ITAB_LINE_NOT_FOUND außer

Hinweise

Beispiel

Der Methode get_spfli wird der Inhalt der Komponente carrid der Zeile der internen Tabelle carrier_tab übergeben, in der die Komponente carrname des Sekundärschlüssels name einen bestimmten Wert hat.

DATA carrier_tab TYPE HASHED TABLE OF scarr
                 WITH UNIQUE KEY carrid
                 WITH NON-UNIQUE SORTED KEY name COMPONENTS carrname.

SELECT * FROM scarr INTO TABLE @carrier_tab.

TRY.
    DATA(flight_tab) = cl_demo_spfli=>get_spfli(
      carrier_tab[ KEY name
                   COMPONENTS carrname = 'United Airlines' ]-carrid ).
    cl_demo_output=>display( flight_tab ).
  CATCH cx_sy_itab_line_not_found.
    cl_demo_output=>display( `Nothing found` ).
ENDTRY.

Beispiel

Die erste Berechnung mit Tabellenzeilen ist ein schlechtes Beispiel für die Verwendung von Tabellenausdrücken. In einer Anweisung wird dreimal die gleiche Selektion ausgeführt. Die zweite Berechnung zeigt, wie dies durch die Zuweisung an ein Feldsymbol umgangen werden kann.

DATA itab TYPE TABLE OF i.
itab = VALUE #( ( 3 ) ( 5 ) ).

"Bad example
itab[ table_line = 3 ] =
  itab[ table_line = 3 ] * itab[ table_line = 3 ].

"Good example
ASSIGN itab[ table_line = 5 ] TO FIELD-SYMBOL(<fs>).
<fs> = <fs> * <fs>.

Beispiele

Das Programm DEMO_TABLE_EXPRESSIONS zeigt weitere Beispiele zur Verwendung von Tabellenausdrücken.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_ITAB_LINE_NOT_FOUND



Weiterlesen
table_exp - itab_line
table_exp - Resultat
table_exp - Verkettungen
table_exp - default
table_exp - Schreibpositionen