Wie bereits vorgestellt können innerhalb von EVAL-Anweisungen auch Funktionen angegeben werden. Dazu gibt es im R-S einen Satz vorgefertigter Funktionen, die Sie nutzen können.

Diese Funktionen sind syntaktisch wie folgt aufgebaut:

FUNKTIONSNAME(PN1,...,PNn)


Der FUNKTIONSNAME bezeichnet die Funktion. Der FUNKTIONSNAME kann in Klein- und Großbuchstaben oder gemischt in Klein-/Großbuchstaben geschrieben werden, eine Unterscheidung ergibt sich dadurch nicht. Nach dem FUNKTIONSNAMEN folgen dann die Zeichenfolge '()'. Innerhalb des Klammer-Paares können die Übergabeparameter der Funktion angegeben werden. PN1 bis PNn sind die Übergabeparameter der Funktion. Parameter werden immer mit " " eingeschlossen. Die Anzahl der Übergabeparameter ist von der Funktion abhängig. Es müssen immer alle erwarteten Parameter angegeben werden, manche Funktionen haben aber auch optionale Parameter. Übergabeparameter werden durch ',' getrennt und können folgende Werte annehmen:

  • Statische Werte (Statische Werte werden durch doppelte Anführungszeichen eingeschlossen):
        Beispiel: concats("Hello","World")
  • Variablen aus dem Datenstrom oder dem R-S:
        Beispiel: concats("Betrag von ",DS.RECHNUNGS_SUMME)
  • Funktionen
        Beispiel: concats("Zahlen Sie bis zum: ",AddDate(DS.RECHNUNGS_DATUM,"30","NO"))


Die meisten Funktionen erwarten Parameter von einem bestimmten Datentyp und geben einen Wert in einem bestimmten Datentyp zurück. Manche Funktionen existieren für mehrere Datentypen, z.B. Add für INTEGER (AddI), REAL (AddR) und DATE (AddDate). Sie müssen jeweils die Funktion verwenden, die für den vorhandenen Datentyp geeignet ist.


Kurz-Übersichtsliste der Funktionen

Im Folgenden sind alle Funktionen aufgeführt und nach Typ geordnet. Von jeder Funktion werden die verschiedenen Ausführungen aufgelistet, die unterschiedliche Datentypen als Eingangsparameter verarbeiten können. Klicken Sie auf eine Funktion, um genauere Informationen zu erhalten.


Einfache mathematische Funktionen

Funktion INTEGER REAL DATE Beschreibung
Add

AddI(PN1,...,PNn)

AddR(PN1,...,PNn) AddDate(PN1,PN2,PN3) Addiert 2 oder mehrere Werte bzw. addiert Tage zu einem gegebenen Datum.
Subtrac SubtracI(PN1,PN2,...,PNn) SubtracR(PN1,PN2,...,PNn) SubtDate(PN1,PN2,PN3) Subtrahiert 2 oder mehrere Werte bzw. subtrahiert Tage von einem gegebenen Datum.
Multiply MultiplyI(PN1,PN2,...,PNn) MultiplyR(PN1,PN2,PN3,PN4)

Multipliziert PN1 mit allen folgenden Parametern.
Divide DivideI(PN1,PN2) DivideR(PN1,PN2)

Teilt die Zahl von PN1 (Dividend) durch die Zahl von PN2 (Divisor).
Round

RoundR(PN1,PN2,PN3,PN4)

Rundet eine reelle Zahl mit Nachkommastellen


Stringoperatoren

FunktionSTRINGBeschreibung
Empty EmptyS(PN1) Gibt 1 (true) zurück, wenn der String PN1 leer ist, ansonsten 0.
Index IndexS(PN1,PN2,PN3)

Sucht in einem String das Vorkommen eines Matchstrings und gibt die Position des ersten Zeichens des Matchstrings im String zurück.

