Innerhalb des Formularwesens lassen sich viele Inhalte nach Ihren individuellen Wünschen auf dem Dokument darstellen.
Sollte allerdings ein Wert als Information fehlen oder umgewandelt werden müssen, ist die Verwendung von Funktionen meist unumgänglich. Im Folgenden möchten wir darlegen, wie Funktionen grundsätzlich aufgebaut sind und welche Funktionen verfügbar sind.
Aufbau von Funktionen
Grundsätzlich stehen Funktionen immer in eckigen Klammern. Innerhalb dieser eckigen Klammern können auch mehrere Funktionen miteinander verknüpft werden.
Normaler Text [<Funktion>] Weiterer normaler Text
AMS kennt eine Reihe von Funktionen welche für die unterschiedlichsten Anwendungsgebiete nützlich und sinnvoll sein können. Beim Funktionsnamen wird die Groß-/Kleinschreibung ignoriert. Die auszuwertenden Ausdrücke hingegen berücksichtigen Groß-/Kleinschreibung.
[DC(“AnredeBaustein”, 16)]
[Dc(“AnredeBaustein”, 16)]
[dC(“AnredeBaustein”, 16)]
[dc(“AnredeBaustein”, 16)]
Die Syntax der Formelauswertung basiert auf Clipper, welche als Sprache in AMS nicht vollintegriert ist. Diese externe Clipper-Dokumentation kann herangezogen werden.
Im weiteren Verlauf gibt es einen Abschnitt mit Beispielen, wo die Funktionsweise ausgewählter Funktionen demonstriert wird.
Operatoren
Beim Verwenden von komplexeren Funktionsaufrufen wird häufig eine Art von Vergleich von Werten notwendig. Grundlegend werden dafür folgende Operatoren unterstützt.
Operator | Verwendung | Art |
---|---|---|
% | Modulo | Mathematisch |
* | Multiplikation | Mathematisch |
** | Potenzierung | Mathematisch |
+ | Addition | Mathematisch |
- | Subtraktion | Mathematisch |
/ | Division | Mathematisch |
-> | Zuweisung | |
.AND. | Und | Logisch |
.OR. | Oder | Logisch |
.NOT. | Ungleich | Logisch |
= | Gleich | |
!= | Ungleich | |
<> | Ungleich | |
> | Größer | |
>= | Größer-oder-gleich | |
< | Kleiner | |
<= | Kleiner-oder-Gleich |
Verfügbare Funktionen
Allgemeine Funktionen
Funktion | Rückgabetyp | Beschreibung |
---|---|---|
abs(Zahl) | Numerisch | Liefert den Abstand einer Zahl von Null, unabhängig von der Richtung zurück. Beispiel: [abs(-5)] Ergebnis: 5 |
acos(Zahl) | Numerisch | Der Arkuskosinus ist die Umkehrfunktion der geeigneten eingeschränkten Sinus- bzw. Kosinusfunktion. Beispiel: [acos(-0.5)] Ergebnis: 2.0943951023932 |
alltrim(Text) | Text | Entfernt die Leerzeichen am Anfang und Ende des Texts. Beispiel: [alltrim(" VorUndDanchSindLeerzeichen ")] Ergebnis: VorUndDanchSindLeerzeichen |
asc(Buchstabe) | Ganzzahl | Die Buchstabenkonvertierungsroutine liefert den ASCII-Wert eines Buchstaben [0-255]. Beispiel: [asc("A")] Ergebnis: 65 |
asin(Zahl) | Numerisch | Der Arkussinus ist die Umkehrfunktion der trigonometrischen Winkelfunktion sin. Beispiel: [asin("1)] Ergebnis: 1.5707963267949 |
at(Suchbegriff, Text) | Ganzzahl | Die Textfunktion bestimmt die Position des ersten Vorkommens des Suchbegriffs im Text - Die Indexierung startet bei 1. Beispiel: [at("bei", "Ich arbeite bei Assfinet)] Ergebnis: Im Worte arbeite ist der Suchtext bei enthalten, entsprechend liefert die Funktion den Wert 7 zurück. |
ati(Suchbegriff, Text) | Ganzzahl | Analoge Funktionsweise zu at. Groß- und Kleinschreibung wird in dieser Variante nicht unterschieden. |
atan(Zahl) | Numerisch | Berechnet den Arkustangens einer bestimmten Zahl. Beispiel: [atan("1")] Ergebnis: 0.785398163397448 |
between(Prüfwert, Anfangswert, Endwert) | Wahrheitswert | Die Funktion between bestimmt, ob der Prüfwert zwischen A oder B liegt. Sie ist inklusiv, Anfangswert und Endwert werden einbezogen. Beispiele und deren Ergebnisse: [between(2, 2, 4)] .T. für Ja [between("2", "2", "4)] .T. für Ja [between(5, 2, 4)] .F. für Nein [between("5", "2", "4)] .F. für Nein |
ceiling(Numerischer Wert) | Numerisch | Rundet die übergebene Zahl auf eine Ganzzahl in Richtung plus unendlich auf. Beispiele und deren Ergebnisse: [ceiling(-2.8)] -2 [ceiling(2.8)] 3 [ceiling(-1.0)] -1 |
chr(ASCII-Wert) | Text | Die Buchstabenkonvertierungsroutine liefert den den Buchstaben eines ASCII-Wertes [0-255]. Beispiel: [chr(65)] Ergebnis: A |
cmonth(Datum) | Text | cmonth liefert den ausgeschriebenen Monatsnamen (Januar-Dezember) zu einer Datumsangabe. Beispiel: Es ist der 12.11.2024 [cmonth(date())] [cmonth("01.11.2024")] Ergebnis: November |
cos(Numerischer Wert) | Numerisch | Liefert den Kosinus der übergebenen Zahl |
ctod(Datum) | Datum | Die Funktion konvertiert eine Textfolge zu einem Datumswert und liefert im Fehlerfall ein leeres Datum. Somit können z.B. zwei Datumswerte mathematisch verglichen werden. Beispiel: Es ist der 12.11.2024 [ctod(date()) > ctod(date()-2)] Ergebnis: 12.11.2024 ist größer als der 10.11.2024, somit .T. für Ja. [ctod("01.11.2024)] Ergebnis: 01.11.2024 |
date() | Datum | date liefert das Systemdatum als Datumswert zurück. Beispiel: Es ist der 12.11.2024 [date()] Ergebnis: 12.11.2024 |
day(datum) | Ganzzahl | Liefert den Tag des Datums als Zahlenwert |
dow(datum) | Ganzzahl | Liefert den numerischen Wert des Tages in der Woche |
dtoc(datum) | Text | Liefert das Datum als Zeichenfolge |
dtor(NumerischerWert) | Numerisch | |
dtos(datum) | Text | Liefert das Datum als Zeichenfolge im Format yyyymmdd |
empty(pruefwert) | Wahrheitswert | Liefert einen Wahrheitswert, ob der übergebene Wert Leer ist |
floor(NumerischerWert) | Numerisch | Rundet den übergebenen Wert auf eine Ganzzahl ab |
iif(bedingung, wertWennWahr, wertWennFalsch) | Dynamisch | Anhand der übergebenen Bedingung wird der Wahrheitswert oder Unwahrheitswert zurückgegeben |
if(bedingung, wertWennWahr, wertWennFalsch) | ||
int(NumerischerWert) | Ganzzahl | Liefert einen Ganzzahlenwert zurück |
isAlpha(Text) | Wahrheitswert | Prüft, ob das erste Zeichen alphanumerisch ist |
isDigit(Text) | Wahrheitswert | Prüft, ob das erste Zeichen eine Zahl ist |
isLower(Text) | Wahrheitswert | Prüft, ob das erste Zeichen ein Kleinbuchstabe ist |
isUpper(Text) | Wahrheitswert | Prüft, ob das erste Zeichen ein Großbuchstabe ist |
kalenderwoche(datum) | Text | Gibt die Kalenderwoche eines Datums zurück |
left(Text, AnzahlZeichen) | Text | Gibt ab Beginn der Zeichenkette die gewünschte Anzahl Zeichen zurück |
len(Text) | Ganzzahl | Gibt die Anzahl an Zeichen der Zeichenkette zurück |
log(Numerisch) | Numerisch | Gibt den logarithmischen Wert zurück |
log10 | ||
lower(Text) | Text | Liefert die übergebene Zeichenkette in Kleinbuchstaben zurück |
ltrim(Text) | Text | Entfernt die Leerzeichen am Anfang des Texts. Beispiel: [alltrim(" VorneSindLeerzeichen")] Ergebnis: VorneSindLeerzeichen |
max(a, b) | Dynamisch | Liefert den größeren der beiden Übergabewerte zurück |
min(a, b) | Dynamisch | Liefert den kleineren der beiden Übergabewerte zurück |
mod(a, b) | Ganzzahl | Modulo-Berechnung |
monatsanfang(datum) | Datum | Liefert den Anfang des Monats vom übergebenen Datum zurück |
monatsende(datum) | Datum | Liefert das Ende des Monats vom übergebenen Datum zurück |
month(datum) | Ganzzahl | Liefert den Monat als Ganzzahl zurück |
padc(text, length, fillchar) | Text | Der übergebene Text wird gleichmäßig links und rechts um das Füllzeichen aufgefüllt |
padl(text, length, fillchar) | Text | Der übergebene Text wird links um das Füllzeichen aufgefüllt |
padr(text, length, fillchar) | Text | Der übergebene Text wird rechts um das Füllzeichen aufgefüllt |
pi() | Numerisch | Es wird Mathematisch PI zurückgeliefert |
pow(basis, exponent) | Numerisch | Ermittelt den Exponent |
proper | ||
rat(text, search) | Ganzzahl | Liefert die letzte Position des Suchwerts innerhalb des Suchstrings. “rat” agiert dabei ohne Beachtung von Groß/Kleinschreibung. |
rati(text, search) | ||
right(text, anzahlZeichen) | Text | Liefert die gewünschte Anzahl an Zeichen von Rechts des übergebenen Texts zurück |
round(zahl, anzahlNachkommastellen) | Numerisch | Rundet eine Zahl auf die gewünschte Anzahl an Nachkommastellen |
rtod(datum) | ||
rtrim | Text | Befreit eine Zeichenfolge rechts von Leerzeichen |
seconds() | Ganzzahl | Liefert die Anzahl der Sekunden seit Tagesbeginn |
sin | ||
space(anzahl) | Text | Liefert eine Zeichenkette aus Leerzeichen in der gewünschten Länge |
sqrt(Numerisch) | Numerisch | Liefert die Wurzel der übergeben Zahl zurück |
str(Text) | Text | Konvertiert eine Zahl zu einer Zeichenkette |
str(Numerisch, Optional, Optional, Optional) | ||
string(Text) | Text | Liefert Leerzeilen in der Länge des übergeben Texts |
strtran(String, Search, Replace, Start, Count) | Text | Sucht und Ersetzt einen Suchstring innerhalb eines übergebenen Texts |
strzero(number, length, decimals) | Text | |
stuff(String,Start,Delete,Insert) | Text | |
substr(text,start,count) | Text | Liefert einen Teil der übergebenen Zeichenkette zurück |
tan | ||
time() | Text | Liefert die Systemzeit zurück |
upper(Text) | Text | Liefert die übergebene Zeichenkette in Großbuchstaben zurück |
val | Numerisch | Konvertiert eine Zeichenkette zu einem numerischen Wert |
wochemonat(datum) | Ganzzahl | Liefert die Woche des Monats vom übergebenen Datum zurück |
year(datum) | Ganzzahl | Liefert die Jahreszahl des übergebenen Datums zurück |
AMS-Formeln
Funktion | Kontext | Rückgabetyp | Beschreibung |
---|---|---|---|
ams_repeatsparte(formel) | Vertrag | Numerisch | Führt mit Vertragssparten-Kontext die übergebene Formel aus, sofern der Vertrag einen zulässigen Tarif besitzt |
ams_repeatsparte(formel, tarif) | Vertrag | Numerisch | Führt mit Vertragssparten-Kontext die übergebene Formel aus, sofern der Vertrag dem übergebenen Tarif entspricht |
inkgessteuernr(position) | RW | Baustein | |
inksteuerinfo(x) | |||
inksteuerinfo(x, y) | |||
ams_splitsparte(betrag) | Vertrag | Numerisch | Der übergebene Betrag wird gleichmäßig anteilig für eine Vertragssparte ausgegeben und auf 2 Nachkommastellen gerundet |
ams_splitsparte(betrag, anzahlNachkommastellen) | Vertrag | Numerisch | Der übergebene Betrag wird gleichmäßig anteilig für eine Vertragssparte ausgegeben und auf die übergebene Anzahl Nachkommastellen gerundet |
ams_checktarif(text) | Vertrag | Wahrheitswert | Prüft, ob der übergebene Tarif im Vertrag vorhanden ist |
ams_n2txt(Ganzzahl) | Text | Wandelt die übergebene Zahl in den textlichen Wert der enthaltenen Ziffern um | |
ams_exp(betrag, anzahlNachkomma, tausenderTrennzeichen) | Text | Wandelt einen numerischen Wert in eine Zeichenkette um und berücksichtigt, dabei die gewünschte Anzahl Nachkommastellen und ob Tausendertrennzeichen gesetzt werden sollen z.B. | |
ams_exp_strict(betrag, anzahlNachkomma, tausenderTrennzeichen | Text | Siehe ams_exp. | |
dateizeile(dateipfad) | Text | Liefert den Inhalt der übergebenen Datei zurück | |
dateizeile(dateipfad, zeile) | Text | Liefert den Inhalt der übergebenen Zeile aus der übergebenen Datei zurück | |
amsspartenname(sparte) | Text | Gibt den Beschreibungstext der übergebenen Sparte zurück | |
amsbibadresseoptimal | |||
secureiban(iban) | Text | Sorgt für eine Teil-Maskierung der übergebenen IBAN, sodass diese nicht vollständig in Klarschrift angedruckt wird | |
f_amszahl(zaehlername, formatierung) | Text | Der übergebene Zähler wird um eins erhöht und der neue Wert im übergebenen Format zurückgeliefert. Siehe F_AMSZAHL. | |
f_amsmandantzahl(zaehlername, formatierung, mandantMatchcode) | Text | Der übergebene Zähler wird um eins erhöht und der neue Wert im übergebenen Format zurückgeliefert. Hierbei wird je Mandant im System eine separater Zähler verwendet. Siehe F_AMSZAHL. | |
dc(objektName, ArtDesObjekts) | Als Objektname kommt hier eine Variable (Feldvariable oder Standardtextvariable), oder ein Textbaustein (exakter Name) in Frage. Anstelle von ArtDesObjekts kann man fünf Zahlencodes einfügen, welche jeweils eine unterschiedliche Funktion haben: 2 = Zugriff auf Feldvariablen (ohne @) | ||
amszahlweisefaktor(zahlweise) | Ganzzahl | Anhand der Zahlweise wird der passende Faktor zurückgeliefert (Monatlich -> 12). | |
amstab(Typ, Baustein, Filter) | ADRESSE | Baustein | Typ: SCHADEN, VERTRAG oder KUNDE Baustein: Ein beliebiger Bausteinname, der die notwendigen Ausgabevariablen enthält Filter: Bezeichnung der Referenzrolle Falls eine Prüfung notwendig ist, kann dies mit folgender SQL-Abfrage durchgeführt werden: select SADRESS.* from SADRESS, LINKADR where SADRESS.AMSIDNR = LINKADR.ADRID and LINKADR."KEY" = 'AMSIdNr vom Typ' and LINKADR.VERWENDUNG = 'Filtertext'; Ablauf:
Beispiele: [amstab("SCHADEN", "BAUSTEINNAME", "ROLLENNAME")] [amstab("VERTRAG", "BAUSTEINNAME", "ROLLENNAME")] [amstab("KUNDE", "BAUSTEINNAME", "ROLLENNAME")] |
amsmemotext(text) | Text | Umbrüche des übergebenen Texts werden für die Textverarbeitung konvertiert, damit diese korrekt dargestellt werden. | |
amsanmerkung2rtf(hauptobjektID) | Text | Zu dem übergebenen Fachobjekt wird die Anmerkung zurückgeliefert | |
amssql2rtf(sql) | RTF | Die Ergebnismenge wird in RTF umgewandelt. Wenn mehrere Spalten selektiert werden, sind diese mittels Tabulator getrennt | |
vertragberatunginfo | RTF | ||
vertragberatunginfoplain | |||
rtftrim(rtf) | RTF | Umbrüche, Leerzeichen, Leerzeilen werden am Ende eines Textbausteins entfernt. | |
removeparagraph | |||
amssqlsingle(sql) | Variant | ||
amsbeteil2rtf | RTF | ||
amskik2rtf | RTF | ||
amsink2rtf | RTF | ||
amskalkulation2rtf | RTF | ||
amsschaeden2rtf | RTF | ||
amstermine2rtf | RTF | ||
amsreferenzen2rtf | RTF | ||
amsrtfgruppenpersonen | |||
repeatrisiko(BausteinName) | VERTRAG | Baustein | Für die zum Vertrag gehörigen Vertragskalkulationen wird je Eintrag der übergebene Baustein aufgerufen. |
amsschaeden2rtf(Baustein, Offene, Erledigte) | RTF | ||
amstermine2rtf(AmsIdNr) | RTF | ||
amsreferenzen2rtf(AmsIdNr) | RTF | ||
amsrtfgruppenpersonen(Sparte, VertragsAmsidnr) | RTF | ||
amsmatrixload | |||
amsmatrix | |||
ba_allgbuchungabgerechnet2rtf | |||
ba_allgbuchungoffen2rtf | |||
ba_allgbuchungsonstige2rtf | |||
ba_allgbuchungstornoreserve2rtf | |||
ba_vertragshistorien2rtf | |||
ba_provisionen2rtf | |||
ba_sonstbuchungen2rtf | |||
ba_sonststornoreserven2rtf | |||
ba_summeabgerechnet2rtf | |||
ba_summebuchungen2rtf | |||
ba_summeoffen2rtf | |||
ba_summesonstige2rtf | |||
ba_summestornoreserve2rtf | |||
ba_vertragsbuchungen2rtf | |||
ba_vshbeitrag2rtf | |||
ba_vtbuchungabgerechnet2rtf | |||
ba_vtbuchungabschlussp2rtf | |||
ba_vtbuchungdynamik2rtf | |||
ba_vtbuchungfolgebestand2rtf | |||
ba_vtbuchungoffen2rtf | |||
ba_vtsummeprovvm2rtf | |||
ba_vtsummestornoresvm2rtf | |||
ba_vtsummegutschriftvm2rtf | |||
repeat(Container, Textbaustein) | Baustein | Der übergebene Container wird iteriert und ruft für jeden Eintrag den übergebenen Textbaustein auf | |
repeatsqlquery(sqlCommandText, Textbaustein, Containername) | Baustein | Das übergebene SQL-Statement wird iteriert und ruft für jede Zeile den Textbaustein auf. Innerhalb des Bausteins kann auf die Inhalte aus dem Query anhand des übergebenen Containernamens zugegriffen werden. | |
repeatabrgesellpraemien | |||
repeatabrgesellschaden | |||
repeatabrgesellsonder | |||
repeatbeteiligung | |||
repeatvxx | RTF | Grundsätzliches für die repeatvxx-Funktionen: Intern erfolgt der Funktionsaufruf von repeatabrpositionanlage mit dem Viewnamen, auf den via SQL zugegriffen wird. | |
repeatvmap(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Abschlussprovision repeatabrpositionanlage(ABR_VM_AP, Textbaustein, Containername) | |
repeatvmdy(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Vermittlerprovision repeatabrpositionanlage(ABR_VM_DY, Textbaustein, Containername) | |
repeatvmfp(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Folgeprovision repeatabrpositionanlage(ABR_VM_FP, Textbaustein, Containername) | |
repeatvmhon(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Honorare repeatabrpositionanlage(ABR_VM_HON, Textbaustein, Containername) | |
repeatvmregul(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Vermittlerregulierung repeatabrpositionanlage(ABR_VM_REGUL, Textbaustein, Containername) | |
repeatvmsonst(Textbaustein, Containername) | RTF | Neuer Abrechnungsdruck Sonstige repeatabrpositionanlage(ABR_VM_SONST, Textbaustein, Containername) | |
Zusatzinfo - Kein Aufruf via Textformel, sondern nur intern von AMS: repeatabrpositionanlage(ViewName, Textbaustein, Containername) | Text | Ablauf:
Finale Schritte: Aufruf von repeatsqlquery(SQL, Textbaustein, Containername, ÜberspringeFelder); Die Funktion repeatsqlquery erzeugt die RTF-Daten anhand der intern zusammengestellten SQL-Abfrage mit dessen Filtern und Skipfields. | |
xpath(xpathPfad) | Text | Der erste gefundene Eintrag am übergebenen Pfad wird aus der XML-Struktur zurückgegeben | |
xrepeat(xpathPfad, Textbaustein) | RTF | In der XML-Struktur wird für den übergebenen Pfad iteriert und der übergebene Textbaustein aufgerufen. | |
xrepeatgroupby(xpathPfad, GroupBy, Delimiter, Textbaustein, TextbausteinHeader, TextbausteinFooter) | RTF | ||
xrepeatgroupbysorted(xpathPfad, GroupBy, Delimiter, Sorted, Textbaustein, TextbausteinHeader, TextbausteinFooter) | RTF | ||
xminvalue(xpathPfad, Datentyp) | Text | Datentyp = S, D, N, I Liefert den kleinsten Wert für den übergebenen Suchpfad innerhalb der XML-Struktur zurück. | |
xmaxvalue(xpathPfad, Datentyp) | Text | Datentyp = S, D, N, I Liefert den größten Wert für den übergebenen Suchpfad innerhalb der XML-Struktur zurück. | |
hyperlink(hyperlink, linktext) | RTF | Ein übergebener Link wird als Hyperlink im Dokument dargestellt | |
ams2excel(Titel) | Text | Via Titelparameter werden aus der Tabelle ABR_ANLAGE Daten für den Excelexport selektiert. | |
abrview2excel(Titel) | Text | Via Titelparameter werden aus der Tabelle ABR_ANLAGE Daten für den Excelexport selektiert. | |
ams2csv(Titel) | Text | Funktionalität analog zu ams2excel - Die Daten werden stattdessen im CSV-Format exportiert. Intern wird ams2excel aufgerufen, der Parameter ExportAsCSV wird auf aktiv gesetzt. | |
abrview2csv(Titel) | Text | Funktionalität analog zu abrview2excel - Die Daten werden stattdessen im CSV-Format exportiert. Intern wird abrview2excel aufgerufen, der Parameter ExportAsCSV wird auf aktiv gesetzt. | |
xrepeat2excel | |||
xsaldo | |||
xsum(xpathPfad) | Text | Alle gefundenen Ergebnisse zum XPath-Pfad werden summiert zurückgeliefert | |
sum(ContainerName, Feldname) | Text | Das übergebene Feld aus dem Container wird summiert zurückgeliefert | |
xsteuer(Path, Inkasso, Single) | RW | Text | Inkasso = Leer / IN |
strcmp | |||
xcalc(FormelName) | Text | ||
xpathexists(xpathFormel) | Wahrheitswert | Es wird geprüft, ob der übergebene Pfad in der XML-Struktur vorhanden ist | |
statusgrund(Typ) | Text | Der Abrechnungstyp wird als sprechender Wert zurückgeliefert. PR = Folgeprämie, PR_NE = Nachtrag, PR_EP = Erstprämie | |
roundto(Wert, AnzahlNachkommastellen) | Text | Der übergebene Wert wird auf die Anzahl Nachkommastellen gerundet. | |
fibubankkto | |||
gevolang | |||
nfibwrg | |||
parsefloat parsefloatstrict | |||
parsefloat2str | |||
amsvtfaellig | |||
amsvtftermin | |||
rtfbild | |||
abrgespositionkdrgnr | |||
abrspartenfeld | |||
multispartenfeld | |||
datenverarbeitung(AdressId, Kanal, Art) | Text | Kanal = HAUPTKANAL, ZUSTIMMUNG_ERTEILT, ZUSTIMMUNG_QUELLE, ZUSTIMMUNG_BEMERKUNG, ZUSTIMMUNG_DATUM, GRUENDE Art = 1, 2 | |
htmltortf(html) | RTF | HTML-Inhalte werden nach RTF umformatiert | |
monatsanfang(Datum) | Text | Liefert den Monatsbeginn zum übergebenen Datum zurück Beispiel: Heute ist der 06.11.2024. Die Funktion DATE() liefert das Tagedatum zurück. [monatsanfang(DATE())] Ergebnis: 01.11.2024 | |
monatsende(Datum) | Text | Liefert das Monatsende zum übergebenen Datum zurück Beispiel: Heute ist der 06.11.2024. [monatsende(DATE())] Ergebnis: 30.11.2024 | |
kalenderwoche(Datum) | Text | Liefert die Kalenderwoche zum übergebenen Datum zurück Beispiel: Heute ist der 06.11.2024. [kalenderwoche (DATE())] Ergebnis: 45 | |
wochemonat(Datum) | Text | Liefert die Woche des übergebenen Monats zum übergebenen Datum zurück Beispiel: Heute ist der 06.11.2024. [wochemonat(DATE())] Ergebnis: 1 | |
edatum(Datum, Monate) | Text | Analoge Funktionsweise zur Excel-Formel “edatum” Ausgehend von einem Datumswert können Vormonate oder Folgemonate mit Parameterangabe kalkuliert werden. Beispiele: Heute ist der 06.11.2024 [edatum(DATE(),1)] Ergebnis: 06.12.2024 [edatum(DATE(),-1)] Ergebnis: 06.10.2024 [monatsende (edatum(DATE(),-1))] Sie können die Formel edatum auch mit obigen Datumsformeln kombinieren. Der letzte Tag des Vormonats ausgehend vom heutigen Tagesdatum liefert als Ergebnis den 31.10.2024. | |
wertinauflistung(suchwert, prüfwert1, prüfwert2, ….) | Wahrheitswert | Es wird der Suchwert in den Prüfwerten gesucht - Bei Treffer erfolgt der Suchabbruch. Die Funktion kann als Alternative zur Verschachtelung von .or. verwendet werden. Die Suche unterscheidet Groß- und Kleinschreibung. Beispiele: [if(wertinauflistung(KUNDE->VN_GESCHL, "Divers"), "Wahr", "Falsch")] [if(!wertinauflistung(KUNDE->VN_GESCHL, "Divers", "Weiblich"), "Wahr", "Falsch")] [if(wertinauflistung(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), "Wahr", "Falsch")] | |
nvl(x, y) | Text | Es wird X zurückgeliefert, sofern dieses nicht technisch NULL ist. Ansonsten wird Y zurückgeliefert. | |
repeatoffenevorgaengezuvertraegen(HeaderTextbaustein, ZeilenBaustein, FooterBaustein, Gruppierungsfeldname) | KUNDE / TERMIN | Baustein | Alle offenen Vorgänge zur Verträgen werden iteriert |
repeatoffenevorgaengezuschaeden(HeaderTextbaustein, ZeilenBaustein, FooterBaustein, Gruppierungsfeldname) | KUNDE / TERMIN | Baustein | Alle offenen Vorgänge zur Schäden werden iteriert |
repeatoffenevorgaengezukunden(HeaderTextbaustein, ZeilenBaustein, FooterBaustein, Gruppierungsfeldname) | KUNDE / TERMIN | Baustein | Alle offenen Vorgänge zu Kunde werden iteriert |
sql2tortftable | |||
Varianten: qrcode(Text) qrcode(Text, Parameter) | Bild als RTF-Text | Liefert einen QR-Code zurück. Parameter:
Mögliche Werte der Parameter: ENCODING: Die Kodierung des QR-Codes und dessen Inhalts. Die Mehrzahl der QR-Reader geht vom Standard UTF-8 aus.
Standard: AUTO QUIET ZONE: Wert zwischen 0 und 100. Die Ruhezone ist der leere Rand oder Raum, der alle vier Seiten des QR-Codes umschließt und den Barcode von anderen Elementen im Bild trennt. Eine Ruhezone hilft dem QR-Reader, das Vorhandensein des QR-Codes genau zu erkennen. Sie definiert zusätzlich, an welcher Stelle der QR-Code beginnt und endet. Standard: 1 ERROR CORRECTION LEVEL: Bei der Erstellung von QR-Codes kann ein bestimmter Grad für Fehlerkorrektur angegeben werden, sodass der Code lesbar bleibt, auch wenn er zum Teil beschädigt oder verdeckt ist.
Standard: L DRAWING MODE:
Standard: BITMAP PROPORTIONAL Die Eckendicke ist die Dicke zweier senkrechter Linien in der unteren rechten Ecke. Standard: 0 Logik:
Für die Ermittlung wird der Text in Großbuchstaben konvertiert. Folgende Standardfarben werden unterstützt: Englisch 'CLBLACK', 'CLMAROON', 'CLGREEN', 'CLOLIVE', 'CLNAVY', 'CLPURPLE', 'CLTEAL', 'CLGRAY', 'CLSILVER', 'CLRED', 'CLLIME', 'CLYELLOW', 'CLBLUE', 'CLFUCHSIA', 'CLAQUA', 'CLWHITE', 'CLMONEYGREEN', 'SKYBLUE', 'CLCREAM', 'CLMEDGRAY', 'CLNONE' Deutsch 'SCHWARZ', 'BRAUN', 'GRUEN', 'OLIVGRUEN', 'MARINEBLAU', 'PURPUR', 'GRUENBLAU', 'GRAU', 'SILBER', 'ROT', 'LIMONENGRUEN', 'GELB', 'BLAU', 'FUCHSIA', 'AQUAMARIN', 'WEISS', 'MINTGRUEN', 'HIMMELBLAU', 'CREME', 'MITTELGRAU', 'KEINE' Standard: clBlack / Schwarz Analog Backgroundcolor Standard: clWhite / Weiß Der Maßstab ist die Größe der Bildpunkte (Quadraten). Der Barcode wird anhand des Parameters entsprechend vergrößert. Empfehlung: 3 oder 4. Standard: 3 Beispielaufruf (Möglich mit einem oder zwei Argumenten):
[qrcode("Test")]; [qrcode("Test", "")];
[qrcode("Test", "ENCODING:ISO-8859-1;QUIET ZONE: 1;ERROR CORRECTION LEVEL: M; DRAWING MODE: BITMAP PROPORTIONAL;CORNER LINE: 1;BACKGROUNDCOLOR: clWhite; FOREGROUNDCOLOR: clBlack; SCALE: 4")] Grundsätzlich: Parameter sind optional - Jede mögliche Kombination 1..n ist möglich. | |
textverketten(Trennzeichen, Leertext ignorieren, Wert 1..n) | RTF | Verkettet alle Textstücke mit dem definierten Trennzeichen. Parameter 1 ist das gewünschte Trennzeichen. Standard: Zeilenumbruch in RTF-Notation (\par ). Parameter 2 spezifiziert, ob eine leere Zeichenfolge ignoriert werden sollen. Standard: “Ja”. Für beide Parameter kann auch ““ hinterlegt werden. Parameter 3..n sind die jeweiligen Textelemente, welche verkettet werden sollen. Beispiele: [textverketten("", "Ja", "1", "2", "3", "4", "5)] [textverketten(" ", "Ja", "1", "2", "3", "4", "5)] | |
textverkettensql(Trennzeichen, Leertext ignorieren, SQL-Abfrage) | RTF | Funktionalität analog textverketten. Als dritter Parameter muss die SQL Abfrage angegeben werden. Anschließend erfolgt die Ausführung und alle Ergebnisse werden intern in einen Parameteraufruf mit der jeweiligen Ergebnisanzahl transformiert. Enthält die SQL Abfrage drei Ergebniswerte, wird aus textverkettensql folgender Formelaufruf von textverketten: [textverkettensql("", "Ja", "SELECT KUNDE.VN_NAME1, KUNDE.VN_TEL, KUNDE.VN_EMAIL FROM KUNDE;")] [textverketten("", "Ja", "Mustermann", "012345123456", "muster@test.de")] Bitte beachten: Es werden nur die Feldwerte des ersten Ergebnis verkettet. Wenn eine Auflistung von multiplen Datensätzen benötigt wird, sollte die Funktion liste verwendet werden. Die Funktion befindet sich aktuell im internen Test. | |
liste Varianten:
| RTF | Die Funktion erstellt eine Liste mit Aufzählungszeichen auf Basis einer SQL-Abfrage und einem Ergebnisfeldwert. Parameter Format: Groß-/Kleinschreibung wird für den Parameter bei Prüfung der vordefinierten Typen ignoriert.
Parameter SQL-Abfrage: Die Datenbankabfrage, welche die notwendigen Informationen für die Ausgabe liefert. Bitte beachten: Es werden nur die Feldwerte des ersten Ergebnis aufgelistet. Parameter Suffix und Präfix: Um für die Formel Liste() einen maximaler Grad an Flexibilität zu ermöglichen, können Präfixe und Suffixe definiert werden. Diese ermöglichen es, die Formatierung der Aufzählungszeichen zu modifizieren. Standardmäßig wird der “. ” bei Verwendung der Funktion liste mit zwei Parametern (Format, SQL) eingefügt. Sie erhalten somit als Ausgabe: 1., a., A., I., usw. Sollten Sie z.B. abweichend das Format (I.) benötigen, kann dies via Suffix und Präfix hinterlegt werden. "(", ".)")] Entsprechend Beispiele folgen. Parameter Leertext ignorieren: Standardmäßig werden Leerwerte bei der Listenausgabe ignoriert und in der Nummerierung übersprungen. Ggf. liegt die Notwendigkeit vor, Leertext trotzdem auszugeben. Verwenden Sie den Wert “Nein”. Beispiele: Aufruf der Funktion mit zwei Parametern: [liste("Numerisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;")] Ausgabe:
[liste("Roemisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;")] Ausgabe: i. -2000776 ii. -2000777 iii. E-2000766 iv. E-2000775 v. E-2000778 [liste("RoemischBig","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;")] Ausgabe: I. -2000776 II. -2000777 III. E-2000766 IV. E-2000775 V. E-2000778 [liste("Alpha","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;")] Ausgabe: a. -2000776 b. -2000777 c. E-2000766 d. E-2000775 e. E-2000778 [liste("AlphaBig","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;")] Ausgabe: A. -2000776 B. -2000777 C. E-2000766 D. E-2000775 E. E-2000778 Aufruf der Funktion mit drei Parametern: [liste("Numerisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;","->")] Ausgabe: ->1-2000776 ->2-2000777 ->3E-2000766 ->4E-2000775 ->5E-2000778 Suffixe ohne Präfixkombination werden eher selten zum Einsatz kommen. Aufruf der Funktion mit vier Parametern: [liste("Numerisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;","",".)")] Ausgabe: 1.)-2000776 2.)-2000777 3.)E-2000766 4.)E-2000775 5.)E-2000778 [liste("Numerisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;","(", ".)")] Ausgabe: (1.)-2000776 (2.)-2000777 (3.)E-2000766 (4.)E-2000775 (5.)E-2000778 Aufruf mit fünf Parametern: [liste("Numerisch","SELECT FIRST 5 VNR FROM VERTRAG ORDER BY VNR;","(", ".)", "Ja")] Ausgabe: (1.)-2000776 (2.)-2000777 (3.)E-2000766 (4.)E-2000775 (5.)E-2000778 Die Funktion befindet sich aktuell im internen Test. |
Beispiele
dc -Funktion
Die DC-Formel kann verschiedene Inhalt laden. Dabei sieht der Funktionskörper wie folgt aus:
[dc("Objektbezeichnung", ArtDesObjekts)]
In unserem Beispiel möchten wir nun eine Variable im Dokument einfügen ohne die @-Syntax zu verwenden. Hierfür verwenden wir folgenden Aufruf:
[dc("+++103", 2)]
+++103 ist der öffentliche Name für den Geburtsnamen im Kundendatensatz
2 beschreibt die Art des Aufrufs und somit den Abruf von Feldinhalten