Funktionen

Funktionen führen auf der Basis von Eingabewerten – auch Parameter, Funktionsparameter oder Argumente genannt – bestimmte Berechnungen durch und liefern ein Ergebnis ab. Die zugrunde gelegte Rechenvorschrift ist für den Anwender nicht sichtbar. Die Hauptsache ist ein korrektes Ergebnis.

Die Syntax einer Funktion legt die Anzahl der Parameter und den jeweiligen Parametertyp fest. Funktionsparameter können Konstanten, Feldverweise, Ausdrücke oder auch andere Funktionen sein. Die Argumente sind von Klammern umschlossen und folgen unmittelbar auf den Funktionsnamen. Mehrere Parameter müssen durch Kommata voneinander getrennt sein.

Im einfachsten Fall verfügt eine Funktion über einen einzigen Parameter. So ermittelt beispielsweise

Abs (Zahl)

den Absolutwert einer Zahl. Die Funktion

replace (Text, Suchtext, Ersatztext)

ersetzt in einem Text eine Zeichenkette durch eine andere. Die Anzahl der Parameter ist bei einigen Funktionen variabel. So müssen beim Aufruf von datetime mindestens die Parameter Jahr, Monat und Tag angegeben sein.

datetime (Jahr, Monat, Tag)

Die Angabe von Stunde bis Millisekunde ist optional. Entscheiden ist beim Aufruf nicht der Name eines Parameters, sondern seine Position. Mögliche Aufrufe sind

datetime(Jahr, Monat, Tag, Stunde, Minute)

oder mit der maximalen Parameterzahl

datetime (Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde)

Auch Funktionsaufrufe sind als Parameter zulässig.

trim (upper (Text) )

Entscheidend für die Einordnung einer Funktion in eine der im Folgenden beschriebenen Funktionskategorie ist der Typ des Resultats einer Funktion, nicht der Typ bzw. die Typen ihrer Parameter. So liefert beispielsweise

age(Geburtsdatum)

einen Zahlenwert und ist deshalb in die Kategorie Zahlenfunktionen und nicht in Datumsfunktionen eingeordnet.

Mathematische Funktionen

Diese finden bei Berechnungen mit numerischen Feldwerten Verwendung. Viele benötigen lediglich ein oder zwei Argumente, die selbst wieder Zahlen sind. Das Ergebnis ist ebenfalls wieder wieder ein Zahlenwert.

Name Ergebnis Beispiel
abs(x) Absolutwert von x. abs(-5) = abs(5) = 5
acos(x) Arcus cosinus von x (x in Radiant).  
asin(x) Arcus sinus of x (x in Radiant).  
atan(x) Arcus tangens von x (x in Radiant) .  
atan2(x) Quadrat des Arcus tangens von x (x in Radiant).  
ceil(x) Rundet eine Zahl auf die nächste größere Ganzzahl.  
cos(x) Cosinus von x (x in Radiant) .  
floor(x) Rundet eine Zahl auf die nächste kleinere Ganzzahl.  
exp(x) 10 hoch x (10x) .  
ln(x) Natürlicher Logarithmus von x.  
log(x) – Logarithmus von x zur Basis 10.  
log(x, y) – Logarithmus von x zur Basis y.  
pow(x, y) x hoch y (xy) .  
random() Eine Zufallszahl im Wertebereich 0 (inklusive) bis 1 (exklusive).  
round(x) Rundet eine Zahl zur nächsten Ganzzahl.  
round(x, Stellen) Rundet eine Zahl vorgegebener Anzahl von Stellen. round(1.234, 2) = 1.23
sign(x) Vorzeichen von x. sign(-2.5) => -1 
sign(2.5) => 1
sign(0) => 1
sin(x) Sinus von x (x in Radiant) .  
sqr(x) Quadrat von x (x2) .  
sqrt(x) Wurzel von x.  
tan(x) Tangens von x (x in Radiant) .  

 

