CIB merge technischer Leitfaden

3. CIB merge als „Dokumentinterpreter“

3.5. Unterstützte Feldbefehle

Allgemein
Übersicht der grundlegenden Feldbefehle
Unterstützte Text-Funktionen
Unterstützte Datums-Funktionen
Regeln für die Verarbeitung von Text- und Datumsfunktionen

Allgemein

MS-Office stellt ca. 85 verschiedene Feldbefehle zur Verfügung, die man zur Programmierung von dynamischen Dokumenten benutzen kann. Alle Befehle die nicht unmittelbar mit der Formatierung eines Textes zu tun haben, werden von der CIB merge Komponente bei einem Mischlauf ausgewertet und unterstützt.

Die Interpretation der übrigen Feldbefehle, die für die Layout-/Druckdarstellung wichtig sind (z.B. (Gesamt)Seitennummerierungen, Druckdatum, Signaturfelder u.a.), bleibt der CIB format/output-Komponente vorbehalten. CIB merge reicht diese Feldbefehle ungefiltert in das Ergebnisdokument durch.

Ab CIB merge Version 3.13.7:
Das gleiche Verhalten gilt bei einem Rechenausdruck, der Referenzen auf Tabellenelemente enthält: Der Ausdruck wird ungefiltert an das Ergebnisdokument durchgereicht.
Konkret geht es um diese Referenzen: LEFT/LINKS, RIGHT/RECHTS, ABOVE/ÜBER, BELOW /UNTER.


Übersicht der grundlegenden Feldbefehle

Folgende Feldbefehle eines Dokumentes werden bei einem Mischvorgang direkt durch die CIB merge Komponente interpretiert und dynamisch in die Ausgabedatei umgesetzt (die Feldbefehle sind hier lediglich alphabetisch aufgestellt und nicht mit voller Syntax beschrieben):

Feldbefehl ( engl. / dt)

Bedeutung

COMPARE / VERGLEICH

Vergleicht zwei Werte und gibt den numerischen Wert 1 zurück, wenn der Vergleich wahr ist, und 0 (Null), wenn der Vergleich falsch ist.

DATA / STEUERDATEI

 

DATE

Fügt das aktuelle Datum ein.

IF / WENN

Vergleicht Argumente unter Berücksichtigung bestimmter Bedingungen. Kann optional zu einem Schleifenbefehl erweitert werden.

INCLUDEPICTURE / EINFÜGENGRAFIK

Fügt eine Grafik aus einer Datei ein. Wird von CIB merge nur in Verbindung mit dem Aufrufparameter --EMBED ausgeführt. Ansonsten erfolgt die Interpretation erst durch CIB format/output

INCLUDEPICTURE "?Grafikdatei"

(ab CIB merge Version 3.9.174)

Liefert 0 zurück, wenn die Datei nicht vorhanden ist, ansonsten 1.

INCLUDETEXT / EINFÜGENTEXT

Fügt einen Text aus einer Datei ein.

„Bitte beachten Sie in diesem Zusammenhang den möglichen Feldschalter NEWLISTID“

INCLUDETEXT "?Textdatei"

Liefert 0 zurück, wenn die Datei nicht vorhanden ist, ansonsten 1.

INFO / INFO

Fügt Informationen aus dem Dialogfeld „Eigenschaften“ ein.

MERGEFIELD / SERIENDRUCKFELD

Legt einen Platzhalter mit Namen fest, der später durch einen angelieferten variablen Inhalt ersetzt wird.

MERGEREC <Alias-Name>

Fügt die Nummer ein, die der aktuelle Datensatz in der Eingabedatei (bzw. Tabelle) <Alias-Name> hat.

MERGEREC ?<Alias-Name>

Liefert 0 zurück, wenn keine weiteren Datensätze in der Datei (bzw. Tabelle) <Alias-Name> vorhanden sind.

MERGEREC #<Alias-Name>

(ab CIB merge Version 3.12.1)

Liefert die exakte Anzahl Datensätze der Datei (bzw. Tabelle) <Alias-Name> zurück.

Achtung: Diese Funktion kann bei CSV-Datenquellen Resourcen-intensiv sein!

MERGEREC ##<Alias-Name>

(ab CIB merge Version 3.12.1)

Liefert Status-Information über die Anzahl Datensätze der Datei (bzw. Tabelle) <Alias-Name>zurück.

Werte:
0          keine Datensätze

1          ein Datensatz

2          zwei oder mehr Datensätze

Achtung: Diese Funktion hat bei CSV Datenquellen keine negativen Auswirkungen auf die Resourcen.

NEXT / NÄCHSTER

Geht zum nächsten Datensatz oder Knoten in der Datenversorgung.

NEXTIF / NWENN

Geht zum nächsten Datensatz oder Knoten in der Datenversorgung, wenn eine bestimmte Bedingung erfüllt ist.

QUOTE / ANGEBEN

Fügt einen Text in das Dokument ein.

REF / REF

Legt einen Platzhalter mit Namen fest, der später durch einen angelieferten variablen Inhalt ersetzt wird.

REF "?variable"

(ab CIB merge Version 3.9.191)

