Zirkuläre Abhängigkeit bei Formeln vermeiden
Frage
Ich habe zwei Merkmale (Sonderlänge und Sonderhub). Beide sind jeweils voneinander abhängig und könnten durch eine Formel berechnet werden. Wenn ich die Formeln in beide Merkmale eingebe, erhalte ich eine Fehlermeldung.
Beispiel: Der Wert des Sonderhubes wird berechnet, indem man „Sonderlänge – 180" eingibt. Umgekehrt ist die Sonderlänge „Sonderhub + 180". Allerdings müsste es offen bleiben, ob der Nutzer einen Hub oder eine Länge eingibt.
Antwort
Bei zirkulären Abhängigkeiten (A berechnet sich aus B, B berechnet sich aus A) müssen Sie dem Nutzer eine Entscheidung vorschalten. Der Nutzer wählt, welchen Wert er eingeben möchte – das andere Merkmal wird dann berechnet.
Lösungsansatz
-
Auswahl-Merkmal anlegen: „Möchten Sie Sonderlänge oder Sonderhub eingeben?" mit den Werten „Sonderlänge" und „Sonderhub"
-
Eingabefelder ausblenden: Je nach Auswahl das nicht benötigte Eingabefeld per Aktionsregel ausblenden
-
Berechnetes Feld anlegen: Ein verstecktes berechnetes Merkmal „Tatsächliche Sonderlänge" mit folgender Formel:
variable("Möchten Sie Sonderlänge oder Sonderhub eingeben?").value == 1 ? Sonderlänge : Sonderhub + 180
Attribut für die Auswahl anlegen
Damit die Formel funktioniert, müssen Sie an der Auswahl ein Attribut (Wert-Eigenschaft) anlegen:
- Öffnen Sie die Werte des Merkmales „Möchten Sie Sonderlänge oder Sonderhub eingeben?"
- Klicken Sie auf „Neue Spalte"
- Benennen Sie die Spalte als „value" und wählen Sie „Zahl" als Typ
- Klicken Sie auf „Anlegen"
- Vergeben Sie für den Wert „Sonderlänge" eine 1 und für „Sonderhub" eine 0
variable("...")– Merkmale mit Leerzeichen im Namen werden in die Funktionvariable()verpacktMerkmal.Attribut– Mit der Schreibweisevariable("...").valuegreifen Sie auf das Attribut „value" der Auswahl zua ? b : c– Der ternäre Operator: Wennawahr ist, wirdbgeliefert, sonstc
Ergebnis
- Wählt der Nutzer „Sonderlänge", gibt er die Länge direkt ein → das Feld „Tatsächliche Sonderlänge" übernimmt den Wert
- Wählt der Nutzer „Sonderhub", gibt er den Hub ein → das Feld „Tatsächliche Sonderlänge" berechnet automatisch
Sonderhub + 180
Weiterführende Informationen
- Wie lasse ich etwas berechnen? – Grundlagen zu berechneten Merkmalen
- Attribute/Wert-Eigenschaften anlegen – Zusätzliche Informationen an Auswahlwerten
- Merkmale ausblenden – Merkmale regelgesteuert ein- und ausblenden
Verwandte Themen
- Bedingte Berechnungen
- Ternärer Operator in Formeln
- Versteckte berechnete Felder