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