Liefert 0 zurück, wenn die Variable nicht vorhanden ist, ansonsten 1.

TO DO: REF DAT

 

TO DO: NEXT DEF

 

SET / BESTIMMEN

Weist einer Textmarke einen neuen Text zu.

SKIPIF / ÜBERSPRINGEN

Überspringt während eines Serienbriefes einen Datensatz oder Knoten in der Datenversorgung entsprechend einer Bedingung. Verwendung mit Aliasnamen ist nicht möglich!

TIME / ZEIT

Fügt die aktuelle Uhrzeit ein.

= Ausdruck / Expression

Berechnet das Ergebnis eines Ausdruckes (=Formeln). CIB merge unterstützt sehr umfangreiche Funktionen, auch in komplizierten Formeln.
Ab CIB merge Version 3.11.0 werden die im folgenden Kapitel beschriebenen Textfunktionen unterstützt.

 

Einige dieser Feldbefehle ermöglichen mit Zusatzschaltern eine Erweiterung ihrer Funktionalität.

Beispielsweise können mit Hilfe von Schleifenanweisungen beliebig lange dynamische Tabellen erzeugt werden. Auch das dynamische Einfügen von Textbausteinen ist möglich.


Unterstützte Text-Funktionen

CIB merge unterstützt ab Version 3.12.0 die im Folgenden beschriebenen Text-Funktionen.

Hinweise:

  • Die Möglichkeit für eine verkettete (mehrfache) Verarbeitung von Textfunktionen ist hier beschrieben.
  • Als Parameter einer Textfunktion können feststehende Texte (Strings) verwendet werden. Der Inhalt eines Strings ist in Anführungszeichen anzugeben. Dabei darf der String selbst keine Anführungszeichen enthalten.

Text Funktion (Syntax)

Beschreibung

TRIM(text)
Rückgabe: Text

Löscht Leerzeichen in einem Text, die nicht einzeln zwischen Wörtern stehen und damit als Trennzeichen dienen.

TRIM können Sie für Texte verwenden, die Sie aus anderen Anwendungsprogrammen übernommen haben und die eventuell unerwünschte Leerzeichen enthalten.

Parameter:

text (Typ Text, erforderlich)   Der Text, aus dem Sie die Leerzeichen entfernen möchten.

Beispiel: =Trim( " abc  " ) ergibt abc

LEN(text)
Rückgabe: Zahl

Gibt die Anzahl der Zeichen einer Zeichenfolge zurück.

Parameter:

text (Typ Text, erforderlich)   Der Text, dessen Länge Sie ermitteln möchten. Leerzeichen zählen als Zeichen.

Beispiel: = LEN( "ab abc" ) ergibt 6

FIND(find_text;within_text; start_num)
Rückgabe: Zahl

Mit FIND wird eine Zeichenfolge innerhalb einer anderen gesucht und die Position der gesuchten Zeichenfolge ab dem ersten Zeichen der anderen Zeichenfolge zurückgegeben.

Parameter:

find_text (Typ Text, erforderlich)     Gibt den Text an, den Sie suchen.

within_text (Typ Text, erforderlich) Ist der Text, in dem Sie nach find_text suchen möchten.

start_num (Typ Zahl, erforderlich)  Gibt an, bei welchem Zeichen die Suche begonnen werden soll. Das erste zu find_text gehörende Zeichen hat die Nummer 1.

Beispiel: =FIND( "b"; "abc", 1 ) ergibt 2

Hinweise:

  • Die Funktion FIND berücksichtigt die Groß- und Kleinschreibung und läßt keine Platzhalterzeichen zu. Falls bei der Suche die Schreibweise nicht beachtet werden muss oder Platzhalterzeichen eingesetzt werden sollen, verwenden Sie bitte SEARCH.
  • Ist find_text eine leere Zeichenfolge (""), wird durch FIND eine Übereinstimmung mit dem ersten Zeichen der zu durchsuchenden Zeichenfolge ermittelt (also mit dem Zeichen, das die Position start_num oder 1 einnimmt).
  • find_text darf keine Platzhalterzeichen(? bzw.*) enthalten.
  • Wird find_text in within_text nicht gefunden, gibt FIND den Fehlerwert -1 zurück.
  • Ist Erstes_Zeichen kleiner gleich 0, gibt FIND den Fehlerwert
    -1 zurück.
  • Ist start_num größer als die Länge von Text, gibt FIND den Fehlerwert -1 zurück.
  • Verwenden Sie start_num, damit ein Suchvorgang nicht mit dem ersten Zeichen der zu durchsuchenden Zeichenfolge beginnt, sondern eine bestimmte Anzahl von Zeichen überspringt. FIND gibt immer die Anzahl der Zeichen ab dem Anfang von within_text zurück; dabei werden die übersprungenen Zeichen gezählt, wenn start_num größer als 1 ist.

SEARCH(find_text; within_text; start_num)
Rückgabewert: Zahl

SEARCH sucht eine Zeichenfolge innerhalb einer anderen Zeichenfolge und gibt als Ergebnis die Nummer der Anfangsposition der ersten Zeichenfolge zurück, gerechnet ab dem ersten Zeichen der zweiten Zeichenfolge.

