2.9 Bedingungen
In Formelattributen können Bedingungen formuliert werden. Bedingungen werden durch geschweifte Klammern {} gekennzeichnet. Bedingungen werden in der Art einer case-Anweisung geschrieben.
Es gibt grundsätzlich mehrere Alternativen je Bedingung. Eine Schachtelung der Bedingungen ist möglich.
Nach dem Vergleichswert einer Bedingung muss im Formelattribut ein Leerzeichen stehen!
Schlüsselkennung { } |
Bedingung |
Syntax: { [ j ] <Bedingungsformel> [ { [ = | < | > | <> | : ("<Wertestring>" | <aid> ) ]1+ Leerzeichen <Ausführungsformel> } ]1+ } |
|
j |
nach Abarbeitung der Bedingung springe (jump) zum Objekt vor der Ausführung. |
Bedingungsformel |
Formelstring, dessen Ergebnis den Prüfstring ergibt. |
=, <, >, <> |
Prüfung auf Gleichheit, Ungleichheit, größer oder kleiner. Zahlen werden auch als Stringvergleich geprüft. |
Wertestring |
Die Zeichenfolge, die mit dem Prüfstring verglichen wird. Hier kann auch auf Registerinhalte zugegriffen werden. |
aid |
Alternativer Wert eines Attributs am Startobjekt, der mit dem Prüfstring verglichen wird. |
:"" |
Dieses Statement (ohne Bedingung) legt den Sonst-Fall der case-Anweisung fest. Hier können Sie festlegen was ausgeführt werden soll, wenn alle anderen Bedingungen nicht zutreffen. |
Ausführungsformel |
Anweisung, die ausgeführt wird, wenn die Prüfung erfolgreich war. Als Ausführungsformel ist jede Folge der möglichen Befehle erlaubt. Zum Beispiel: - Text in Hochkomma (" ") eingeschlossen - Attributwert - Formel - ….. |
Beispiele für Formeln mit Bedingungen:
Vergleich von 2 Attributwerten:
Das Attribut mit der ID=245 enthält die Breite und das mit der ID = 246 die Höhe eines Objekts.
· {A245;{=246 "gleich";}{:"" "ungleich";}};
Ergebnis für Breite = 20,00 mm und Höhe = 20,00 mm „gleich“
Ergebnis für Breite = 20,00 mm und Höhe = 30,00 mm „ungleich“
· {A245;{=246 "2 x ";A245;}{:"" =*A245A246; " mm";}};
Ergebnis für Breite = 20,00 mm und Höhe = 20,00 mm: „2 x 20,00 mm“
Ergebnis für Breite = 20,00 mm und Höhe = 30,00 mm: „600,00 mm“
· {=f+A245A246;{="40" "vierzig";}{:"" =f+A245A246; " mm";}};
Ist die Summe von Höhe und Breite = 40, soll „vierzig“ ausgegeben werden, ansonsten soll die Summe von Breite und Höhe als Fließkomma-Zahl mit „mm“ dargestellt werden.
Prüfung ob ein Attributwert eine bestimmte Bedingung erfüllt:
· {AF245(256);{="1" "manuell ";A245;}{:"" A245;}};
AF245(256) gibt den Wert „1“ aus, wenn das Attribut mit der ID = 245 manuell eingetragen wurde.
Ergebnis bei manueller Eingabe des Attributs mit der ID = 245: „manuell 20,00 mm“.
· {A10025;{="1" A10001;}{:"" A10002;}};
Das Attribut mit der ID=10025 sei ein Boolsches Attribut.
Hat dieses den Wert „1“ wird der Wert des Attributs mit der ID=10001 ausgegeben, ansonsten der Wert des Attributs mit der ID=10002.
· {A5;{="20"<"10">77 "im Bereich";}{:"" "nicht im Bereich";}};
Ist der Wert des Attributs mit der ID=5 gleich 20 oder kleiner 10 oder größer als der Wert des Attributs mit der ID=77 des Startobjekts, ist das Ergebnis der Formel „im Bereich“. Wird die Bedingung nicht erfüllt, wird „nicht im Bereich“ ausgegeben.
· {A5;{="1"<"2" "<2";}{="10">"24" ">24";}{:"" "default";}};
Ist der Wert des Attributs mit der ID =5 gleich 1 oder kleiner 2, wird „<2“ ausgegeben. Ist der Wert gleich 10 oder größer 24, wird „>24“ ausgegeben. Wird keine der Bedingungen erfüllt, wird „default“ ausgegeben.
Aufgabe: Pro Kindobjekt der 1. Stufe (A1, A2) sollen die Kindobjekte der 2. Stufe (1.2, 1.3, 2.2) aufgelistet werden. Die Kindobjekte der ersten Stufe sollen mit „ / “ getrennt werden, die der 2. Stufe mit „#“. Sobald der Wert des Kindobjekts der 2. Stufe 2.3 erreicht, soll die Ausführung der Formel beendet werden. Ergebnis der Formel: START 1.2 # 1.3 / 2.2 # |
Aufgabe: Ist ein Betriebsmittel eine Klemme, soll die Funktion der Klemmleiste, die Klemmleiste, Funktion der Klemme und die Klemme ausgegeben werden. Ansonsten soll der Text „<> Klemme“ ausgegeben werden. Verwendete Funktion: Ergebnis der Funktion: für die Klemme (Startobjekt1): .PS -0X1 .PS 1 für die Abschlussplatte (Startobjekt 2): <>Klemme |