Platzhalter
Zuletzt geändert: 28.02.2026 19:21

Globale Platzhalter #

An verschiedenen Stellen in der EULANDA® ist es möglich Texte dynamisch mit Platzhaltern zu erzeugen. Neben Platzhaltern die von Modulen abhängig sind gibt es eine Reihe von Platzhaltern die allgemein gültig sind. Diese sind unten aufgeführt.

Dieser Beitrag richtet sich an Administratoren, Poweruser und Entwickler. Teilweise sind Kenntnisse über die internen Strukturen von EULANDA®, wie über die SQL-Registry erforderlich.

Beispiele: #

  • E-Mail Vorgaben für Berichte Zu jedem Druck-Bericht kann eine Vorgabe für den E-Mail-Betreff und den Text der E-Mail hinterlegt werden. Neben Platzhaltern für das aktuelle Objekt (z.B. die Rechnung) können auch alle nachfolgenden globalen Platzhalter verwendet werden.

  • E-Mail-Signatur (global und persönlich) in den Einstellungen

  • Im Briefmodul (ab EULANDA® 7.5) Hierbei müssen die Platzhalter in geschweifte Klammern gestellt und ihnen ein kaufmännisches “Und” vorangestellt werden. Zum Beispiel &{grundwerte.firmenstamm.Firma}.

  • Archivierungsschnittstelle (optional) In der Archivierungsschnittstelle können Platzhalter u.A. zur Steuerung der Archivierung, zur Bestimmung des Export-Verzeichnisses und zur Erzeugung zusätzlicher Text- oder XML-Dateien, die für die Übergabe an ein externes Archivierungssystem benötigt werden.

  • Beim Erstellen von Kurzinfos (für Entwickler) In der Kurzinfo-Definition werden die Platzhalter jedoch in doppelte Dollar-Zeichen eingekleidet, statt in Prozentzeichen.

Grundwerte #

Grundsätzlich sind alle Text- und Zahlenwerte verfügbar, die in der Registry unterhalb des Schlüssels „\MODULES\Grundwerte“ liegen. Die einzelnen Unterschlüssel müssen im Platzhalter mit einem einzelnen Punkt getrennt werden und am Ende folgt - ebenfalls mit einem Punkt getrennt - der Name des Wertes, wie er in der Registry gespeichert ist.

Soll Beispielsweise die Bankleitzahl der zweiten im Firmenstamm hinterlegten Bankverbindung ausgegeben werden, verwendet man den Platzhalter grundwerte.Bank.2.BLZ da sich der gesuchte Wert „BLZ“ in der Registry unter „\MODULES\Grundwerte\Bank\2“ befindet

Über ein angehängtes “.ValueExists()” bzw. “.KeyExists()” lässt sich prüfen, ob der Wert resp. der Schlüssel überhaupt vorhanden ist.

Beispiele #

WertBeschreibung
grundwerte.firmenstamm.FirmaFirma
grundwerte.firmenstamm.StrasseStraße
grundwerte.firmenstamm.PLZPLZ
grundwerte.firmenstamm.OrtOrt
grundwerte.firmenstamm.HomepageFirmen Homepage
grundwerte.firmenstamm.TelTelefonnummer
grundwerte.firmenstamm.FaxFaxnummer
grundwerte.Bank.1.IBANgrundwerte.Bank.1.BICgrundwerte.Bank.1.NAMEErste im Firmenstamm hinterlegte Bank

Usergrundwerte #

Analog zu “Grundwerte” werden über “usergrundwerte” alle Registry-Werte aus dem Registry-Schlüssel “\USER<aktueller Benutzer>\Grundwerte” zur Verfügung gestellt. I.A. sind hier keine speziellen Werte von EULANDA® hinterlegt. Es dient vielmehr dazu eigene Werte oder auch Unterschlüssel anzulegen, die es erlauben benutzerabhängige Ausgaben zu realisieren (z.B. Unterschrift).

Über ein angehängtes “.ValueExists()” bzw. “.KeyExists()” lässt sich prüfen, ob der Wert resp. der Schlüssel überhaupt vorhanden ist.

Usergrundwerte.Controls hat eine Sonderrolle. Siehe nächster Absatz.

Usergrundwerte.Controls #

Hierüber lassen sich die aktuellen Farb- und Schrifteinstellungen abrufen. Die zurückgegebenen Werte sind so formatiert, dass diese in HTML/CSS verwendet werden können.

Der komplette Platzhalter hat folgenden Aufbau:

