Textvorlagen
Zuletzt geändert: 04.04.2024 16:45

Textvorlagen #

EULANDA unterstützt in vielen Bereichen Textvorlagen die über Platzhalter direkt auf bestimmte Datenfelder zugreifen können.

Zum Beispiel kann der E-Mail-Text, der beim Mailen einer Rechnung erzeugt wird, eine persönliche Anrede und die Rechnungsnummern enthalten.

Daneben können auch allgemeine Daten, wie Firmenstammdaten oder das aktuelle Datum etc. eingebunden werden.

Als Platzhalter dient der Spaltenname der jeweiligen Datenbank-Tabelle. Dieser Spaltenname muss in Prozentzeichen eingeschlossen werden.

Beispiel: #
Vorlage Ausgabe
%Rechnungsadresse.Anrede%
anbei erhalten Sie die Rechnung %KopfNummer%.
Sehr geehrte Damen und Herren,
anbei erhalten Sie die Rechnung 20240123.

Falls Sie im Text ein Prozentzeichen als solches und nicht als Platzhalter ausgeben möchten, fügen einfach zwei Prozentzeichen ein (%%).

Wo finde ich die benötigten Feldnamen? #

Wenn Sie wissen möchten, wie ein bestimmtes Feld heißt, wählen Sie das entsprechende Feld in der Maske aus und drücken STRG+F9 für die Kontext-Info. Es erscheint dann ein neues Fenster. Hier finden Sie im Bereich “Edit Control” unter “Feldname” den echten Datenbankfeldnamen.

Daneben sind noch eine Vielzahl von weitere Platzhalter verfügbar, diese sind im Kapitel Globale Platzhalter dokumentiert.

Verknüpfte Tabellen #

Manchmal ist ein gewünschter Wert gar nicht direkt in der Tabelle, sondern nur in einer verknüpften Tabelle vorhanden. Zum Beispiel wird die Kundenanrede nicht in der Rechnung gespeichert, sondern nur in der verknüpften Adresse. Das Feld heißt in der Adresse “Anrede”. Aber %Anrede% steht in der E-Mail-Vorlage der Rechnung nicht zur Verfügung. Stattdessen können Sie aber über die Verknüpfung “Rechnungsadresse” auf alle Felder der zugehörigen Adresse zugreifen. In unserem Beispiel können Sie also mit %Rechnungsadresse.Anrede% auf die gesuchte Anrede zugreifen.

Vollständige Liste aller Verknüpfungen #

Die Verfügbarkeit ist abhängig von der eingesetzten EULANDA-Version und den verwendeten Modulen.

Mehrfach-Verknüpfungen sind nicht möglich.