Length LengthS(PN) Gibt die Länge des Strings zurück.
Sub SubS(PN1,PN2,PN3)

Bildet vom String PN1 einen SubString, der auf Position PN2 beginnt und PN3 Zeichen lang ist.

Token TokenS(PN1,PN2,PN3) Liefert den n-ten Token aus einem String zurück, wobei 1 der erste Token ist.


Stringmanipulation

Funktion

STRINGBeschreibung
Clear ClearS(PN1) Der angegebene String wird von allen Zeichen bereinigt, die in einem File-Namen nicht vorkommen dürfen.
Fill FillS(PN1,PN2,PN3,PN4) Füllt einen String mit einem angegebenen Zeichen auf.
Placeholder PlaceholderS(PN1,...,PNn) Tauscht im String PN1 alle %x% (x = fortlaufende Nummer) durch PNx aus.
RemoveAll RemoveAllS(PN1,PN2) Entfernt jedes Vorkommen der Zeichenkette PN2 im String PN1.
ReplaceAll ReplaceAllS(PN1,PN2,PN3) Tauscht jedes Vorkommen der Zeichenkette PN2 im String PN1 gegen PN3.
ToLower ToLowerS (PN1) Wandelt die Großbuchstaben eines Strings in Kleinbuchstaben.
ToUpper ToUpperS (PN1) Wandelt die Kleinbuchstaben eines Strings in Großbuchstaben.
Trim TrimS(PN1,PN2,PN3) Entfernt nicht benötigte Zeichen vom Anfang und oder vom Ende eines Strings.


Logische Vergleiche

FunktionSTRINGINTEGERREALBeschreibung
IsLess IsLessS(PN1,PN2) IsLessI(PN1,PN2) IsLessR(PN1,PN2) Liefert 1 (true) zurück, wenn PN1 kleiner ist als PN2, ansonsten 0 (false)

IsEqual

IsEqualS(PN1,PN2) IsEqualI(PN1,PN2) IsEqualR(PN1,PN2) Liefert 1 (true) zurück, wenn PN1 gleich PN2 ist, ansonsten 0 (false)
IsGreater IsGreaterS(PN1,PN2) IsGreaterI(PN1,PN2) IsGreaterR(PN1,PN2) Liefert 1 (true) zurück, wenn PN1 größer ist als PN2, ansonsten 0 (false)
IsNull IsNullS(PN1) IsNullI(PN1) IsNullR(PN1) Liefert 1 (true) zurück, wenn PN1 0 ist (bzw. ein leerer String), ansonsten 0 (false)


Logische Operatoren

FunktionBOOLEANBeschreibung
And And(PN1,...,PNn) Verknüpft alle PNs nach den Regeln des Logischen And. Gibt 1 zurück, wenn alle PN = true
If

If(PN1,PN2,PN3)

Liefert den Wert PN2 zurück, wenn PN1 gleich 1 (true) ist, ansonsten PN3.
Nand Nand(PN1,...,PNn) Verknüpft alle PNs nach den Regeln des Logischen Nand. Gibt 1 zurück, wenn min. 1 PN = true
Nor Nor(PN1,...,PNn) Verknüpft alle PNs nach den Regeln des Logischen Nor. Gibt 1 zurück, wenn alle PN = false
Not Not(PN1) Negiert PN1.
Or Or(Pn1,...,PNn) Verknüpft alle PNs nach den Regeln des Logischen Or. Gibt 1 zurück, wenn min 1 PN = false


Sonstige Funktionen

FunktionSTRINGINTEGER / REALBeschreibung

Concat

ConcatS(PN1,PN2,...,PNn)

Hängt die Werte aller Parameter aneinander und gibt das Resultat als String zurück.

Now

NowS(format-string)

Wird zum Einfügen von Datums- und Zeitangaben verwendet.

SepSign

SepSign(PN1,PN2)

Trennt bei einer Zahl mit Vorzeichen die Zahl und das Vorzeichen voneinander.