Berechnungsfelder

Der Wert eines Eingabefelds kann mit Hilfe von Formelausdrücken automatisch berechnet werden. Hierbei stehen sowohl grundlegende mathematische Operationen wie Summe oder Produkt zur Verfügung als auch Textverkettungs- oder Datumsoperationen.


Tipp: Um beliebige Rechnungen wie z.B. Multiplikation, Addition, etc. durchzuführen, kann die Funktion $calc() verwendet werden. Diese beachtet Grundrechenregeln wie "Punkt vor Strich" und Klammersetzung und bietet mathematische Standardfunktionen wie Wurzel, Sinus, Modulo etc. an.


images/download/attachments/44935340/image2019-12-4_10-29-12-version-1-modificationdate-1575451752232-api-v2.png

In der Eigenschaftsrubrik "Berechnungen" kann ein Eingabefeld zu einem Berechnungsfeld geändert werden, indem das Häkchen "Berechnungsfeld" (2) gesetzt wird. Bei aktivierter Berechnungsfeldfunktion werden zusätzliche Felder und Schaltflächen eingeblendet:

(3) Änderungsarten Legt fest, wann die Berechnung angestoßen bzw. erneut ausgeführt werden soll. Diese Eigenschaft bezieht sich auf im Berechnungsausdruck (4) referenzierte Felder, deren Wertänderung die Berechnung neu anstoßen können.

(4) Berechnungsausdruck Definiert eine Formel zur Berechnung des Feldwertes. Zur Verfügung stehende Funktionen (Klick auf (5) oder Rechtsklick in das Textfeld) können wie oben gezeigt verschachtelt werden. Der Screenshot zeigt eine Beispielformel, welche die Werte zweier Felder mit den Element-IDs 3 und 4 addiert und anschließend mit 2 multipliziert (2 * ( $el(3) + $el(4) ).

(5) Funktionen (Plussymbol) Hier kann eine Funktion gewählt werden, die dann an der aktuellen Cursorposition des Berechnungsausdruckfeldes eingefügt wird. Optional kann dies auch über einen Rechtsklick an entsprechender Stelle im Textfeld erreicht werden. (siehe Berechnungsausdruck).

(6) Check (Hakensymbol) Der Ausdruck wird syntaktisch auf Korrektheit geprüft. Hinweis: Es erfolgt hier keine Prüfung der Werte oder Feldinhalte!

(7) Elementwert verknüpfen (Linksymbol) Ermöglicht das Zuordnen eines Feldwertes indem die Funktion $el in der Form $el( ElementID ) in den Berechnungsausdruck an der aktuellen Cursorposition eingefügt wird


HINWEIS◄ Auch wenn für ein Eingabefeld Berechnungen konfiguriert sind, lässt es weiterhin Eingaben zu, solange der interaktive Zugriff nicht über andere Optionen (nicht aktiv, schreibgeschützt, nicht sichtbar) verhindert wird. Benutzereingaben konkurrieren dann mit dem Berechnungsergbnis, so dass die passende Einstellung für die "Änderungsarten" besonders wichtig ist. Grundsätzlich ist diese Konkurrenz ein gangbarer Weg, z. B. um dem Benutzer einer Maske berechnete Werte "anzubieten", die er anschließend interaktiv übersteuern und dann auch Speichern kann. Dann passen allerdings die Basisdaten (z. B. Länge, Breite, Höhe), sofern überhaupt welche gemacht wurden, nicht mehr zwangsläufig zu dem gespeicherten Ergebniswert (z. B. Volumen <> Länge x Breite x Höhe). Ob bzw. wann die Berechnung bei erneuten interaktiven Änderungen an den Basisdaten erneut angestoßen werden soll, regeln die "Änderungsarten" für die Berechnung.

Können spezielle Anforderungen an die Berechnungslogik oder die Bedingungen für eine Ansteuerung der Neuberechnung im Arbeitsablauf einer Formulars nicht mit den gegebenen Konfigurationsmöglichkeiten abgedeckt werden, bietet die Verhaltensweise "Berechnen" zusätzliche Gestaltungsspielräume auf der Basis derselben Funktionen. Einerseits können z. B. mehrere Verhalten mit unterschiedlichen Berechnungslogiken für dasselbe Zielfeld definiert werden, die kontextabhängig bzw. per Fallunterscheidung herangezogen werden können. Andererseits besteht mehr Kontrolle darüber, wann welche Berechnung ausgeführt und wie mit dem Ergebnis verfahren wird.

HINWEIS◄ Die Berechnungsfunktionen sind alle sowohl über Eigenschaften|Berechnungen als auch über Verhalten|Verhaltensweise|Berechnen sichtbar und anwendbar. Allerdings sind manche Kombinationen nicht sinnvoll. Beispielsweise sind die Funktionen für Daten (Arithmetik auf Datumswerten) ohne Vergleichsoperation nicht nutzbar, d.h. für Eigenschaften eines Textfeldes nicht sinnvoll nutzbar.

Verfügbare Funktionen und Syntaxbeschreibung

Eine detaillierte Syntaxbeschreibung und sämtliche verfügbare Funktionen finden sich im Kapitel Berechnungsausdruck.

Anwendungsbeispiel

Ein Textfeld soll die verdoppelte Summe der Werte zweier Textfelder als berechneten Wert setzen.

images/download/attachments/44935340/calculationField-version-2-modificationdate-1575452339971-api-v2.png
Abbildung: Visuell wird im Formulardesigner das Feld als Berechnungsfeld gekennzeichnet (Taschenrechnersymbol). Der Berechnungsausdruck entspricht der Formel 2*(a+b).

Unten stehender Screenshot zeigt die oben konfigurierte Form zur Laufzeit.

images/download/attachments/44935340/image2018-5-25_15_28_2-version-1-modificationdate-1575451747854-api-v2.png

Das dritte Feld beinhaltet nach dem Tippen der Zahl 4 in das Feld b sofort das Ergebnis 14.