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

images/download/attachments/177913913/image-2024-9-25_15-59-18-version-1-modificationdate-1727272757202-api-v2.png

Beispiel

Ein numerisches Eingabefeld (für Ganzzahlen) soll bei jeder Änderung des Wertes ermitteln und anzeigen, ob der Zahlenwert gerade oder ungerade ist.

images/download/attachments/177913913/image2019-11-29_18-2-14-version-1-modificationdate-1727270243379-api-v2.png

images/download/attachments/177913913/image2019-11-29_18-1-49-version-1-modificationdate-1727270243381-api-v2.png


Konfiguration:

images/download/attachments/177913913/image-2024-9-26_9-40-17-version-1-modificationdate-1727336416970-api-v2.png

  • Für das Eingabefeld wird ein Verhalten mit der Verhaltensweise Berechnen eingerichtet, das auf den Auslöser Geändert (nicht im Bild) mit sämtlichen Änderungstypen reagiert.


  • Der Berechnungsausdruck ermittelt über die Funktion calc (Funktionsausdruck berechnen), den Rest einer Ganzzahldivision des Eingabewerts ($input) durch 2 ("modulo 2", s. Berechne Wert). Für gerade Zahlen ergibt dieser Ausdruck den Wert 0, für ungerade den Wert 1.


  • Der Prüfausdruck verwendet die cmp (Vergleich) Funktion, um das vom Berechnungsausdruck zurückgegebene Ergebnis ($input) in einen Wahrheitswert umzuwandeln:

    • Wenn $input = 0 ist, liefert $cmp "true" und die Aktionen bei "wahr" sind relevant.

    • Sonst liefert $cmp "false" und die Aktionen bei "falsch" sind relevant.


  • Unter Aktionen bei "wahr" setzt die Aktion Hinweis setzen den Text "Zahl gerade" für das Zielelement.


  • Unter Aktionen bei "falsch" setzt die Aktion Hinweis setzen den Text "Zahl ungerade" für das Zielelement.



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.