Parameter:

find_text (Typ Text, erforderlich)     Ist der Text, nach dem Sie suchen möchten. Eine als find_text angegebene Zeichenfolge kann die Platzhalterzeichen Fragezeichen (?) und Sternchen (*) enthalten. Ein Fragezeichen ersetzt ein Zeichen, ein Sternchen ersetzt eine beliebige Zeichenfolge. Suchen Sie nach einem Fragezeichen oder Sternchen, müssen Sie vor dem zu suchenden Zeichen zwei Backslashes (\\) eingeben.

within_text (Typ Text, erforderlich) Ist der Text, in dem Sie nach find_text suchen möchten.

start_num (Typ Zahl, erforderlich)  Gibt an, bei welchem Zeichen die Suche begonnen werden soll. Das erste zu find_text gehörende Zeichen hat die Nummer 1.

Beispiel:           =SEARCH( "b"; "ABC", 1 ) ergibt 2
                        =SEARCH( "\\*"; "ABCafkdl*"; 1 ) ergibt 9

Hinweise:

  • Verwenden Sie SEARCH, wenn Sie ermitteln möchten, welche Position ein Zeichen oder eine Zeichenfolge innerhalb einer anderen Zeichenfolge einnimmt, um letztere mit Hilfe der Funktion MID oder REPLACE zu ändern.
  • Bei SEARCH wird die Groß- und Kleinschreibung nicht beachtet. Wenn die Groß- und Kleinschreibung beachtet werden soll, verwenden Sie FIND.
  • Wird die von find_text angegebene Zeichenfolge nicht gefunden, gibt die Funktion den Fehlerwert -1 zurück.
  • Ist start_num mit einem Wert belegt, der kleiner als 1 oder größer als die Länge von within_text ist, gibt die Funktion den Fehlerwert -1 zurück.
  • Verwenden Sie start_num, damit ein Suchvorgang nicht mit dem ersten Zeichen der zu durchsuchenden Zeichenfolge beginnt, sondern eine bestimmte Anzahl von Zeichen überspringt. SEARCH gibt immer die Anzahl der Zeichen ab dem Anfang von within_text zurück; dabei werden die übersprungenen Zeichen gezählt, wenn start_num größer als 1 ist.

MID(text; start_num; num_chars)
Rückgabewert: Text

Die Mid-Funktion gibt eine bestimmte Anzahl zusammenhängender Zeichen aus einem vorgegebenen String zurück.

Parameter:

text (Typ Text, erforderlich)            Text, aus dem Zeichen zurückgegeben werden.

start_num(Typ Zahl, erforderlich)   Zeichenposition in text, an der der zu entnehmende Teil beginnt.

num_chars(Typ Zahl, erforderlich)  Gibt die Anzahl der Zeichen ab, die MID aus text zurückgeben soll

Beispiel: =MID( "abc"; 2; 1 ) ergibt b

Hinweise:

  • Ist start_num größer als die Gesamtlänge von text, gibt MID die Zeichenfolge "" (leere Zeichenfolge) zurück.
  • Ist start_num kleiner als die Gesamtlänge von text, doch überschreitet start_num plus num_chars die Gesamtlänge von text, gibt MID alle Zeichen bis zum Ende von text zurück.
  • Ist start_num kleiner als 1, gibt MID die Zeichenfolge "" (leere Zeichenfolge) zurück.

SUBSTITUTE(text; old_text; new_text; instance_num)
Rückgabewert: Text

Ersetzt alten Text durch neuen Text in einer Zeichenfolge. SUBSTITUTE können Sie immer dann verwenden, wenn Sie innerhalb eines Textes eine bestimmte Zeichenfolge austauschen möchten. REPLACE sollten Sie immer dann verwenden, wenn Sie innerhalb eines Textes eine an einer bestimmten Position beginnende Zeichenfolge ersetzen möchten.

Parameter:

text (Typ Text, erforderlich)            Ist der Text in dem Zeichen ausgetauscht werden sollen.

old_text (Typ Text, erforderlich)      Ist der Text, den Sie ersetzen möchten.

new_text (Typ Text, erforderlich)    Ist der Text, durch den Sie old_text ersetzen möchten.

instance_num (Typ Zahl, optional)  Gibt an, an wie oft old_text durch new_text ersetzt werden soll. Wenn Sie instance_num angeben, wird nur dieses Vorkommen von old_text ersetzt; andernfalls wird old_text an jeder Stelle, an der er in text vorkommt, durch new_text ersetzt.

Beispiel: =SUBSTITUTE( "abcbcbcd"; "bc"; "d"; 2 ) ergibt addbcd

REPLACE(old_text; start_num; num_chars; new_text)
Rückgabewert: Text

REPLACE ersetzt in dem Text ab der angegebenen Position eine Zeichenfolge der vorgegebenen Länge durch eine andere Zeichenfolge.

Parameter:

old_text (Typ Text, erforderlich)      Ist der Text, in dem Sie eine Anzahl von Zeichen ersetzen möchten.

