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

Tabellenausdrücke, Standardwert

Das Beispiel demonstriert Standardwerte für Tabellenausdrücke.

Quelltext

REPORT demo_tab_exp_default.

CLASS demo DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS main.
ENDCLASS.

CLASS demo IMPLEMENTATION.
  METHOD main.
    TYPES:
      BEGIN OF line,
        id    TYPE i,
        value TYPE string,
      END OF line,
      itab TYPE SORTED TABLE OF line WITH UNIQUE KEY id.

    DATA(def) = VALUE line( id = 0 value = `not found` ).

    DATA(itab) = VALUE itab( ( id = 3 value = `CCC` )
                             ( id = 4 value = `DDD` )
                             ( id = 5 value = `EEE` ) ).

    DATA(result1) = VALUE #( itab[ id = 1 ] DEFAULT def ).
    cl_demo_output=>write( result1 ).


    DATA(result2) = VALUE #( itab[ id = 1 ]-value DEFAULT def-value ).
    cl_demo_output=>write_data( result2 ).

    DATA(result3) = VALUE #( itab[ id = 1 ] DEFAULT VALUE #(
                             itab[ id = 2 ] DEFAULT VALUE #(
                             itab[ id = 3 ] OPTIONAL ) ) ).
    cl_demo_output=>write_data( result3 ).

    cl_demo_output=>display( ).
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  demo=>main( ).

Beschreibung

Das Ergebnis result1 des ersten Tabellenausdrucks ist vom Zeilentyp der internen Tabelle itab. Da die angegebene Zeile nicht gefunden wird, wird statt dessen die hinter DEFAULT angegebene Struktur def zurückgegeben.

Das Ergebnis result2 des zweiten Tabellenausdrucks resultiert aus einer Verkettung mit dem Strukturkomponenten-Selektor und ist eine Komponente vom Typ string. Hier wird als Standardwert nur die entsprechende Komponente der Struktur def angegeben.

Das Ergebnis result3 des dritten Tabellenausdrucks ist wieder vom Zeilentyp der internen Tabelle itab. Als Standardwert werden weitere Tabellenausdrücke mit Standardwert angegeben. Im gezeigten Fall findet der Tabellenausdruck im zweiten Standardwert eine Zeile und diese wird zurückgegeben. Wäre keine Suche erfolgreich, würde wegen des abschließenden OPTIONAL eine initiale Zeile zurückgegeben.