Zahlenfunktionen

dienen zum Extrahieren von numerischen Einzelinformationen aus zusammengesetzten Informationen.

Name Ergebnis Beispiel / Anmerkung
age(Geburtsdatum) Aktuelles Alter einer Person.  
day(Datum) Tageszahl des Datumswertes Datum.  
day (Termin) Tageszahl des Startdatums von Termin.  
day(Zeitstempel) Tag von Zeitstempel.  
days(Beginn, Ende) Anzahl der Tage zwischen zwei Datumswerten.  
duration(Termin) Dauer eines Termins in Millisekunden.  
month(Datum) Monatszahl des Datumswertes Datum.  
month(Termin) Monatszahl des Startdatums von Termin.  
month(Zeitstempel) Monat von Zeitstempel.  
monthIndex(Monatsname) Monatszahl von Monatsname. monthIndex (“Januar”) => 1
week(Datum) week(Termin) week(Zeitstempel)" Kalenderwoche von Datum, Termin oder Zeitstempel.  
weekday(Datum) Wochentag des Datumswertes Datum. 0 – Sonntag, 6 – Samstag.
weekday(Termin) Wochentag des Startdatums von Termin. 0 – Sonntag, 6 – Samstag.
weekday(Zeitstempel) Wochentag von Zeitstempel.  
weekdayIndex(Wochentagname) Wochentagszahl von Wochentagname. Sonntag - 0, Samstag - 6
workdays(Beginn, Ende) Anzahl der Arbeitstage zwischen zwei Datumswerten. Als Arbeitstage gelten Montag bis Freitag. Feier- und Ferientage sind nichtberücksichtigt.
year(Datum) Jahr des Datumswertes Datum.  
year(Termin) Jahr des Startdatums von Termin.  
year(Zeitstempel) Jahr von Zeitstempel.  

 

Textfunktionen

Textfunktionen dienen zur Analyse und Manipulation von Zeichenfolgen. Sie ermöglichen das Verbinden, Umstellen, Extrahieren, Einfügen oder Löschen von Texten oder Textbereichen.


Name Ergebnis Beispiel / Anmerkung
contains(Text, Suchtext) Exakte Überprüfung, ob Suchtext in Text enthalten ist.

contains ("Hallo Welt!", "Welt") => true
contains ("Hallo Welt!", "welt") => false

html(Text) Formatierte Repräsentation von Text.  
index(Text, Suchtext) Ermittelt die Startposition von Suchtext innerhalb von Text.(Position beginnt bei 0!)

index ("Hallo Welt!", "Welt ")
=> 6 index ("Hallo Welt!", "welt ")
=> -1 (nicht gefunden)"

length(Text) Anzahl der in Text enthaltenen Zeichen.  
lower(Text) Konvertiert die Buchstaben von Text in Kleinbuchstaben .  
lpad(Text, Anzahl, Zeichen) Hat Text weniger Zeichen als mit Anzahl vorgegeben, wird er am Anfang mit Zeichenaufgefüllt. lpad (Hallo, 10, “*“) => *****Hallo
monthName(Monatszahl) Monatsname von Monatszahl. monthName (1) => Januar
raw(Wert) Interne Repräsentation von Wert als Text.  
replace(Text, Suchtext, Ersatztext) Ersetzt in Text jedes Vorkommen von Suchtext durch Ersatztext. replace("Hallo Welt", "l", "*") => "Ha**o We*t"
replacex(Text, Muster, Flags, Ersatztext) Ersetzt in Text jedes Vorkommen von Muster durch Ersatztext. Muster ist dabei ein Regulärer Ausdruck. Flags ist ebenfalls eine Zeichenkette. Sie spezifiziert die Art der Mustererkennung. Dieser Funktionsaufruf ist kompatibel mit JavaScript’s
string.replace(newRegExp(pattern, flags), replace)
rpad(Text, Anzahl, Zeichen) Hat Text weniger Zeichen als mit Anzahl vorgegeben, wird er am Ende mit Zeichenaufgefüllt. lpad (Hallo, 10, “*“) => Hallo*****
substring(Text, Anfang, Ende) Extrahiert den Teil von Textzwischen den Positionen Anfang und Ende
(Position beginnt bei 0!)
substring("Hallo*Welt!", 0, 5) => "Hallo"
substring("Hallo Welt!", 6, 10) => "Welt"
substr(Text, Anfang, Länge) Extrahiert Anzahl Zeichen von Text beginnend mit Position Anfang.
(Position beginnt bei 0!)
substr("Hallo Welt!", 0, 5) => "Hallo"
substr("Hallo Welt!", 6, 4) => "Welt"
trim(Text) Entfernt Leerzeichen am Anfang und am Ende von Text.  
upper(Text) Konvertiert die Buchstaben von Text in Grossbuchstaben.  
weekdayName(Wochentagszahl) Wochentagname von Wochentagszahl. 0 – Sonntag, 6 – Samstag