start_num (Typ Zahl, erforderlich)  Die Position des Zeichens in old_text, an der mit dem Ersetzen durch new_text begonnen werden soll.

num_chars (Typ Zahl, erforderlich) Die Anzahl der Zeichen in old_text, die REPLACE durch new_text ersetzen soll.

new_text (Typ Text, erforderlich)    Der Text, durch den Sie Zeichen in old_text ersetzen wollen.

Beispiel: =REPLACE( "abcd"; 2; 2; "d" ) ergibt add

LOWER(text)
Rückgabewert: Text

Wandelt einen Text in Kleinbuchstaben um.

Parameter:

text (Typ Text, erforderlich)            Der Text, den Sie in Kleinbuchstaben umwandeln möchten.

Beispiel: =LOWER( "ABC9" ) ergibt abc9

Hinweise:

LOWER nimmt an Zeichen des Texts, die keine Buchstaben sind, keine Änderungen vor.

UPPER(text)
Rückgabewert: Text

Wandelt einen Text in Großbuchstaben um.

Parameter:

text (Typ Text, erforderlich)            Der Text, den Sie in Großbuchstaben umwandeln möchten.

Beispiel: = UPPER( "abc9" ) ergibt ABC9

Hinweise:

UPPER nimmt an Zeichen des Texts, die keine Buchstaben sind, keine Änderungen vor.

LEFT(text; num_chars)
Rückgabewert: Text

Schneidet von links beginnend die vorgegebene Anzahl von Zeichen aus.

Parameter:

text (Typ Text, erforderlich)            Die Textzeichenfolge mit den auszuschneidenden Zeichen.

num_chars (Typ Zahl, erforderlich) Anzahl der Zeichen, die zurückzugeben sind.

Beispiel: =LEFT( "abc"; 2 ) ergibt ab

Hinweise:

  • Ist num_chars größer als die Gesamtlänge von text, gibt LEFT die gesamte Zeichenfolge zurück.
  • Ist num_chars kleiner als 1, gibt LEFT den Fehlerwert -1 zurück.

RIGHT(text; num_chars)
Rückgabewert: Text

Schneidet von rechts beginnend die vorgegebene Anzahl von Zeichen aus.

Parameter:

text (Typ Text, erforderlich)               Die Textzeichenfolge mit den auszuschneidenden Zeichen.

num_chars (Typ Zahl, erforderlich)    Anzahl der Zeichen, die zurückzugeben sind.

Beispiel: =RIGHT( "abc"; 2 ) ergibt bc

Hinweise:

  • Ist num_chars größer als die Gesamtlänge von text, gibt RIGHT die gesamte Zeichenfolge zurück.
  • Ist num_chars kleiner als 1, gibt RIGHT den Fehlerwert -1 zurück.

REPT(text; number_times)
Rückgabewert: Text

Wiederholt einen Text so oft wie angegeben. Mit REPT können Sie einen Text mit einer bestimmten Häufigkeit wiederholen.

Parameter:

text (Typ Text, erforderlich)            Den zu wiederholenden Text.

number_times (Typ Zahl, erforderlich) Eine positive Zahl, die die Anzahl der Wiederholungen angibt.

Beispiel: =REPT( "abc"; 2 ) ergibt abcabc

Hinweise:

  • Falls number_times = 0 ist, wird „“ (leere Zeichenfolge) zurückgegeben.

TOKENIZE(text; delimiters; tokenIdx)
Rückgabewert: Text

Teilt einen Text anhand der angegebenen Trennzeichen in einzelne Textteile und gibt den mit tokenIdx angegebenen Teil zurück (z.B. bei tokenIdx = 3, den dritten Teil).

Parameter:

text (Typ Text, erforderlich)            Den aufzuteilenden Text.

delimiters (Typ Text, erforderlich)   Liste der Trennzeichen. Wird ein Komma als Trennzeichen verwendet, muss es mit einem Backslash (\) maskiert werden.

tokenIdx (Typ Zahl, erforderlich)    Nummer des Textteils der zurückgegeben werden soll. Bei einem negativen Index wird vom Ende des Texts mit der Zählung begonnen.

Beispiele:         =TOKENIZE( "a b c-d"; " -"; 4 ) ergibt d
                       
=TOKENIZE( "a b-c d"; " -"; -4 ) ergibt a
                       
=TOKENIZE( "a b,c d"; " \,"; 3 ) ergibt c

Hinweise:

  • Bei Angabe eines zu großen oder zu kleinen tokenIdx wird der Leerstring „“ zurückgeliefert.

BEFORE(text; before_text)
Rückgabewert: Text

Gibt die Zeichen von text zurück, die dem ersten Vorkommen von before_text in text vorausgehen, oder gibt eine leere Zeichenfolge zurück, wenn before_text in text nicht enthalten ist.

Parameter:

text (Typ Text, erforderlich)            Ist der Text dem die Zeichenfolge entnommen werden soll.

before_text (Typ Text, erforderlich) Der zu suchende Text, der das Ende der zu entnehmenden Zeichenfolge kennzeichnet.

Beispiel: =BEFORE( "abcdefg"; "cd" ) liefert ab

