Berechnen
Die Verhaltensweise Berechnen führt einen Berechnungsausdruck aus, der auf vielfältige Weise genutzt werden kann, um im Kontext eines Formulars verfügbare Daten auszuwerten oder daraus neue Daten zu gewinnen.
Der optionale Prüfausdruck beeinflusst dabei, ob die Aktionen bei "wahr" oder bei "falsch" ausgeführt werden, indem er einen als Wahrheitswert interpretierbaren Wert zurückliefert. Der Eingabewert $input ist dabei der Ausgabewert des oben berechneten Wertes. Über die Variable "orgInput" kann jedoch auch auf den originalen Eingabewert des Verhaltens zugegriffen werden ($var(orgInput)).
Siehe auch: Berechnungsfelder
Die Verhaltensweise Berechnen führt einen Berechnungsausdruck aus, der auf vielfältige Weise genutzt werden kann, um im Kontext eines Formulars verfügbare Daten auszuwerten oder daraus neue Daten zu gewinnen.
Der Rückgabewert der "Berechnung" überschreibt die ursprünglichen Eingabedaten ($input) des Verhaltens. Auf per Auslöser (z. B. Geändert) oder aus einem aufrufenden Verhalten (s. Verhalten ausführen) weitergegebene Eingangsdaten kann sich der Berechnungsausdruck allerdings durchaus beziehen (z. B. per $input). Der weitere Ablauf hängt teilweise davon ab, ob ein optionaler Prüfungsausdruck konfiguriert wurde, um per Berechnungsausdruck einen Wahrheitswert für die Auswahl der auszuführenden Aktionen (bei "wahr"/"falsch") zu ermitteln.
Insgesamt sind folgende Fälle zu unterscheiden:
Enthält der Berechnungsausdruck syntaktische Fehler (z. B. bezüglich der Klammersetzung), werden die Aktionen bei "falsch" ausgeführt. Als Eingabedaten ($input) wird dabei eine Fehlermeldung zugewiesen. Ein ggf. definierter Prüfungsausdruck wird dann nicht ausgewertet.
Ist kein Prüfungsausdruck definiert, dann wird der Rückgabewert aus einem syntaktisch einwandfreien Berechnungsausdruck ($input) an die Aktionen bei "wahr" weitergegeben. Dies ist auch dann der Fall, wenn der Rückgabewert leer ($null) lautet, was z. B. bei einer "Division durch 0" passiert.
Ist ein Prüfungsausdruck definiert, dann wird dieser als Berechnungsausdruck ausgewertet, wobei der Rückgabewert aus dem bereits ausgewerteten Berechnungsausdruck die Eingabedaten ($input) liefert. Über die Variable "orgInput" kann auch auf den originalen Eingabewert des Verhaltens zurückgegriffen werden ($var(orgInput)).
Enthält der Prüfungsausdruck syntaktische Fehler (z. B. bezüglich der Klammersetzung), werden die Aktionen bei "falsch" ausgeführt. Als Eingabedaten ($input) wird dabei eine Fehlermeldung zugewiesen.
Gilt das Ergebnis des Prüfungsausdrucks nach der folgenden Tabelle nicht als falsch, werden die Eingabedaten ($input) aus dem Berechnungsausdruck an die Aktionen bei "wahr" übergeben.
Wird das Ergebnis des Prüfungsausdrucks nach der folgenden Tabelle als falsch interpretiert, werden die Eingabedaten ($input) aus dem Berechnungsausdruck an die Aktionen bei "falsch" übergeben.
Datentyp
Werte, die als falsch ("falsy") gelten:
(keiner)
null ($null)
Boolescher Wert
false
Zahl
0
Text
"", "0", "false", "no" (ohne Berücksichtigung von Groß-/Kleinschreibung)
Beispiel
Ein numerisches Eingabefeld (für Ganzzahlen) soll bei jeder Änderung des Wertes ermitteln und anzeigen, ob der Zahlenwert gerade oder ungerade ist.
|
|
Konfiguration:
|
|
►ANMERKUNG◄ Da die Zahl 0 im Prüfungsausdruck als "falsch" interpretiert wird (s. Tabelle oben), könnte man vermuten, dass in diesem Beispiel der Prüfungsausdruck $not($input) dieselben Ergebnisse liefern sollte wie $cmp($input,=,0). Das ist aber nicht der Fall, da für die Funktion not (logische Negierung) jeder Wert, der nicht "true" (ohne Beachtung der Groß-/Kleinschreibung) entspricht als "false" gilt. Würde man dagegen $input direkt als Prüfungsausdruck verwenden, müsste man nur die beiden Hinweis setzen-Aktionen vertauschen, um korrekte Ergebnisse zu erhalten.