yearmonth(Datum)
yearmonth(Termin)
yearmonth(Zeitstempel)

Jahr und Monat als Zeichenkette. 2018/07

yearquater(Datum)
yearquater(Termin)
yearquater(Zeitstempel)

Jahr und Quartal als Zeichenkette. 2018/03
yearweek(Datum)
yearweek(Termin)
yearweek(Zeitstempel)
Jahr und Wochenzahl als Zeichenkette. 2018/32

 

Datumsfunktionen

Datumsfunktionen dienen zur Berechnung und zur Manipulation von Datumsinformationen.

Name Ergebnis Beispiel / Anmerkung
date(year, month, day) Datumswert date (2018, 7, 13) =>13.07.2018
date(Zahl) Konvertiert Zahl in einen Datumswert. Zahl gibt die Millisekunden an, die seit dem 1 januar 1970 vergangen sind (UNIX Epoche 00:00:00 UTC).
date(Zeitstempel) Datumswert von Zeitstempel  
today() Das aktuelle Datum  


Zeitfunktionen

Zeitfunktionen dienen zur Berechnung und zur Manipulation von Zeitinformationen.

Name Ergebnis Beispiel / Anmerkung
time(Millisekunden) Zeitwert von Millisekunden  
time(Stunden, Minuten) Zeitwert von Stunden und Minuten  
time(Stunden, Minuten, Sekunden) Zeitwert von Stunden, Minuten und Sekunden  
time(Stunden, Minuten, Sekunden, Millisekunden) Zeitwert von Stunden, Minuten, Sekundenund Millisekunden.  
timeinterval(Millisekunden) Zeitintervall von Millisekunden  
timeinterval(Zeit) Zeitintervall von Zeit  


Zeitstempelfunktionen

Zeitstempelfunktionen dienen zur Berechnung und zur Manipulation von Datums- und Zeitinformationen.

Name Ergebnis Beispiel / Anmerkung
datetime(Datum) Zeitstempel von Datum. Die Zeit wird zu 00:00 gesetzt.  
datetime(Datum, Zeit) Zeitstempel von Datum und Zeit.  
datetime(Zahl) Zeitstempel entsprechen Millisekunden seit 01.011970.  
datetime(Jahr, Monat, Tag)
datetime(Jahr, Monat, Tag, Stunde) datetime(Jahr, Monat, Tag, Stunde, Minute) datetime(Jahr, Monat, Tag, Stunde, Minute, Sekunde) datetime(Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde)
Zeitstempel zu vorgegebenen Werten von Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde  
endof(Termin) Zeitstempel des Endes von Termin.  
now() Aktueller Zeitstempel.  
start(Termin) Zeitstempel des Beginns von Termin.  

 

Formatierungsfunktionen


