Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 26 Nächste Version anzeigen »


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 (4000)] => 4.000,00
[ams_exp (4000,1)] => 4.000,0
[ams_exp (4000, 2, 1)] => 4.000,00
[ams_exp (4000, 2, 0)] => 4000,00
[ams_exp(4000,0)] => 4.000

ams_exp_strict(betrag, anzahlNachkomma, tausenderTrennzeichen

Text

Siehe ams_exp.
Tritt bei der Umwandlung ein Fehler auf, wird dieser in das Dokument ausgegeben

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)
ams_sparte(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 @)
5 = Zugriff auf Textformeln (ohne @)
6 = Zugriff auf Textbausteine mit abschließendem Zeilenumbruch
9 = Zugriff auf Feldvariablen zum Rechnen (ohne @)
16 = Zugriff auf Textbaustein ohne abschließenden Zeilenumbruch
26 = Zugriff auf Textbaustein ohne abschließenden Zeilenumbruch. Wird der übergebene Bausteinname nicht gefunden, erfolgt eine Fehlerausgabe im Dokument.

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:

  • Der SADRESS-Kontext wird ermittelt und geprüft

  • Wenn die Referenzadresse existiert, wird die AMSIdNr der vorhandenen Adresse geholt oder eine neue Adresse angelegt

  • Der Parser verarbeitet die Kombination aus Typ und AMSIdNr

  • Wenn die Verarbeitung erfolgreich war, wird die Hauptobjekt-ID dem Adressobjekt zugewiesen, sonst erfolgt der Funktionsabbruch

  • Es wird die Verwendung aus der LINKADR für den Typ ermittelt

  • Anschließend wird intern der Modus Typ + _BRIEF_REF zum Parser hinzugefügt

  • Alle selektierten Adressen werden iteriert und der Baustein für diese aufgerufen

  • Im Baustein selbst können die notwendigen Variablen auf konventionell Weise hinterlegt werden.

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:

  • Der Abrechnungskontext wird als Objekt geholt

  • Die Abrechnungs-ID wird als Filter für die SQL-Abfrage gesetzt

  • Im Code wird geprüft, welcher Viewname vorliegt (Viewname “beginnt mit” als Textvergleich)

  • Anschließend werden je nach View die Felder ermittelt, die nicht als RTF ausgegeben werden (Sog. Skipfields) und die Sortierreihenfolge der SQL-Abfrage

  • Die Sortierreihenfolge kann für ABR_GESELL_PRAEMIEN, ABR_VM (ABR_VM_SONST, ABR_VM_HON und weitere ABR_VM-Views in der Registry hinterlegt werden)

  • ABR_GESELL_PRAEMIEN: INKASSO/GESELLSCHAFTSABRECHNUNG => ORDERBY

  • ABR_VM_SONST: INKASSO/VERMITTLERABRECHNUNG/SONST=> ORDERBY

  • ABR_VM_HON: INKASSO/VERMITTLERABRECHNUNG/HON=> ORDERBY

  • Sonstige ABR_VM-Views: INKASSO/VERMITTLERABRECHNUNG=> ORDERBY

  • Die Selektion anhand des Viewnamen erfolgt anhand folgender Logik:

  • Erste Prüfung: ABR_GESELL_PRAEMIEN

  • Zweite Prüfung ABR_VM (ABR_VM_SONST, ABR_VM_HON oder anderer Key)

  • Dritte Prüfung: ABR_KUNDE

  • Vierte Prüfung: Sonstige Views

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
Single = Leer / S
Berechnet den Steuer-Wert für den angebenen Pfad

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:

ENCODING
QUIET ZONE
ERROR CORRECTION LEVEL
DRAWING MODE
CORNER LINE
BACKGROUNDCOLOR
FOREGROUNDCOLOR
SCALE

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.

AUTO
NUMERIC
ALPHANUMERIC
ISO-8859-1
UTF-8 WITHOUT BOM
UTF-8 WITH BOM
URL ENCODING
WINDOWS-1251

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.

L (Niedrig) bis zu 7%

M (Mittel) bis zu 15%

Q (Quartil) bis zu 25%

H (Hoch) bis zu 30% dürfen beschädigt sein

Standard: L

DRAWING MODE:

BITMAP PROPORTIONAL
BITMAP NON-PROPORTIONAL
VECTOR: RECTANGLES PROPORTIONAL
VECTOR: RECTANGLES NON-PROPORTIONAL
VECTOR: REGION PROPORTIONAL
VECTOR: REGION NON-PROPORTIONAL

Standard: BITMAP PROPORTIONAL
CORNER LINE:

Die Eckendicke ist die Dicke zweier senkrechter Linien in der unteren rechten Ecke.

Standard: 0
BACKGROUNDCOLOR:

Logik:

  • Zuerst wird versucht, einen RGB-Wert zu lesen

  • Wenn kein RGB-Wert vorliegt, wird der Farbenname auf Englisch gelesen (Farben in Delphi haben den Präfix cl - Wenn dieser nicht vorhanden ist, wird dieser intern vorgehangen).

  • Sollte kein Ergebnis vorliegen, wird die deutsche Bezeichnung der Farbe gesucht. Ü wird durch UE und ß durch SS ersetzt.

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
FOREGROUNDCOLOR:

Analog Backgroundcolor

Standard: clWhite / Weiß
SCALE:

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):

  1. Mit Standardwerten

[qrcode("Test")];
[qrcode("Test", "")];
  1. Mit allen Parametern

[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.

image-20241010-131009.png

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)]
image-20241021-081725.png
[textverketten(" ", "Ja", "1", "2", "3", "4", "5)]
image-20241021-081830.png

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:

  1. liste(Format, SQL-Abfrage)

  2. liste(Format, SQL-Abfrage, Präfix)

  3. liste(Format, SQL-Abfrage, Präfix, Suffix)

  4. liste(Format, SQL-Abfrage, Präfix, Suffix, Leertext ignorieren)

RTF

Die Funktion liste() erzeugt anhand einer SQL-Abfrage eine Liste mit dem spezifiziertem Aufzählungszeichen.

Parameter Format:

Groß-/Kleinschreibung wird ignoriert.

  • Eigendefiniert

  • Numerisch (0..9)

  • Alpha (a..z)

  • AlphaBig (A…Z)

  • Roemisch (i, ii, iii, …)

  • RoemischBig (I, II, III, …)

  • Kreis (●)

  • FettePunkt (•)

  • HohlePunkt (◦)

  • InvertiertePunkt (◘)

  • Fischauge (◉)

  • Mittelpunkt (·)

  • LangerGedankenstrich (—)

  • Gedankenstrich (–)

  • Pfeil (→)

  • Stern (*)

  • Malzeichen (×)

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.

Beispiele:

Aufruf der Funktion mit zwei 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("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

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

image-20240611-065350.png
  • Keine Stichwörter