Seitendesign
Forms Formeln
Eine Formel kann in didesk Forms verwendet werden, um Gruppen unter bestimmten Bedingungen ein-/auszublenden oder dynamische Werte zu berechnen.
Allgemein
Formeln können verwendet werden um verschiedene Beziehungen zwischen Bausteinen herzustellen. Dabei können absolute Werte wie bspw. "Hallo Welt" oder auch Verweise zu Bausteinen verwendet werden.
Verweise auf Felder
Möchte man auf den Wert eines Felds verweisen, muss die Feld-ID in geschweifte Klammern gesetzt werden.
md
{meine_feld_id_1}Dieser Platzhalter wird dann mit dem Wert des Felds ersetzt, sobald der Nutzer diesen Wert verändert.
Möchte man auf Datensätze verweisen, wird die Feld-ID des Datensatzes gefolgt vom Spaltenname in eckigen Klammern angegeben.
md
{datensatz-1[SPALTENNAME_1]}Sonderzeichen
Das Sonderzeichen " ist in Formeln nicht erlaubt. Möchte man es verwenden, muss stattdessen " geschrieben werden.
Dezimalzahlen
Wenn du eine Dezimalzahl in einer Formel verwendest, muss ein Punkt . als Dezimalzeichen verwendet werden - Beispiel: 3.14. Ein Komma als Dezimalzeichen ist nicht zulässig und führt zu einem ungültigen Ergebnis.
Formeln kombinieren
Mehrer Formeln können kombiniert werden, um das gewünschte Ergebnis zu erzielen.
md
IF(AND(GREATERTHAN(6, 5), LESSTHAN(6, 10)), "Wert zwischen 5 und 10", "Wert liegt nicht im Bereich")Mehrfacherfassung
Verwendet man in einem Formelfeld außerhalb der Mehrfacherfassung einen Verweis auf ein Feld innerhalb, werden die Werte aller Mehrfacherfassungen dieses Feldes summiert.
Mathematische Funktionen
Mit mathematischen Formeln können Rechenoperationen ausgeführt werden. Die übergebenen Werte können absolut gesetzt werden oder auf Felder verwiesen werden.
Hinweis
Werden Werte aus mehreren Formel-Modulen zusammengerechnet, werden diese Werte nach der Reihenfolge im Form berechnet. Deshalb ist darauf zu achten, an welcher Position die Module positioniert werden.
MIN(a, b, ...)
Mit dieser Funktion wird der kleinste Wert der übergebenen Werte ausgegeben.
md
MIN(3, 9, 2) => Ergebnis: 2MAX(a, b, ...)
Mit dieser Funktion wird der größte Wert der übergebenen Werte ausgegeben.
md
MAX(3, 9, 2) => Ergebnis: 9ADD(a, b)
Diese Funktion addiert zwei Werte miteinander.
md
ADD(5, 3) => Ergebnis: 8SUM(a, b, ...)
Diese Funktion summiert alle übergebenen Zahlen miteinander.
md
SUM(5, 3, 2) => Ergebnis: 10SUB(a, b, ...)
Diese Funktion subtrahiert alle übergebenen Werte vom ersten Wert.
md
SUB(5, 3) => Ergebnis: 2MUL(a, b)
Diese Funktion multipliziert zwei Zahlen miteinander.
md
MUL(5, 3) => Ergebnis: 15PROD(a, b, ...)
Diese Funktion multipliziert alle übergebenen Zahlen miteinander.
md
PROD(2, 3, 4) => Ergebnis: 24DIV(a, b)
Diese Funktion dividiert den ersten Wert durch den zweiten.
md
DIV(10, 2) => Ergebnis: 5AVG(a, b, ...)
Diese Funktion gibt den Mittelwert aller übergebenen Werte aus.
md
AVG(10, 6, 8, 3) => Ergebnis: 6.75ROUND(a)
Diese Funktion rundet die übergebene Zahl mathematisch.
md
ROUND(6.8) => Ergebnis: 7ROUNDUP(a)
Diese Funktion rundet die übergebene Zahl auf.
md
ROUNDUP(7.1) => Ergebnis: 8ROUNDDOWN(a)
Diese Funktion rundet die übergebene Zahl ab.
md
ROUNDDOWN(9.9) => Ergebnis: 9POWER(a, b)
Diese Funktion wird für Potenzen verwendet. Dabei ist der erste Wert die Basis und der zweite Wert der Exponent.
md
POWER(3, 2) => Ergebnis: 9LOG(a, [b])
Gibt den Logarithmus der übergebenen Zahl aus. Der zweite Parameter ist die Basis, wenn dieser fehlt, wird 10 als Basis genommen.
md
LOG(10) => Ergebnis: 1Vergleichsfunktionen
GREATERTHAN(a, b)
Diese Funktion prüft ob die erste Zahl größer ist als die zweite.
md
GREATERTHAN(3, 2) => Ergebnis: TRUE
GREATERTHAN(5, 6) => Ergebnis: FALSEGREATERTHANOREQUAL(a, b)
Diese Funktion prüft ob die erste Zahl größer ist als die zweite oder gleich.
md
GREATERTHANOREQUAL(3, 3) => Ergebnis: TRUE
GREATERTHANOREQUAL(5, 6) => Ergebnis: FALSELESSTHAN(a, b)
Diese Funktion prüft ob die erste Zahl kleiner ist als die zweite.
md
LESSTHAN(2, 3) => Ergebnis: TRUE
LESSTHAN(4, 5) => Ergebnis: FALSELESSTHANOREQUAL(a, b)
Diese Funktion prüft ob die erste Zahl kleiner ist als die zweite oder gleich.
md
LESSTHANOREQUAL(4, 4) => Ergebnis: TRUE
LESSTHANOREQUAL(6, 5) => Ergebnis: FALSEEQUALS(a, b)
Diese Funktion prüft ob die beiden übergebenen Werte gleich sind. Achtung bei Texten wird auch die Groß- und Kleinschreibung verglichen.
md
EQUALS("HALLO", "HALLO") => Ergebnis: TRUE
EQUALS("HALLO", "Hallo") => Ergebnis: FALSE
EQUALS(3, 3) => Ergebnis: TRUENOTEQUALS(a, b)
Diese Funktion prüft ob die beiden übergebenen Werte unterschiedlich sind. Achtung bei Texten wird auch die Groß- und Kleinschreibung verglichen.
md
NOTEQUALS("HALLO", "HALLO") => Ergebnis: FALSE
NOTEQUALS("HALLO", "Hallo") => Ergebnis: TRUE
NOTEQUALS(3, 3) => Ergebnis: FALSEEMPTY(a)
Diese Funktion prüft ob der übergebene Wert leer ist. Dies kann bspw. auch für Checkboxen verwendet werden um zu prüfen ob diese angehakt sind oder nicht.
md
EMPTY("") => Ergebnis: TRUE
EMPTY("HALLO") => Ergebnis: FALSENOTEMPTY(a)
Diese Funktion prüft ob der übergebene Wert nicht leer ist. Dies kann bspw. auch für Checkboxen verwendet werden um zu prüfen ob diese angehakt sind oder nicht.
md
NOTEMPTY("") => Ergebnis: FALSE
NOTEMPTY("HALLO") => Ergebnis: TRUESORTP(a, b, ...)
Sortiert alle übergebenen Werte in aufsteigender Reihenfolge und gibt die Position des ersten Werts aus. Wenn es keine Zahlenwerte sind, wird alphabetisch sortiert.
md
SORTP(12, 10, 100, 65) => Ergebnis: 2
SORTP(100, 12, 10, 65) => Ergebnis: 4SORTPDESC(a, b, ...)
Wie SORTP aber sortiert die Werte absteigend.
md
SORTPDESC(12, 10, 100, 65) => Ergebnis: 3
SORTPDESC(100, 12, 10, 65) => Ergebnis: 1Datumsfunktionen
Das Format für Datumsfunktionen ist immer: YYYY-MM-DD HH:mm:ss
DATEEQUALS(a, b)
Diese Funktion prüft ob die beiden Daten gleich sind.
md
DATEEQUALS(2024-07-11, 2024-07-11) => Ergebnis: TRUE
DATEEQUALS(2023-07-11, 2024-07-11) => Ergebnis: FALSEDATENOTEQUALS(a, b)
Diese Funktion prüft ob die beiden übergebenen Daten unterschiedlich sind.
md
DATENOTEQUALS(2024-07-11, 2024-07-11) => Ergebnis: FALSE
DATENOTEQUALS(2023-07-11, 2024-07-11) => Ergebnis: TRUEDATEAFTER(a, b)
Diese Funktion prüft ob das erste Datum älter ist als das zweite.
md
DATEAFTER(2024-07-11, 2024-06-10) => Ergebnis: TRUE
DATEAFTER(2023-07-11, 2024-07-11) => Ergebnis: FALSEDATEBEFORE(a, b)
Diese Funktion prüft ob das erste Datum jünger ist als das zweite.
md
DATEBEFORE(2024-07-11, 2024-06-10) => Ergebnis: FALSE
DATEBEFORE(2023-07-11, 2024-07-11) => Ergebnis: TRUEADDSECONDS(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Sekunden hinzu.
md
ADDSECONDS(2024-07-11 12:00:00, 30) => Ergebnis: 2024-07-11 12:00:30ADDMINUTES(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Minuten hinzu.
md
ADDMINUTES(2024-07-11 12:00:00, 30) => Ergebnis: 2024-07-11 12:30:00ADDHOURS(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Minuten hinzu.
md
ADDHOURS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-07-11 15:00:00ADDDAYS(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Tage hinzu.
md
ADDDAYS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-07-14 12:00:00ADDMONTHS(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Monate hinzu.
md
ADDMONTHS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-10-11 12:00:00ADDYEARS(a, b)
Diese Funktion fügt dem in a übergebenen Datum b Jahre hinzu.
md
ADDYEARS(2024-07-11 12:00:00, 3) => Ergebnis: 2027-07-11 12:00:00SUBTRACTSECONDS(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Sekunden hinzu.
md
SUBTRACTSECONDS(2024-07-11 12:00:00, 30) => Ergebnis: 2024-07-11 11:59:30SUBTRACTMINUTES(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Minuten ab.
md
SUBTRACTMINUTES(2024-07-11 12:00:00, 30) => Ergebnis: 2024-07-11 11:30:00SUBTRACTHOURS(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Minuten ab.
md
SUBTRACTHOURS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-07-11 09:00:00SUBTRACTDAYS(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Tage ab.
md
SUBTRACTDAYS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-07-08 12:00:00SUBTRACTMONTHS(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Monate ab.
md
SUBTRACTMONTHS(2024-07-11 12:00:00, 3) => Ergebnis: 2024-04-11 12:00:00SUBTRACTYEARS(a, b)
Diese Funktion zieht von dem in a übergebenen Datum b Jahre ab.
md
SUBTRACTYEARS(2024-07-11 12:00:00, 3) => Ergebnis: 2021-07-11 12:00:00NOW()
Setzt den aktuellen Zeitpunkt als Wert (Datum und Uhrzeit)
TODAY()
Setzt das aktuelle Datum als Wert (nur Datum ohne Uhrzeit)
Textfunktionen
Diese Funktionen werden für Texteingabefelder oder Werte in Datensätzen verwendet.
CONTAINS(a, b)
Diese Funktion prüft ob der erste Wert den zweiten enthält. Groß- und Kleinschreibung wird hier unterschieden!
md
CONTAINS("Hallo Welt", "Welt") => Ergebnis: TRUE
CONTAINS("Hallo Welt", "Test") => Ergebnis: FALSESTARTSWITH(a, b)
Diese Funktion prüft ob der erste Wert mit dem zweiten beginnt. Groß- und Kleinschreibung wird hier unterschieden!
md
STARTSWITH("Hallo Welt", "Hal") => Ergebnis: TRUE
STARTSWITH("Hallo Welt", "Welt") => Ergebnis: FALSEENDSWITH(a, b)
Diese Funktion prüft ob der erste Wert mit dem zweiten endet. Groß- und Kleinschreibung wird hier unterschieden!
md
ENDSWITH("Hallo Welt", "elt") => Ergebnis: TRUE
ENDSWITH("Hallo Welt", "Hallo") => Ergebnis: FALSEVerknüpfungen
Mit Verknüpfungen können mehrere Texte vereinigt oder Werte überprüft werden. Wird zum Beispiel in IF Formeln verwendet.
CONCAT(a, b, ...)
Vereinigt mehrere Werte zu einem Text.
md
CONCAT(12, ":", "00 Minuten") => Ergebnis: 12:00 MinutenAND(a, b, ...)
Wenn alle übergebenen Werte TRUE ausgeben, gibt diese Funktion auch TRUE aus.
md
AND(TRUE, TRUE) => Ergebnis: TRUE
AND(TRUE, FALSE) => Ergebnis: FALSEOR(a, b, ...)
Wenn einer der übergebenen Werte TRUE ergibt, gibt diese Funktion auch TRUE aus.
md
OR(FALSE, TRUE) => Ergebnis: TRUE
OR(FALSE, FALSE) => Ergebnis: FALSEBedingungen
IF(a, THEN, ELSE)
Wenn der erste Wert dieser Funktion TRUE ist, wird der zweite Wert THEN ausgegeben, ansonsten der dritte ELSE.
md
IF(CONTAINS("Hallo Welt", "Welt"), "Welt kommt im Text vor", "Welt kommt nicht im Text vor") => Ergebnis: Welt kommt im Text vor
IF(GREATERTHAN(5, 4), "Grösser als 4", "Kleiner oder gleich 4") => Ergebnis: Grösser als 4
IF(GREATERTHAN(3, 4), "Grösser als 4", "Kleiner oder gleich 4") => Ergebnis: Kleiner oder gleich 4