Show TOC

HintergrundSelektionstabellen in logischen Ausdrücken Dieses Dokument in der Navigationsstruktur finden

 

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....

Syntax Syntax

  1. REPORT demo_logical_expr_seltab_1.
  2. DATA wa_carrid TYPE spfli-carrid.
  3. SELECT-OPTIONS airline FOR wa_carrid.
  4. WRITE: 'Innerhalb'(001), 'Außerhalb'(002).
  5. SELECT carrid FROM spfli INTO wa_carrid.
  6.   IF wa_carrid IN airline.
  7.     WRITE: / wa_carrid UNDER 'Innerhalb'(001).
  8.   ELSE.
  9.     WRITE: / wa_carrid UNDER 'Außerhalb'(002).
  10.   ENDIF.
  11. ENDSELECT.
Ende des Codes

Ist die Selektionstabelle wie folgt gefüllt:

SIGN

OPTION

LOW

HIGH

I

BT

DL

UA

E

EQ

LH

sieht die Listenausgabe etwa so aus:

Die Abbildung wird im Begleittext erläutert.

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.

Syntax Syntax

  1. REPORT demo_logical_expr_seltab_2.
  2. DATA wa_spfli TYPE spfli.
  3. SELECT-OPTIONS: s_carrid FOR wa_spfli-carrid,
  4.                 s_cityfr FOR wa_spfli-cityfrom,
  5.                 s_cityto FOR wa_spfli-cityto,
  6.                 s_connid FOR wa_spfli-connid.
  7. SELECT * FROM spfli INTO wa_spfli.
  8.   CHECK: s_carrid,
  9.          s_cityfr,
  10.          s_cityto,
  11.          s_connid.
  12.   WRITE: / wa_spfli-carrid, wa_spfli-connid,
  13.            wa_spfli-cityfrom, wa_spfli-cityto.
  14. ENDSELECT.
Ende des Codes

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

Die Abbildung wird im Begleittext erläutert.

ergibt dies etwa folgende Listenausgabe:

Die Abbildung wird im Begleittext erläutert.

In der SELECT-Schleife werden alle Zeilen aus der Datenbanktabelle SPFLI gelesen. Von diesen Zeilen gibt das System nur die Zeilen auf der Liste 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:

Syntax Syntax

  1. CHECK: wa_spfli-carrid IN s_carrid,
  2.        wa_spfli-cityfr IN s_cityfr,
  3.        wa_spfli-cityto IN s_cityto,
  4.        spfli-connid IN s_connid.
Ende des Codes