Objekt Verknüpfungsname Zielobjekt Info
Eulanda.Adresse Vertreter Eulanda.Vertreter
Eulanda.Adresse Zahlungsbedingung Eulanda.ZahlungsBedingung
Eulanda.Angebot Adresse Eulanda.Adresse
Eulanda.Angebot Lieferadresse Eulanda.Adresse
Eulanda.Angebot Vertreter Vertreter ab v2024
Eulanda.AngebotPos Angebot Eulanda.Angebot
Eulanda.AngebotPos Artikel Eulanda.Artikel
Eulanda.ArtikelIdentBewegung ArtikelIdent Eulanda.ArtikelIdent
Eulanda.Auftrag Adresse Eulanda.Adresse
Eulanda.Auftrag Lieferadresse Eulanda.Adresse
Eulanda.Auftrag Vertreter Vertreter ab v2024
Eulanda.AuftragPos Artikel Eulanda.Artikel
Eulanda.AuftragPos Auftrag Eulanda.Auftrag
Eulanda.Inventuraufnahme AbAdresse Eulanda.Adresse
Eulanda.Inventuraufnahme TrAdresse Eulanda.Adresse
Eulanda.Inventuraufnahme ZuAdresse Eulanda.Adresse
Eulanda.InventuraufnahmePos Artikel Eulanda.Artikel
Eulanda.InventuraufnahmePos Inventuraufnahme Eulanda.Inventuraufnahme
Eulanda.Jumbo Artikel Eulanda.Artikel
Eulanda.JumboPos Artikel Eulanda.Artikel
Eulanda.JumboPos Jumbo Eulanda.Jumbo
Eulanda.KasseBeleg Adresse Eulanda.Adresse
Eulanda.KasseBelegZeile Artikel Eulanda.Artikel
Eulanda.KasseBelegZeile KasseBeleg Eulanda.KasseBeleg
Eulanda.Kontakt Adresse Eulanda.Adresse
Eulanda.KrArtikel Kreditor Eulanda.Kreditor
Eulanda.KrAuftrag Lieferadresse Eulanda.Adresse
Eulanda.KrAuftrag Kreditor Eulanda.Kreditor
Eulanda.KrAuftragPos Artikel Eulanda.Artikel
Eulanda.KrAuftragPos KrAuftrag Eulanda.KrAuftrag
Eulanda.LagerBelegPos Artikel Eulanda.Artikel
Eulanda.LagerBelegPos LagerBeleg Eulanda.LagerBeleg
Eulanda.LagerBuchungsZeile BuchungsSatz Eulanda.LagerBuchungsSatz
Eulanda.LagerKonto Artikel Eulanda.Artikel
Eulanda.LagerKonto LagerOrt Eulanda.LagerOrt
Eulanda.Lagerplatz Artikel Eulanda.Artikel
Eulanda.Lagerplatz LagerOrt Eulanda.LagerOrt
Eulanda.Lieferschein LieferAdresse Eulanda.Adresse
Eulanda.LieferscheinPos Artikel Eulanda.Artikel
Eulanda.LieferscheinPos Lieferschein Eulanda.Lieferschein
Eulanda.OffenePosten RechnungsAdresse Eulanda.Adresse
Eulanda.Rechnung RechnungsAdresse Eulanda.Adresse
Eulanda.Rechnung Vertreter Vertreter ab v2024
Eulanda.RechnungPos Artikel Eulanda.Artikel
Eulanda.RechnungPos Rechnung Eulanda.Rechnung
Eulanda.RechnungZe OffenePosten Eulanda.OffenePosten
Eulanda.RechnungZe Rechnung Eulanda.Rechnung
Eulanda.SepaMandat Adresse Eulanda.Adresse
Eulanda.Umbuchung AbAdresse Eulanda.Adresse
Eulanda.Umbuchung TrAdresse Eulanda.Adresse
Eulanda.Umbuchung ZuAdresse Eulanda.Adresse
Eulanda.UmbuchungPos Artikel Eulanda.Artikel
Eulanda.UmbuchungPos Beleg Eulanda.Umbuchung
Eulanda.WarenbewegungPos Artikel Eulanda.Artikel
Eulanda.WarenbewegungPos Warenbewegung Eulanda.Warenbewegung
Eulanda.Wareneingang AbAdresse Eulanda.Adresse
Eulanda.Wareneingang TrAdresse Eulanda.Adresse
Eulanda.Wareneingang ZuAdresse Eulanda.Adresse
Eulanda.WareneingangPos Artikel Eulanda.Artikel
Eulanda.WareneingangPos Wareneingang Eulanda.Wareneingang

Verknüpfungsnamen per SQL abfragen #

Die jeweils aktuelle Liste der Verknüpfungen steht in Version 2024 auch als SQL-Sicht zur Verfügung:

SELECT * dbo.EXTRA_DATAOBJECT_LINKS where LINK_TYPE_DESC = 'ONE_TO_ONE'

Ausgabeformatierung #

Speziell bei den E-Mail-Vorlagen ist es möglich, Formatierungsoptionen anzugeben. Diese werden vor den Feldnamen gesetzt und mit einem Doppelpunkt getrennt. Es ist auch möglich mehrere Formatierungsoptionen anzugeben. Diese werden dann auch wieder durch einen Doppelpunkt voneinander getrennt. Es wird aber jeweils nur eine Formatierungsoption derselben Art ausgeführt.

Zahlenformat angeben FF<formatmaske> siehe Formatmaske, außerdem kann SQL angegeben werden. Die Zahl wird dann als SQL-Zahlenwert ausgegeben. %FF#,0.00:VkBrutto% Formatiert den VK-Brutto mit festen zwei Nachkommastellen und Tausendertrennzeichen
Datumsformat setzen FD<formatmaske> siehe Formatmaske, außerdem kann KW oder KW YYYY angegeben werden zur Darstellung der Kalenderwoche. Wird der Doppelpunkt zur Formatierung von Uhrzeiten benötigt, so muss stattdessen das Pipe-Symbol verwendet werden, da der Doppelpunkt bereits als Trennung der Formatierungsoptionen verwendet wird. %FDdd.mm.:Datum% zeigt nur den Tag und Monat des Datums an.
Matchcode-Modus M Umwandlung in Großbuchstaben und Umwandlung der Umlaute (A -> AE) %M:Strasse% - Strasse in Großbuchstaben
Länge begrenzen L<Länge> Der Text wird auf die Länge gekürzt. Abhängig von der Ausrichtung (siehe folgende Zeilen). wird der Text an Anfang, am Ende oder an beiden Seiten abgeschnitten. %>:L20:Ort% Der Ort wird auf 20 Zeichen begrenzt und rechtsbündig ausgegeben
Linksbündig < Standardeinstellung, nur zusammen mit Längenangabe
Rechtsbündig > nur zusammen mit Längenangabe
Zentriert ^ nur zusammen mit Längenangabe
Verschieben nach Rechts >> Am Ende des Textes wird ein Zeichen abgeschnitten. Falls mehrere Zeichen abgeschnitten werden sollen, kann eine Längenangabe angegeben werden.
Verschieben nach Links << Am Anfang des Textes wird ein Zeichen abgeschnitten. Falls mehrere Zeichen abgeschnitten werden sollen, kann eine Längenangabe angegeben werden
Einfache Anführungszeichen verdoppeln QS Zur Verwendung innerhalb von Text-Konstanten einer Programmiersprache
Doppelte Anführungszeichen verdoppeln QD Zur Verwendung innerhalb von Text-Konstanten einer Programmiersprache
Zeichen ersetzen R<Suchzeichen><Ersetzungszeichen> Ersetzt alle Zeichen durch die Ersetzungszeichen an der selben Stelle der Ersetzungszeichen. Die Länge der Zeichenfolgen muss gleich sein. %F123xyz:KopfNummer% - ersetzt die Ziffern 1,2,3 durch die Buchstaben x,y,und z
XML-Kodierung XML XML-Konforme Umwandlung von Spitzen Klammern etc.
URL-Kodierung URL Verwendung innerhalb von URLs

