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