Dynamische Formulare
Zweck von Expressions
Mit Expressions können flexible, intelligente Formulare erstellt werden, die sich kontextabhängig verhalten und nur relevante Felder anzeigen. Damit kann abhängig von anderen Feldwerten festgelegt werden, ob ein Feld:
- angezeigt oder ausgeblendet wird (
hide) - deaktiviert ist (
props.disabled) - als Pflichtfeld gilt (
props.required) - oder andere Eigenschaften dynamisch erhält
Die Auswertung erfolgt zur Laufzeit, bevor ein Formular angezeigt wird.
Grundprinzip
Eine Expression ist ein JavaScript-Ausdruck, der zu true oder false ausgewertet wird.
Die Expression wird bei jeder relevanten Änderung neu berechnet.
Typische Anwendungsfälle: - Ein Feld wird nur angezeigt, wenn ein anderes Feld einen bestimmten Wert hat. - Ein Feld soll ausgeblendet werden, wenn ein anderes Feld einen Wert hat. - Ein Feld soll nur angezeigt werden, wenn der Datensatz erstmalig erstellt wird
Verfügbare Variablen
Innerhalb einer Expression stehen folgende Variablen zur Verfügung:
data
Enthält das gesamte Formularmodell (alle aktuellen Feldwerte).
Damit können andere Felder abgefragt werden.
Beispiel:
data.invoiceNr === '123'
Das aktuelle Feld wird ausgeblendet, wenn die Rechnungsnummer 123 ist.
mode
Gibt an, in welchem Kontext das Formular angezeigt wird.
Mögliche Werte:
- create – Formular zur Neuerfassung
- edit – Formular zur Bearbeitung
- view – Formular zur Ansicht (read-only)
Beispiel:
mode === 'create'
Das Feld wird nur bei der Neuerfassung angezeigt.
field
Enthält Metadaten des aktuellen Feldes (Key, Typ, Properties).
In der Regel wird diese Variable nur in Sonderfällen benötigt.
Typische Beispiele
Feld ausblenden, wenn ein anderes Feld leer ist
!data.customerId
Feld nur im Bearbeitungsmodus anzeigen
mode === 'edit'
Feld nur anzeigen, wenn ein Wert größer als 100 ist
data.amount > 100
Feld deaktivieren, sobald ein Status gesetzt ist
(als Property-Expression)
data.status === 'final'
Hinweise zur Verwendung
- Expressions müssen gültiges JavaScript sein.
- Der Rückgabewert muss
trueoderfalsesein. - Es sollten nur einfache Bedingungen verwendet werden.
- Komplexe Logik sollte vermieden werden.
- Ungültige Expressions können dazu führen, dass Felder nicht korrekt dargestellt werden.
Nutzen
Mit Expressions lassen sich Formulare flexibel anpassen, ohne zusätzliche Prozesse oder Sonderlogik modellieren zu müssen.