Funktionen im Formularwesen


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

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

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:

Ergebnis:

VorUndDanchSindLeerzeichen

asc(Buchstabe)

Ganzzahl

Die Buchstabenkonvertierungsroutine liefert den ASCII-Wert eines Buchstaben [0-255].

Beispiel:

Ergebnis:

65

asin(Zahl)

Numerisch

Der Arkussinus ist die Umkehrfunktion der trigonometrischen Winkelfunktion sin.

Beispiel:

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:

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:

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:

.T. für Ja

.T. für Ja

.F. für Nein

.F. für Nein

ceiling(Numerischer Wert)

Numerisch

Rundet die übergebene Zahl auf eine Ganzzahl in Richtung plus unendlich auf.

Beispiele und deren Ergebnisse:

-2

3

-1

chr(ASCII-Wert)

Text

Die Buchstabenkonvertierungsroutine liefert den den Buchstaben eines ASCII-Wertes [0-255].

Beispiel:

Ergebnis:

A

cmonth(Datum)

Text

cmonth liefert den ausgeschriebenen Monatsnamen (Januar-Dezember) zu einer Datumsangabe.

Beispiel:

Es ist der 12.11.2024

Ergebnis:

November

cos(Numerischer Wert)

Numerisch

Berechnet den Kosinus einer bestimmten Zahl.

Beispiel:

Ergebnis:

0.54030230586814

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

Ergebnis:

12.11.2024 ist größer als der 10.11.2024, somit

.T. für Ja.

Ergebnis:

01.11.2024

date()

Datum

date liefert das Systemdatum als Datumswert zurück.

Beispiel:

Es ist der 12.11.2024

Ergebnis:

12.11.2024

day(Datum)

Ganzzahl

Liefert den Tag des Datums als Zahlenwert

Beispiel:

Es ist der 16.11.2024

Ergebnis:

16

dow(Datum)

Ganzzahl

Liefert den numerischen Wert des Tages in der Woche. Abweichend von dow() in Clipper liefert die Funktion die Wochentage von Montag (1) bis Sonntag (7).

Beispiel:

Es ist der 16.11.2024, Samstag

Ergebnis:

6

dtoc(Datum)

dtoc(Zeit)

Text

Liefert das Datum oder die Zeit als Zeichenfolge.

Beispiel:

Es ist der 16.11.2024, Samstag

Ergebnis:

16.11.2024

Beispiel 2:

Es ist der 17:00 Uhr

Ergebnis:

17:00

dtos(Datum)

Text

Liefert das Datum als Zeichenfolge im Format yyyymmdd.

Beispiel:

Es ist der 16.11.2024

Ergebnis:

20241116

empty(Prüfwert)

Wahrheitswert

Liefert einen Wahrheitswert, wenn der übergebene Wert leer ist.

Beispiele:

.F. für Nein

.T. für Ja

floor(Numerischer Wert)

Numerisch

Rundet die übergebene Zahl auf eine Ganzzahl in Richtung minus unendlich auf.

Beispiele und deren Ergebnisse:

-3

2

-1

iif(Bedingung, Wert WennWahr, wertWennFalsch)

Dynamisch

Anhand der übergebenen Bedingung wird der Wahrheitswert oder Unwahrheitswert zurückgegeben

if(bedingung, wertWennWahr, wertWennFalsch)

int(Numerischer Wert)

Ganzzahl

Liefert einen Ganzzahlenwert zurück.

Es wird kaufmännisch gerundet.

Beispiel:

Ergebnis:

6

Beispiel:

Ergebnis:

5

isAlpha(Text)

Wahrheitswert

Prüft, ob das erste Zeichen im Text alphabetisch ist.

Beispiel:

Ergebnis:

.F. für Nein

Beispiel 2:

Ergebnis:

.T. für Ja

isDigit(Text)

Wahrheitswert

Prüft, ob das erste Zeichen eine Zahl ist.

Beispiel:

Ergebnis:

.T. für Ja

Beispiel 2:

.F. für Nein

isLower(Text)

Wahrheitswert

Prüft, ob das erste Zeichen ein Kleinbuchstabe ist.

Beispiel:

Ergebnis:

.T. für Ja

Beispiel 2:

.F. für Nein

isUpper(Text)

Wahrheitswert

Prüft, ob das erste Zeichen ein Großbuchstabe ist.

Beispiel:

Ergebnis:

.T. für Ja

Beispiel 2:

.F. für Nein

kalenderwoche(Datum)

Text

Liefert die Kalenderwoche anhand eines Datums.

Beispiel:

Es ist der 17.11.2024

Ergebnis:

46

left(Text, Anzahl Zeichen)

Text

Liefert die gewünschte Anzahl Zeichen einer Zeichenkette ausgehend von links zurück.

Beispiel:

Ergebnis:

Ich

Beispiel 2:

Ergebnis:

Ich gehe

len(Text)

Ganzzahl

Ermittelt die Textlänge der Zeichenkette.

Beispiel:

Ergebnis:

4

log(Numerisch)

Numerisch

Ermittelt den logarithmischen Wert einer Zahl.

Beispiel:

Ergebnis:

4.60517018598809

log10(Numerisch)

Numerisch

Gibt den Logarithmus einer Zahl zur Basis 10 zurück.

Beispiel:

Ergebnis:

2

lower(Text)

Text

Die übergebene Zeichenkette wird in Kleinbuchstaben umgewandelt.

Beispiel:

Ergebnis:

ich bin es

ltrim(Text)

Text

Entfernt die Leerzeichen am Anfang des Texts.

Beispiel:

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

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:

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:

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.

Ergebnis: 01.11.2024

monatsende(Datum)

 

Text

Liefert das Monatsende zum übergebenen Datum zurück

Beispiel:

Heute ist der 06.11.2024.

Ergebnis: 30.11.2024

kalenderwoche(Datum)

 

Text

Liefert die Kalenderwoche zum übergebenen Datum zurück

Beispiel:

Heute ist der 06.11.2024.

Ergebnis: 45

wochemonat(Datum)

 

Text

Liefert die Woche des übergebenen Monats zum übergebenen Datum zurück

Beispiel:

Heute ist der 06.11.2024.

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

Ergebnis: 06.12.2024

Ergebnis: 06.10.2024

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:

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

Deutsch

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

  1. Mit allen Parametern

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:

image-20241021-081725.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:

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

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

Verwenden Sie den Wert “Nein”.

Beispiele:

Aufruf der Funktion mit zwei Parametern:

Ausgabe:

  1. -2000776

  2. -2000777

  3. E-2000766

  4. E-2000775

  5. E-2000778

Ausgabe:

i. -2000776

ii. -2000777

iii. E-2000766

iv. E-2000775

v. E-2000778

Ausgabe:

I. -2000776

II. -2000777

III. E-2000766

IV. E-2000775

V. E-2000778

Ausgabe:

a. -2000776

b. -2000777

c. E-2000766

d. E-2000775

e. E-2000778

Ausgabe:

A. -2000776

B. -2000777

C. E-2000766

D. E-2000775

E. E-2000778

Aufruf der Funktion mit drei Parametern:

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:

Ausgabe:

1.)-2000776

2.)-2000777

3.)E-2000766

4.)E-2000775

5.)E-2000778

Ausgabe:

(1.)-2000776

(2.)-2000777

(3.)E-2000766

(4.)E-2000775

(5.)E-2000778

Aufruf mit fünf Parametern:

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:

In unserem Beispiel möchten wir nun eine Variable im Dokument einfügen ohne die @-Syntax zu verwenden. Hierfür verwenden wir folgenden Aufruf: