Bedingungen

In Formelattributen können Bedingungen formuliert werden. Diese 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> | <"<Data Service>")>   ] 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.
Jegliche Navigation in diesem Formelstring wird am Ende der Bedingungsformel wieder zurückgesetzt.

 =, <>, ><

Prüfung auf Gleichheit, Ungleichheit, größer oder kleiner.
Zahlen werden auch als String-Vergleich geprüft.

?

Prüfung über Platzhalter (Wildcard), d. h. * (beliebig viele Zeichen) und ?(genau ein Zeichen).

Wertestring 

Die Zeichenfolge, die mit dem Prüfstring verglichen wird.

Bei ? enthält die Zeichenfolge Platzhalter, z. B. "??abc", "ABa**".

aid

Alternativer Wert eines Attributs am Startobjekt (das Objekt vor der ersten geschweiften Klammer), der mit dem Prüfstring verglichen wird.

Data Service

Alternativer Wert eines Attributs am Startobjekt – die Auswahl erfolgt über den Datenservice-Eintrag.

:""

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:

  • Freier Text (in Hochkomma „ “ eingeschlossen)
  • Attributwert, z. B. A5;
  • Ausgabe über Formeln, z. B. P;A5;
  • Navigation über Formeln , z. B. OGE;

Das erreichte Objekt am Ende der Ausführungsformel ist auch das aktuelle Objekt nach der gesamten Bedingung.

Ausnahme ist {j ...{...}};

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;}{:""  =f*A245A246; " mm2";}};
  • 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,00""vierzig";}{:""=f+A245A246; " mm";}};
  • Ist die Summe von Höhe (20,00 mm) und Breite (20,00 mm) = 40,00, 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:

  • {A25; {?"?lemml* ""A25 enthält das Wort Klemmleiste";}};
  • Mit ?"?lemml*"wird „Klemmleiste“ gefunden.

  • {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“.

  • {A10290;{="1" A10001;}{:"" A10002;}};
  • Das Attribut mit der ID = 10290 sei ein boolesches Attribut.
    Hat dieses den Wert „1“ (logisches „wahr“), 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 (Startobjekt 1): .PS -0X1 .PS 1

für die Abschlussplatte (Startobjekt 2): <>Klemme