Hinweise:

  • Ist before_text nicht in text enthalten, wird „“, die leere Zeichenfolge zurückgegeben.

AFTER(text; after_text)
Rückgabewert: Text

Gibt die Zeichen von text zurück, die dem ersten Vorkommen von after_text in text folgen, oder gibt eine leere Zeichenfolge zurück, wenn after_text in text nicht enthalten ist.

Parameter:

text (Typ Text, erforderlich)            Ist der Text dem die Zeichenfolge entnommen werden soll.

after_text (Typ Text, erforderlich)    Der zu suchende Text, der den Beginn der zu entnehmenden Zeichenfolge kennzeichnet.

Beispiel: =AFTER( "abcdefg"; "cd" ) liefert efg

Hinweise:

  • Ist after_text nicht in text enthalten, wird „“, die leere Zeichenfolge zurückgegeben.

FORMAT(text; format)
Rückgabewert:Text

Gibt text im Format format zurück. Diese Funktion funktioniert ähnlich wie Formatierung von Zahlen.

Parameter:

text (Typ Text, erforderlich)            Ist der zu formatierende Text.

format (Typ Text, erforderlich)        Gibt das Format an (Details s. unten)

Gültige Zeichen zur Angabe des Formats:

x     Platzhalterzeichen für ein Zeichen des angegebenen Texts.

Hinzufügen von Abständen und Trennzeichen:

Leerzeichen  wird genau in der eingegebenen Form angezeigt

/     wird genau in der eingegebenen Form angezeigt

(     wird genau in der eingegebenen Form angezeigt

)     wird genau in der eingegebenen Form angezeigt

.     wird genau in der eingegebenen Form angezeigt

-     wird genau in der eingegebenen Form angezeigt

Beispiele: =Format(„abcdefghi“;“xxx xxx xxx“) liefert „abc def ghi
Format(„abcdef“;“xxx-xxx-xxx“) liefert „abc-def“
Format(„abcdefghi“;“xxx-xxx“) liefert „abc-defghi“

Hinweise:

  • Ist format länger als text, so wird der text von links beginnend in dem angegeben Format dargestellt, nach dem letzten Zeichen von text endet der formatierte Text.
  • Ist format kürzer als text, so wird der text von links beginnend in dem angegeben Format dargestellt, die restliche Zeichenfolge bleibt unverändert.
  • Leerzeichen zu Beginn und am Ende von format werden ignoriert.



Unterstützte Datums-Funktionen

CIB merge unterstützt ab Version 3.12.12 die im Folgenden beschriebenen Datums-Funktionen.

Die Datumsfunktionen werden analog zu Rechen- oder Textfunktionen in der Form

{ =DATUMSFUNKTION }
in das Dokument eingegeben.

Vorraussetzung für diese Funktionen ist, dass das als Eingabe verwendete Datum (bzw. eine Variable „Datum“) einen gültigen Datumswert besitzt und in einem gültigen Datumsformat formatiert ist.

Datums Funktion (Syntax)

Beschreibung

ADDDAYS(Datum,AnzTage)

 \@ Format

Rückgabe: Datum

Tage addieren:
Zum Wert der Variablen Datum wird eine bestimmte Anzahl an Tagen addiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzTage          Ganzzahl

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
ADDDAYS(„15.02.2015“,14)\@ "tt.MM.jjjj"   ergibt  01.03.2015

ADDDAYS_VD(VDatum,AnzTage)

 \@ Format

Rückgabe: Datum

Tage addieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe ADDDAYS.

Beispiel:
ADDDAYS_VD(„15.02.2015“,15)\@ "tt.MM.jjjj"
ergibt  30.02.2015

ADDMONTHS(Datum,AnzMonate)

 \@ Format

Rückgabe: Datum

Monate addieren:
Zum Wert der Variablen Datum wird eine bestimme Anzahl an Monaten addiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzMonate      Ganzzahl

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
ADDMONTHS(„31.01.2015“, 1)\@ "tt.MM.jjjj"  ergibt  03.03.2015

ADDMONTHS_VD(VDatum,AnzMonate)

 \@ Format

Rückgabe: Datum

Monate addieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe ADDMONTHS.

Beispiel:
ADDMONTHS_VD(„30.01.2015“, 1)\@ "tt.MM.jjjj"   ergibt   30.02.2015

ADDYEARS(Datum,AnzJahre)

 \@ Format

Rückgabe: Datum

Jahre addieren:
Zum Wert der Variablen Datum wird eine bestimme Anzahl an Jahren addiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzJahre         Ganzzahl

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
ADDYEARS(„31.01.2015“,10)\@ "tt.MM.jjjj"  ergibt  31.01.2025

ADDYEARS_VD(VDatum,AnzJahre)

 \@ Format

Rückgabe: Datum

Jahre addieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe ADDYEARS.

Beispiel:
ADDMONTHS_VD(„29.02.2016“, 3)\@ "tt.MM.jjjj"   ergibt ..29.02.2019

ADDWORKINGDAYS(Datum,AnzTage,
Feiertage,Arbeitstage)

 \@ Format

Rückgabe: Datum

