Platzhalter
Zuletzt geändert: 05.06.2023 21:07

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 #

Wert Beschreibung
grundwerte.firmenstamm.Firma Firma
grundwerte.firmenstamm.Strasse Straße
grundwerte.firmenstamm.PLZ PLZ
grundwerte.firmenstamm.Ort Ort
grundwerte.firmenstamm.Hompage Firmen Hompage
grundwerte.firmenstamm.Tel Telefonnummer
grundwerte.firmenstamm.Fax Faxnummer
grundwerte.Bank.1.IBANgrundwerte.Bank.1.BICgrundwerte.Bank.1.NAME Erste 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 #

Caption Feldbeschriftung in Eingabemasken
GroupHeader Gruppenüberschrift in Eingabemasken
Field Eingabefeld
FieldEditing aktives Eingabefeld (Änderungsmodus)
FieldSearching aktives Eingabefeld (Suchmodus)
FieldViewing aktives Eingabefeld (Ansichtsmodus)
FieldReadonly Eingabefeld (schreibgeschützt)
FieldHighlighted Eingabefeld (hervorgehoben)
GridHeader Tabellen-Überschrift
Grid Tabellen-Zellen
GridSelected Tabellenelemente ausgewählt
Sidebar
TreeView Baum-Darstellung (z.B. Merkmalbaum)
Menu Menüleiste
Title Titel in Dialogfenster
SubTitle Untertitel in Dialogfenster
SmallTitle Kleine Schrift
Surface Oberfläche
Accent Akkzentfarbe
Background Hintergrundfarbe
BackgroundDisable Hintergrund deaktiviert
Code Programmcode (feste Schriftbreite)

Eigenschaften #

Color Schriftfarbe
ColorDisabled Schriftfarbe (deaktiviert)
ColorHilighted Schriftfarbe (hervorgehoben)
BackgroundColor Hintergrundfarbe
BackgroundColorHilighted Hintergrundfarbe (hervorgehoben)
BackgroundColorDisabled Hintergrundfarbe (deaktiviert)
IconSize Symbolgröße (dpi skaliert)
IconSizeNative Symbolgröße (nicht skaliert)
FontFamily CSS-Fontfamilie
colorCSS CSS-Code nur Farben
CSS CSS-Code für Schrift und Farbe
disabledCSS CSS-Code (deaktiviert)
hilightedCSS CSS-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 Orden angezeigt werden, gibt man property.folder.desktop ein. Als Ausgabe wird C:\Users\Mustermann\Desktop angezeigt.

Folder #

Wert Beschreibung
folder.desktop Desktop
folder.windows Speicherort Windows
folder.windowstemp temporäre Daten Windows
folder.eulandatemp temporäre Daten EULANDA
folder.exe Speicherort der exe
folder.client Hintergrundfarbe (deaktiviert)
folder.clientblobcache
folder.clientcache Symbolgröße (nicht skaliert)
FontFamily CSS-Fontfamilie
folder.appdata Verzeichnis der App-Einstellungen
folder.cdburn CSS-Code für Schrift und Farbe
folder.mydocuments Verzeichnis eigene Dokumente
folder.personal Verzeichnis “Dokumente”
folder.internetcache
folder.cookies Verzeichnis “Cookies”
folder.personal Verzeichnis “Dokumente”
folder.history Verlauf des Internet Explores
folder.localappdata Verzeichnis der temporären Webbrowser Daten
folder.programfiles Verzeichns der Programme
folder.commonappdata Dateiverzeichnis mit Applikationsdaten aller Benutzer
folder.mypictures Verzeichnis “eigene Bilder”
folder.myvideo Verzeichnis “eigene Videos”
folder.programfilescommon Verzeichnis “gemeinsamer Dateien”
folder.commondocuments Verzeichnis “gemeinsamer Dokumente”
folder.commonadmintools Verzeichnis “gemeinsame Admistrative Tools”
folder.admintools
folder.startup Verzeichnis “Autostart” der Programme
folder.datalinkdir Verzeichnis der Links für die ADO Datenquellen
folder.udllocalappdata

Global #

Name Bedeutung
global.primarylang Hauptsprache des Mandanten
global.primarylocal
global.uilang Benutzersprache
global.defprintlang
folder.exe Speicherort der exe
global.defprintlocal

Client #

Name Beschreibung
client.number Benutzernummer

Exe #

Name Beschreibung
exe.mainversion Hauptversion
exe.subversion Untertversion
exe.release Ausgabe der Haupt-/ Nebenversion
exe.build interne Nummer der exe-Zusammenstellung
exe.version exe Version
exe.fullversion Version des Hauptprogrammes mit Build
exe.udlfilename
exe.fullname

Wts #

Name Beschreibung
wts.clientname Benutzername
wts.clientaddress Benutzeradresse
wts.domainname Domain Name
wts.clientdirectory

IExplorer #

Name Beschreibung
iexplorer.version Explorer Version
iexplorer.majorversion Versionsnummer

Templates #

EULANDA bietet ab Version 6 die Möglichkeit von Datenobjekt-Bezogenen oder allgemeinen Text-Vorlagen. Je nach Auststattungslinie 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,"")
Name Beschreibung
template.cnsoft.toClipboard Vorlage von “Adresse in Zwischenablage”
template.cnsoft.EmailDisclaimer Textblock 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.

Name Beschreibung
feature.headings Feature “Titelverwaltung”
feature.partslists Feature “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.

Systemvariabeln #

Daneben sind noch folgende zwei Systemvariablen zulässig.

Name Beschreibung
system.today Tagesdatum im Format dd.mm.yyyy
system.today_iso Tagesdatum 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.username Windows-Benutzername
system.pcname Name des PC
system.ismorning Fü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