usergrundwerte.controls.<Element>.<Eigenschaft>

Beispielsweise gibt %usergrundwerte.controls.FieldEditing.FontFamily% die Schriftart eines eingabefeldes im Änderungsmodus zurück.

Eine Beispiel-HTML-Seite hierzu findet man in EULANDA® auf der Entwicklerseite (Schnellstartleiste / Systemverwaltung) unter “ControlProperties”.

Elemente #

CaptionFeldbeschriftung in Eingabemasken
GroupHeaderGruppenüberschrift in Eingabemasken
FieldEingabefeld
FieldEditingaktives Eingabefeld (Änderungsmodus)
FieldSearchingaktives Eingabefeld (Suchmodus)
FieldViewingaktives Eingabefeld (Ansichtsmodus)
FieldReadonlyEingabefeld (schreibgeschützt)
FieldHighlightedEingabefeld (hervorgehoben)
GridHeaderTabellen-Überschrift
GridTabellen-Zellen
GridSelectedTabellenelemente ausgewählt
Sidebar
TreeViewBaum-Darstellung (z.B. Merkmalbaum)
MenuMenüleiste
TitleTitel in Dialogfenster
SubTitleUntertitel in Dialogfenster
SmallTitleKleine Schrift
SurfaceOberfläche
AccentAkzentfarbe
BackgroundHintergrundfarbe
BackgroundDisableHintergrund deaktiviert
CodeProgrammcode (feste Schriftbreite)

Eigenschaften #

ColorSchriftfarbe
ColorDisabledSchriftfarbe (deaktiviert)
ColorHilightedSchriftfarbe (hervorgehoben)
BackgroundColorHintergrundfarbe
BackgroundColorHilightedHintergrundfarbe (hervorgehoben)
BackgroundColorDisabledHintergrundfarbe (deaktiviert)
IconSizeSymbolgröße (dpi skaliert)
IconSizeNativeSymbolgröße (nicht skaliert)
FontFamilyCSS-Fontfamilie
colorCSSCSS-Code nur Farben
CSSCSS-Code für Schrift und Farbe
disabledCSSCSS-Code (deaktiviert)
hilightedCSSCSS-Code (hervorgehoben)

Session #

Analog zu “Grundwerte” wird hier der Registry Schlüssel “\SESSION” samt der vorhandenen Unterschlüssel zurückgegeben, soweit dieser in der jeweiligen EULANDA-Version vorhanden ist. Bei dem Session-Schlüssel handelt es sich um “flüchtige” Einträge, die nicht zurück in den Server gespeichert werden. Diese sind also nur im aktuellen laufenden Prozess vorhanden.

Über ein angehängtes “.ValueExists()” bzw. “.KeyExists()” lässt sich prüfen, ob der Wert resp. der Schlüssel überhaupt vorhanden ist.

Properties (Mandanten Eigenschaften) #

Bei diesen Platzhaltern wird durch voranstellen von “properties.” der Pfad des jeweiligen Ordners angezeigt. Soll beispielsweise der Desktop-Ordner angezeigt werden, gibt man property.folder.desktop ein. Als Ausgabe wird C:\Users\Mustermann\Desktop angezeigt.

Folder #

WertBeschreibung
folder.desktopDesktop
folder.windowsSpeicherort Windows
folder.windowstemptemporäre Daten Windows
folder.eulandatemptemporäre Daten EULANDA®
folder.exeSpeicherort der exe
folder.clientHintergrundfarbe (deaktiviert)
folder.clientblobcache
folder.clientcacheSymbolgröße (nicht skaliert)
FontFamilyCSS-Fontfamilie
folder.appdataVerzeichnis der App-Einstellungen
folder.cdburnCSS-Code für Schrift und Farbe
folder.mydocumentsVerzeichnis eigene Dokumente
folder.personalVerzeichnis “Dokumente”
folder.internetcache
folder.cookiesVerzeichnis “Cookies”
folder.personalVerzeichnis “Dokumente”
folder.historyVerlauf des Internet Explores
folder.localappdataVerzeichnis der temporären Webbrowser Daten
folder.programfilesVerzeichnis der Programme
folder.commonappdataDateiverzeichnis mit Applikationsdaten aller Benutzer
folder.mypicturesVerzeichnis “eigene Bilder”
folder.myvideoVerzeichnis “eigene Videos”
folder.programfilescommonVerzeichnis “gemeinsamer Dateien”
folder.commondocumentsVerzeichnis “gemeinsamer Dokumente”
folder.commonadmintoolsVerzeichnis “gemeinsame Administrative Tools”
folder.admintools
folder.startupVerzeichnis “Autostart” der Programme
folder.datalinkdirVerzeichnis der Links für die ADO Datenquellen
folder.udllocalappdata