Einfache Bedingungen #

Manchmal möchte man einen bestimmten Textblock nur drucken, wenn ein Feld nicht leer ist oder einen bestimmten Inhalt hat. Um dies zu erreichen, stellt man ein Fragezeichen vor den Wert. Das Ende dieses Textblockes wird durch ein einzelnes Fragezeichen in Prozentzeichen %?% gekennzeichnet. In eine Programmiersprache würde man dies einen WENN-DANN oder IF-THEN-Befehl nennen.

Zum Beispiel wird im Folgenden das Wort “Bauvorhaben” zusammen mit dem Inhalt des Objekt-Feldes nur dann ausgegeben, wenn auch das Feld Objekt gefüllt ist:

%?Objekt% Bauvorhaben: %Objekt% %?%

Es ist auch möglich einen Textblock auszugeben für den Fall, dass Objekt nicht gesetzt ist (IF-THEN-ELSE). Dies wird durch das Fragezeichen und Pipe-Symbol erreicht %?|%.

%?Objekt% Bauvorhaben: %Objekt% %?|% Es wurde kein Bauvorhaben angegeben %?%

Vergleichsoperatoren #

Es ist möglich einfache Vergleiche durchzuführen. Hierzu wird nach dem Feldname der Operatir (z.B. Gleichheitszeichen) und der Vergleichswert angegeben %?<feldname><Operator><Wert>%. Der Vergleich erfolgt immer unabhängig von Groß-/Kleinschreibung.

Operator Beschreibung
= Gleichheit
^= Übereinstimmung des Textanfangs
$= Übereinstimmung des Textendes
*= Text ist irgendwo enthalten
#= Text in Liste - die einzelnen Elemente müssen durch Leerzeichen getrennt sein

Die Textblöcke können sich hierbei auch auf mehrere Zeilen erstrecken und in einem solchen Textblock können sich weitere Bedingungen befinden.

Spezielle Bedingung für numerische Daten sind zur Zeit nicht möglich.

Globale Optionen für besondere Kodierung #

Die Werte aus der Datenbank werden normalerweise in den Texteingefügt, wie sie sind. eine spezielle Umwandlung von Sonderzeichen erfolgt hierbei nicht. Dies ist bei den E-Mail-Vorgaben normalerweise auch nicht notwendig. Werden die Textvorlagen aber zum Beispiel zum Erzeugen von XML-Dokumenten verwendet, so müssen bestimmte Sonderzeichen umgewandelt werden.

Hierzu kann am Anfang der Vorlage eine Kodierungs-Direktive gesetzt werden.

Direktive Beschreibung
::XML:: XML-Kodierung - Spitze Klammern und kaufmännisches Und & werden kodiert
::URL:: Kodierung nach RFC 1738
::QUOTE:: Doppelte Anführungszeichen " werden gedoppelt
::SQUOTE:: Einfache Anführungszeichen ' werden gedoppelt
::RTF:: Umwandlung in ein Richtext-Fragment
::VBS:: Umwandlung in eine VBScript-Textkonstante. Zeilenumbrüche werden in vbCrLf umgewandelt
::PRINTF:: Backslash und Prozentzeichen werden gedoppelt und TAB, CR und LF werden als \v \r \n kopidert
::MDTAB:: Markdown-Tabelle. Das Pipe-Symbol `

Für Entwickler #

Die zugrundeliegende Austauschfunktion steht Entwicklern auch als iScript-Methode “ellib.ReplaceObjectValues” zur Verfügung.

Im Folgenden wird eine Vorlage verwendet, um die Adresse mit der ID 956 zu formatieren und anzuzeigen:

option explicit

dim s
const Vorlage = "%Match% - %Land%-%PLZ% %Ort%"
s = ellib.ReplaceObjectValues(Vorlage, "Eulanda.Adresse", 956, "")
msgbox s