Werktage addieren:
Zum Wert der Variablen varDatum wird eine bestimme Anzahl an Werktagen addiert und in einem gewünschten Format ausgegeben. 

Parameter:

Datum        Siehe obige Vorraussetzung

AnzTage     Anzahl Werktage, Ganzzahl

Feiertage    Optional kann eine Liste von Feiertagen vorgegeben werden, die bei der Berechnung berücksichtigt werden.
Syntax: tt.MM.  Daten getrennt durch ";“

Arbeitstage Arbeitstage pro Woche.
Werte zwischen 2 und 7, default ist 5.

Oder Eingabe einer Bitmap, bei der
"1" für einen Arbeitstag und
"0" für einen freien Tag steht.
Beispiele:
"1111110" – Sonntag ist frei
"1111100" – Samstag und Sonntag ist frei

Format       Muss gültige Syntax für die Datumsformatierung haben

Beispiel:
ADDWORKINGDAYS („01.01.2015“,5,"01.01.;6.1.;31.12.",5)\@ "tt.MM.jjjj"
ergibt  09.01.2015

ADDWORKINGDAYS_VD(VDatum,AnzTage,
Feiertage,Arbeitstage)

 \@ Format

Rückgabe: Datum

Werktage addieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe ADDWORKINGDAYS.

Beispiel:
ADDWORKINGDAYS_VD(„01.01.2015“,22,"01.01.;6.1.;31.12.",5)\@ "tt.MM.jjjj"
ergibt  03.02.2015

GETNEXTWORKINGDAY(Datum,Feiertage,Arbeitstage)

 \@ Format

Rückgabe: Datum

Nächster Werktag ab Datum:
Ausgehend vom Wert der Variablen varDatum wird unter Berücksichtigung der Freiertage der nächste Werktag bestimmt und in einem gewünschten Format ausgegeben. 

Parameter:

Datum        Siehe obige Vorraussetzung

Feiertage    Optional kann eine Liste von Feiertagen vorgegeben werden, die bei der Berechnung berücksichtigt werden.
Syntax: tt.MM.  Daten getrennt durch ";“

Arbeitstage Arbeitstage pro Woche.
Werte zwischen 2 und 7, default ist 5.

Oder Eingabe einer Bitmap, bei der
"1" für einen Arbeitstag und
"0" für einen freien Tag steht.
Beispiele:
"1111110" – Sonntag ist frei
"1111100" – Samstag und Sonntag ist frei

Format       Muss gültige Syntax für die Datumsformatierung haben

Beispiel:
GETNEXTWORKINGDAY („01.01.2015“,"01.01.;6.1.;31.12.",5)\@ "tt.MM.jjjj"
ergibt  02.01.2015

SUBTRACTDAYS(Datum,AnzTage)

 \@ Format

Rückgabe: Datum

Tage subtrahieren:
Vom Wert der Variablen Datum wird eine bestimmte Anzahl an Tagen subtrahiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzTage          Ganzzahl

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
SUBTRACTDAYS(„15.02.2015“,14)\@ "tt.MM.jjjj"   ergibt  01.02.2015

SUBTRACTDAYS_VD(VDatum,AnzTage)

 \@ Format

Rückgabe: Datum

Tage subtrahieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe SUBTRACTDAYS.

Beispiel:
SUBTRACTDAYS_VD(„01.03.2015“, 1)\@ "tt.MM.jjjj"    ergibt   30.02.2015

SUBTRACTMONTHS(Datum,AnzMonate)

 \@ Format

Rückgabe: Datum

Monate subtrahieren:
Vom Wert der Variablen Datum wird eine bestimme Anzahl an Monaten subtrahiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzMonate      Ganzzahl

Format Muss gültige Syntax für die Datumsforma-tierung haben


Beispiel:
SUBTRACTMONTHS(„31.03.2015“,1)\@ "tt.MM.jjjj"  ergibt  28.02.2015

SUBTRACTMONTHS_VD(VDatum,AnzMonate)

 \@ Format

Rückgabe: Datum

Monate subtrahieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe SUBTRACTMONTHS.

Beispiel:
SUBTRACTMONTHS_VD(„30.03.2015“, 1)\@ "tt.MM.jjjj"    ergibt   30.02.2015

SUBTRACTYEARS(Datum,AnzJahre)

 \@ Format

Rückgabe: Datum

Jahre subtrahieren:
Vom Wert der Variablen Datum wird eine bestimme Anzahl an Jahren subtrahiert und in einem gewünschten Format ausgegeben.

Parameter:

Datum Siehe obige Vorraussetzung

AnzJahre         Ganzzahl

Format Muss gültige Syntax für die Datumsforma-tierung haben


Beispiel:
SUBTRACTYEARS(„31.01.2015“,10)\@ "tt.MM.jjjj"  ergibt  31.01.2005

SUBTRACTYEARS_VD(VDatum,AnzJahre)

 \@ Format

Rückgabe: Datum

Jahre subtrahieren mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe SUBTRACTYEARS.

Beispiel:
SUBTRACTYEARS_VD(„29.02.2016“, 3)\@ "tt.MM.jjjj"    ergibt  29.02.2013