Name Ergebnis
format(Datum, Formatierung) Wandelt einen Datumswert gemäß einer Formatierungsvorschrift in einen Text um.
format(Termin, Formatierung) Wandelt einen Termin gemäß einer Formatierungsvorschrift in einen Text um.
format(Zeitstempel, Formatierung) Wandelt einen Zeitstempel gemäß einer Formatierungsvorschrift in einen Text um.

 

Eine Formatierungsvorschrift ist eine Zeichenkette, die sich aus den in der folgenden Tabelle aufgeführten Symbolen zusammensetzen kann. Der 13.07.2018 01:02:03 dient dabei als Beispieldatum.

 

Symbol Beschreibung Beispiel
a am or pm am
dd Kürzel Wochentagsname. Sam
ddd Kürzel Wochentagsname. Sam.
dddd Wochentagsname. Samstag
D one digit day 9
DD two digit day 9
Do day ordinal 9th
h one digit hour (12 hours) 1
hh two digit hour (12 hours) 1
H one digit hour (24 hours) 9
HH two digit hour (24 hours) 13
m one digit minute 2
mm two digit minute 2
M one or two digit month 8
MM two digit month 8
MMM abbreviated month name Aug
MMMM full month name August
s one digit second 3
ss two digit second 3
YY two digit year 15
YYYY four digit year 2015

 

Farbfunktionen

Farbfunktionen erzeugen Farbe aus entsprechenden Angaben.

Name Ergebnis Beispiel / Anmerkung
color(Auswahl) Farbwert eines Auswahlfelds  
color(Rot, Grün, Blau) Farbwert aus den Komponenten Rot, Grün und Blau. Rot, Grün und Blau sind Zahlen zwischen 0 und 255.
color(Rot, Grün, Blau, Alpha) Farbwert aus den Komponenten Rot, Grün, Blau und Alpha. Rot, Grün und Blau sind Zahlen zwischen 0 und 255, Alpha eine Zahl zwischen 0 und 1.
color(Text) Farbwert von Text. Als Text. akzeptiert diese Funktion jede gültige Angabe gemäß der HTML/CSS Farbspezifikationen. color ("red")
color ("#f00")
color ("ff0000")
color ("rgb(255,0,0)

 


Iconfunktionen

Farbfunktionen erzeugen Icons entsprechend angegebenen Name oder Auswahl.

Name Ergebnis Beispiel / Anmerkung
icon(Name) Icon entsprechend Name. icon("warn")
icon(Auswahl) Icon entsprechend Auswahl.  

 


Ortsfunktionen

Farbfunktionen extrahieren Längen- und Breitengrad aus einer Ortsangabe oder erzeugen eine solche.

Name Ergebnis
latitude(Ortsangabe) Breitengrad von Ortsangabe.
location(Titel, Breitengrad, Längengrad) Ortsangabe mit vorgegebenem Titel (Text), Breitengrad (Zahl) und Längengrad (Zahl).
longitude(Ortsangabe) Längengrad von Ortsangabe.

 


Typkonvertierungen

Funktionen zum Konvertieren von Feldinhalten wandeln einen Inhaltstyp in einen anderen um.

Name Ergebnis Beispiel / Anmerkung
number(Wert) Interpretation von Wert als Zahl. number ("10") => 10
number (5) => 5
  Die interne ID einer Auswahl bei Auswahlfeldern. number (text (Auswahl) ) ermittelt den Zahlenwert.
  Vergangene Millisekunden zwischen dem 01.01.1970 00:00 und Wert bei Datums-, Zeit- oder Zeitstempelfeldern. number (now() ) => 1440681777046
  Beginn eines Termins bei Terminfeldern  
text(Wert) Text entsprechend den Formatoptionen von Wert. Im Falle leere Felder ist das Resultat eine leere Zeichenkette (""). text ("Hallo") => "Hallo"
text (2.34) => "2.34"
text (Rechnungssumme) => "1,234.56 €"
text (today () ) => "13/07/2018"