Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@IF (Format 4) - Abfrage von Auftrags- und Benutzerschaltern

&pagelevel(3)&pagelevel

Mit diesem Format der @IF-Anweisung kann in EDT-Prozeduren geprüft werden, welche Auftrags- bzw. Benutzerschalter ein- oder ausgeschaltet sind (siehe auch @SETSW und Abschnitt „Auftragsschalter“). Abhängig davon wird eine angegebene Zeichenfolge als Eingabe abgearbeitet oder nicht.

Operation

Operanden

L-Modus

@IF

{ON | OFF} = [U] int :[text]

ON

OFF

U

Es wird verzweigt, wenn der angegebene Schalter gesetzt ist.

Es wird verzweigt, wenn der angegebene Schalter nicht gesetzt ist.

Legt fest, dass ein Benutzerschalter geprüft werden soll. Wird U nicht
angegeben, wird ein Auftragsschalter geprüft.

int

Nummer des Schalters (0..31), dessen Stellung geprüft werden soll.

Falls vor der Schalternummer das Schlüsselwort U angegeben ist, wird statt
des Auftragsschalters int der Benutzerschalter int der eigenen Kennung
geprüft.

text

EDT-Anweisung oder Datenzeile. Falls die Bedingung erfüllt ist, wird die
Zeichenfolge so behandelt, als ob man sie im L-Modus an der
Eingabeaufforderung eingegeben hätte. Insbesondere die Interpretation als
Dateneingabe bzw. als Anweisung erfolgt nach den gleichen Regeln (siehe dazu
den Abschnitt „L-Modus“).

Der Operand text beginnt unmittelbar hinter dem Zeichen ':', d.h. evtl.
angegebene Leerzeichen gehören schon dazu und werden bei
Dateneingaben auch in die Zeile übernommen.

Wird text nicht angegeben (aber der Doppelpunkt), wird eine Leerzeile
(Zeile der Länge 0) eingefügt.

Aus Kompatibilitätsgründen wird die früher mögliche Angabe von GOTO oder RETURN ohne Doppelpunkt in Prozeduren weiter unterstützt.

Hinweis

Die Verwendung von @IF mit @RETURN als Anweisung außerhalb von Prozeduren führt möglicherweise zur Beendigung des EDT (siehe @RETURN-Anweisung).

Beispiel

   1.     @SET #S2 = 'SCHALTER 15 IST AUS'
   1.     @SET #S3 = 'SCHALTER 15 IST AN'
   1.     @PROC 8
   1.     @ @IF ON = 15 : @GOTO 4
   2.     @ @PRINT #S2 N
   3.     @ @RETURN              ---------------------------------------- (1)
   4.     @ @PRINT #S3 N
   5.     @END
   1.     @SETSW OFF = 15 ----------------------------------------------- (2)
   1.     @DO 8 --------------------------------------------------------- (3)
SCHALTER 15 IST AUS
   1.     @SETSW ON = 15 ------------------------------------------------ (4)
   1.     @DO 8 --------------------------------------------------------- (5)
SCHALTER 15 IST AN
   1.
(1)Mit der Prozedur in Arbeitsdatei 8 soll bei gesetztem Auftragsschalter 15 die Zeichenfolgevariable #S3 ausgegeben werden, anderenfalls aber die Zeichenfolgevariable #S2.
(2)Schalter 15 wird zurückgesetzt.
(3)Die Prozedur von Arbeitsdatei 8 wird ausgeführt.
(4)Schalter 15 wird gesetzt.
(5)Die Arbeitsdatei 8 wird ausgeführt.