SUBTRACTWORKINGDAYS(Datum,AnzTage,Feiertage,Arbeitstage)

 \@ Format

Rückgabe: Datum

Werktage subtrahieren:
Vom Wert der Variablen varDatum wird eine bestimme Anzahl an Werktagen subtrahiert und in einem gewünschten Format ausgegeben. 

Parameter:

Datum        Siehe obige Vorraussetzung

AnzTage     Anzahl Werktage, Ganzzahl

Feiertage    Optional kann eine Liste von Feiertagen vorgegeben werden, die bei der Berechnung berücksichtigt werden.
Syntax: tt.MM.  Daten getrennt durch ";“

Arbeitstage Arbeitstage pro Woche.
Werte zwischen 2 und 7, default ist 5.

Oder Eingabe einer Bitmap, bei der
"1" für einen Arbeitstag und
"0" für einen freien Tag steht.
Beispiele:
"1111110" – Sonntag ist frei
"1111100" – Samstag und Sonntag ist frei

Format       Muss gültige Syntax für die Datumsformatierung haben

Beispiel:
SUBTRACTWORKINGDAYS („08.01.2015“,3,"01.01.;6.1.;31.12.",5)\@ "tt.MM.jjjj"
ergibt  02.01.2015

DATEDIF(Datum1,Datum2,Einheit)

Rückgabe: Ganzzahl

Datumsdifferenz berechnen:
Es wird die Differenz zwischen den Datumswerten Datum1 und Datum2 berechnet. Die Zeiteinheit wird über den Parameter Einheit gesteuert.

Parameter:

Datum1
Datum2           Siehe obige Vorraussetzung

Einheit Mögliche Werte:

Y      Differenz in kompletten Jahren

M     Differenz in kompletten Monaten

D      Differenz in Tagen

MD   Differenz zwischen den Tagen (in Tagen)
(Monats- und Jahresangabe werden ignoriert)

YM   Differenz zwischen den Monaten (in Monaten)
(Tages- und Jahresangabe werden ignoriert)

YD    Differenz zwischen den Tag.Monat (inTagen)
(Jahresangabe wird ignoriert)


Beispiel:
DATEDIF("28.02.2015","01.03.2015",“Y“)  ergibt  0

DATEDIF_VD(VDatum1,VDatum2,Einheit)

Rückgabe: Ganzzahl

Datumsdifferenz berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe DATEDIF.

Beispiel:
DATEDIF_VD("30.02.2015","03.03.2015",“Y“)  ergibt  0

GETDAYDIFF(Datum1,Datum2)

Rückgabe: Ganzzahl

Differenz in Tagen berechnen:
Es wird die Differenz zwischen den Datumswerten Datum1 und Datum2 in Tagen berechnet.

Parameter:

Datum1
Datum2           Siehe obige Vorraussetzung


Beispiel:
GETDAYDIFF("28.02.2015","01.03.2015")  ergibt  1

GETDAYDIFF_VD(VDatum1,VDatum2)

Rückgabe: Ganzzahl

Differenz in Tagen berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETDAYDIFF.

Beispiel:
GETDAYDIFF_VD("28.02.2015","01.03.2015") 
ergibt   3

GETMONTHDIFF(Datum1,Datum2)

Rückgabe: Ganzzahl

Differenz in Monaten berechnen:
Es wird die Differenz zwischen den Datumswerten Datum1 und Datum2 in Monaten berechnet.

Parameter:

Datum1
Datum2           Siehe obige Vorraussetzung


Beispiel:
GETMONTHDIFF("01.01.2015","31.01.2015")  ergibt  0

GETMONTHDIFF_VD(VDatum1,VDatum2)

Rückgabe: Ganzzahl

Differenz in Monaten berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETMONTHDIFF.

Beispiel:
GETMONTHDIFF_VD("30.01.2015","30.02.2015")  ergibt  1

GETYEARDIFF(Datum1,Datum2)

Rückgabe: Ganzzahl

Differenz in Jahren berechnen:
Es wird die Differenz zwischen den Datumswerten Datum1 und Datum2 in Jahren berechnet.

Parameter:

Datum1
Datum2           Siehe obige Vorraussetzung


Beispiel:
GETYEARDIFF("31.12.2014","31.01.2015")  ergibt  0

GETYEARDIFF_VD(VDatum1,VDatum2)

Rückgabe: Ganzzahl

Differenz in Jahren berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETYEARDIFF.

Beispiel:
GETYEARDIFF_VD("31.12.2014","30.02.2015")  ergibt  0

GETFIRSTOFMONTH(Datum)

 \@ Format

Rückgabe: Datum