Global #

NameBedeutung
global.primarylangHauptsprache des Mandanten
global.primarylocal
global.uilangBenutzersprache
global.defprintlang
folder.exeSpeicherort der exe
global.defprintlocal

Client #

NameBeschreibung
client.numberBenutzernummer

Exe #

NameBeschreibung
exe.mainversionHauptversion
exe.subversionUnterversion
exe.releaseAusgabe der Haupt-/ Nebenversion
exe.buildinterne Nummer der exe-Zusammenstellung
exe.versionexe Version
exe.fullversionVersion des Hauptprogrammes mit Build
exe.udlfilename
exe.fullname

Wts #

NameBeschreibung
wts.clientnameBenutzername
wts.clientaddressBenutzeradresse
wts.domainnameDomain Name
wts.clientdirectory

IExplorer #

NameBeschreibung
iexplorer.versionExplorer Version
iexplorer.majorversionVersionsnummer

Templates #

EULANDA® bietet ab Version 6 die Möglichkeit von Datenobjekt-Bezogenen oder allgemeinen Text-Vorlagen. Je nach Ausstattungslinie können diese Mustervorlagen auch angepasst oder durch eigene Vorlagen ergänzt werden.

Beispiel #

Zeigt den Text an, der auch von “Adresse in Zwischenablage” erzeugt wird

ellib.ShowMessage _
ellib.ReplaceObjectValues("%template.cnsoft.toClipboard%","AD",13705,"")
NameBeschreibung
template.cnsoft.toClipboardVorlage von “Adresse in Zwischenablage”
template.cnsoft.EmailDisclaimerTextblock mit Haftungsauschluss für E-Mails

Features #

Abfrage, ob ein EULANDA-Feature aktiv ist. Der Aufbau sieht folgendermaßen aus:

feature.<Name des Features>

Es wird eine “0” für “Feature nicht aktiv bzw. nicht vorhanden” und “1” für “Feature ist aktiv” zurückgegeben. Den benötigten Featurenamen finden sie in den Einstellungen unter “Features und Programmfunktionen”. Nach Auswahl eines Features wird der “interne Name” dort im Bereich “zusätzliche Informationen” angezeigt.

NameBeschreibung
feature.headingsFeature “Titelverwaltung”
feature.partslistsFeature “Stücklisten”

Beispiel #

Über die Abfrage der vorhandenen Features werden beispielsweise im Kurzinfo “Aktive Vorgänge” (interner Name: cnsoft.Common.AktiveVorgaenge) auf der Startseite Teilbereiche ein- und ausgeblendet.

Systemvariablen #

Daneben sind noch folgende zwei Systemvariablen zulässig.

NameBeschreibung
system.todayTagesdatum im Format dd.mm.yyyy
system.today_isoTagesdatum im ISO-Format yyyy-mm-dd
system.today_isotime(ab 8.0.13) Tagesdatum und Uhrzeit im ISO-Format yyyy-mm-ddThh:mm:ss
system.timestamp(ab 8.0.13) Tagesdatum und Uhrzeit sortierfähig und dateinamenkonform yyyy-mm-ddThh_mm_ss
system.usernameWindows-Benutzername
system.pcnameName des PC
system.ismorningFür tageszeitabhängige Grußformel: 1, zwischen 5 Uhr morgens und 11:59, ansonsten 0

Windows-Umgebungsvariablen #

Diese lassen sich über den Prefix “env.” einbinden. Also beispielsweise “env.PATH” für die Suchpfade.

cnMessage-Tabelle (EULANDA® 8) #

Einträge aus der CnMessages-Tabelle können über die allgemeine Syntax:

%msg.Type.SubType%

abgerufen werden.

Daneben gibt es noch einige Sonderformen:

msgbox ellib.replacebasicvars("%msg.1047.256%") ' Januar`
`msgbox ellib.replacebasicvars("%msg.1500.ArtNr%") ' Artikelnummer`
`msgbox ellib.replacebasicvars("%msg.1043.FR%") ' Frankreich`
`msgbox ellib.replacebasicvars("%msg.10002%") ' Der Beleg ist bereits gebucht`
`msgbox ellib.replacebasicvars("%msg.1000.10002%") ' Der Beleg ist bereits gebucht