Anfang des Inhaltsbereichs

Selektionstabellen in logischen Ausdrücken Dokument im Navigationsbaum lokalisieren

Um zu überprüfen, ob der Wert eines Felds den Bedingungen in einer Selektionstabelle entspricht, kann man folgenden speziellen logischen Ausdruck verwenden:

... <f> IN <selcrit>....

Dieser logische Ausdruck ist wahr, wenn der Inhalt von Feld <f> den in der Selektionstabelle <seltab> gespeicherten Bedingungen entspricht. <f> kann ein beliebiges elementares Feld sein.

Ist das Feld <f> gleichzeitig das Feld, für das die Selektionstabelle <seltab> mit SELECT-OPTIONS deklariert wurde, kann folgende Kurzform für den logischen Ausdruck verwendet werden:

... <selcrit>....

Diese Kurzform gilt nicht für mit RANGES definierte Selektionstabellen.

Beispiel

REPORT demo_logical_expr_seltab_1.

DATA wa_carrid TYPE spfli-carrid.

SELECT-OPTIONS airline FOR wa_carrid.

WRITE: 'Innerhalb'(001), 'Außerhalb'(002).

SELECT carrid FROM spfli INTO wa_carrid.
  IF wa_carrid IN airline.
    WRITE: / wa_carrid UNDER 'Innerhalb'(001).
  ELSE.
    WRITE: / wa_carrid UNDER 'Außerhalb'(002).
  ENDIF.
ENDSELECT.

Ist die Selektionstabelle wie folgt gefüllt:

SIGN

OPTION

LOW

HIGH

I

BT

DL

UA

E

EQ

LH

 

sieht die Listenausgabe etwa so aus:

Diese Grafik wird im zugehörigen Text erklärt

In der SELECT Schleife werden alle Zeilen aus der Datenbanktabelle SPFLI gelesen. Mit der IF-Anweisung verzweigt der Programmablauf, je nach logischem Ausdruck, in zwei Anweisungsblöcke. Die Kurzform IF AIRLINE ist in diesem Programm ebenfalls möglich.

Beispiel

REPORT demo_logical_expr_seltab_2.

DATA wa_spfli TYPE spfli.

SELECT-OPTIONS: s_carrid FOR wa_spfli-carrid,
                s_cityfr FOR wa_spfli-cityfrom,
                s_cityto FOR wa_spfli-cityto,
                s_connid FOR wa_spfli-connid.

SELECT * FROM spfli INTO wa_spfli.
  CHECK: s_carrid,
         s_cityfr,
         s_cityto,
         s_connid.
  WRITE: / wa_spfli-carrid, wa_spfli-connid,
           wa_spfli-cityfrom, wa_spfli-cityto.
ENDSELECT.

Füllt der Benutzer die Eingabefelder des Selektionsbilds wie folgt aus:

Diese Grafik wird im zugehörigen Text erklärt

ergibt dies etwa folgende Listenausgabe:

Diese Grafik wird im zugehörigen Text erklärt

In der SELECT-Schleife werden alle Zeilen aus der Datenbanktabelle SPFLI gelesen. Von diesen Zeilen gibt das System nur die Zeilen auf der Listed aus, die den Bedingungen in den Selektionstabellen genügen. Ansonsten verläßt das System den Schleifendurchlauf nach der CHECK-Anweisung. CHECK verwendet die Kurzform der logischen Ausdrücke. Die Langformen lauten:

CHECK: wa_spfli-carrid IN s_carrid,
       wa_spfli-cityfr IN s_cityfr,
       wa_spfli-cityto IN s_cityto,
       spfli-connid IN s_connid.

 

 

Ende des Inhaltsbereichs