Erster Tag im Monat:
Der erste Tag im Monat eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETFIRSTOFMONTH(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.02.2015

GETFIRSTOFMONTH_VD(VDatum)

 \@ Format

Rückgabe: Datum

Erster Tag im Monat berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETFIRSTOFMONTH.

Beispiel:
GETFIRSTOFMONTH_VD(„30.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.02.2015

GETFIRSTOFNEXTMONTH(Datum)

 \@ Format

Rückgabe: Datum

Ersten Tag des nächsten Monats:
Der erste Tag des nächsten Monats eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETFIRSTOFNEXTMONTH(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.03.2015

GETFIRSTOFNEXTMONTH_VD(VDatum)

 \@ Format

Rückgabe: Datum

Erster Tag des nächsten Monats berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETFIRSTOFNEXTMONTH.

Beispiel:
GETFIRSTOFNEXTMONTH_VD(„30.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.03.2015

GETFIRSTOFQUARTER(Datum)

 \@ Format

Rückgabe: Datum

Erster Tag im Quartal:
Der erste Tag im Quartal eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETFIRSTOFQUARTER(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.01.2015

GETFIRSTOFQUARTER_VD(VDatum)

 \@ Format

Rückgabe: Datum

Erster Tag des Quartals berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETFIRSTOFQUARTER.

Beispiel:
GETFIRSTOFQUARTER_VD(„30.02.2015“)\@ "tt.MM.jjjj"  ergibt  01.01.2015

GETLASTOFMONTH(Datum)

 \@ Format

Rückgabe: Datum

Letzter Tag im Monat:
Der letzte Tag im Monat eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETLASTOFMONTH(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  28.02.2015

GETLASTOFMONTH_VD(VDatum)

 \@ Format

Rückgabe: Datum

Letzter Tag des Monats berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETLASTOFMONTH.

Beispiel:
GETLASTOFMONTH_VD(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  30.02.2015

GETLASTOFLASTMONTH(Datum)

 \@ Format

Rückgabe: Datum

Letzter Tag des letzten Monats:
Der letzte Tag des Vormonats eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETLASTOFLASTMONTH(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  31.01.2015

GETLASTOFLASTMONTH_VD(VDatum)

 \@ Format

Rückgabe: Datum

Letzter Tag des letzten Monats berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETLASTOFLASTMONTH.

Beispiel:
GETLASTOFLASTMONTH_VD(„23.03.2015“)\@ "tt.MM.jjjj"  ergibt  30.02.2015

GETLASTOFQUARTER(Datum)

 \@ Format

Rückgabe: Datum

Letzter Tag im Quartal:
Der letzte Tag im Quartal eines vorgegebenen Datums wird in dem gewünschten Format ausgegeben.

 

Parameter:

Datum Siehe obige Vorraussetzung

Format Muss gültige Syntax für die Datumsformatierung haben


Beispiel:
GETLASTOFQUARTER(„23.02.2015“)\@ "tt.MM.jjjj"  ergibt  31.03.2015

GETLASTOFQUARTER_VD(VDatum)

 \@ Format

Rückgabe: Datum

Letzter Tag des letzten Quartals berechnen mit Valutadatum:

Datumsvariablen vom Typ Valutadatum werden immer mit 30 Tagen im Monat berechnet.
Ansonsten siehe GETLASTOFQUARTER.

Beispiel:
GETLASTOFQUARTER_VD(„30.02.2015“)\@ "tt.MM.jjjj"  ergibt  31.03.2015



Regeln für die Verarbeitung von Text- und Datumsfunktionen
Verarbeitung von Variablen aus der Datenversorgung

Innerhalb einer Text- bzw. Datumsfunktion kann der Name einer Variablen aus der Datenversorgung verwendet werden, um den Inhalt dieser Variablen zu verarbeiten.

Beispiel 1:

{ SET myVar "Mein Inhalt aus der Datenversorgung" }

{= LEFT(myVar; 4) }
Ergebnis: Mein

Der Inhalt der Variablen myVar darf beliebige Zeichen enthalten, auch Sonderzeichen wie Anführungszeichen, Semikolon, Komma, Klammern, usw.

Beispiel 2:

Um Sonderzeichen, die sonst durch den RTF-Verarbeitung anderweitig interpretiert würden, korrekt verarbeiten zu können wird folgende Vorgehensweise empfohlen:

{ SET COMMA "," }

{ = SUBSTITUTE("123.45"; "."; COMMA; "1") }

Ergebnis: 123,45

Das Sonderzeichen wird hier per SET-Befehl einer Variablen zugewiesen, die anschließend im SUBSTITUTE-Befehl verwendet werden kann.

Beispiel 3:

{ SET myDatum "15.02.2015" }

{= ADDDAYS(myDatum, 14)\@ "tt.MM.jjjj }
Ergebnis: 01.03.2015


Verkettete Verarbeitung von Text- und Datumsfunktionen

Um Text- bzw. Datumsfunktionen verkettet zu verarbeiten, d.h. innerhalb einer Text-/Datumsfunktion mit dem Ergebnis einer anderen Text-/Datumsfunktion weiter zu arbeiten, ist der Umweg über Variablen notwendig.

Beispiel:

{SET a "   abc  "}

{SET b { = TRIM (a)} }

{ = LEFT(b;2)}

Ergebnis: ab

Hier wird zunächst b mit dem Wert abc belegt (die Leerzeichen werden durch die Funktion TRIM entfernt). Dann wird b an die Funktion LEFT übergeben.