Feld-Einstellungen #
Jedes Datenbankfeld in EULANDA besitzt eine Vielzahl von Eigenschaften, die zum Beispiel die Darstellung oder das Verhalten beeinflussen können. Auf die einzelnen Eigenschaften wird ausführlich weiter unten eingegangen. Wir beginnen mit einem Überblick, wo diese Eigenschaften in der SQL-Registry zu finden sind, wie die Eigenschaften von anderen Objekten und Feldklassen vererbt werden und wo man sie als Admin ändern kann, damit sie auch bei einem Programmupdate nicht überschrieben werden.
Datenbankfelder #
Die Vorgaben für die Feldeigenschaften liegen unter:
\OBJECTS\DATAOBJECTS\<Objekt-Name>\FIELDS\<Feldname>
Bei den Feldnamen handelt es sich um die tatsächlichen Namen der SQL-Tabellen-Spalten.
Diese dürfen an dieser Stelle nicht überschrieben werden. Benutzeranpassungen können aber im Benutzerbereich der Registry vorgenommen werden:
\USER\.ALLUSER\OBJECTS\DATAOBJECTS\<Objekt-Name>\FIELDS\<Feldname>
Der jeweilige Registry-Schlüssel muss dazu ggf. angelegt werden.
Für Felder, die nicht unter dem spezifischen Datenobjekt ( \OBJECTS\...
oder \USER…
) definiert sind, wird das Allgemeinen Datenobjekt herangezogen:
\OBJECTS\DATAOBJECTS\Eulanda.Allgemein\FIELDS\<Feldname>
Feldklassen #
Um die Pflege der Eigenschaften zu können sogenannte Feldklassen definiert und einem Feld zugeordnet werden.
Diese befinden sich unter
\OBJECTS\FIELDCLASSES\<Feldklasse>
bzw. für Benutzeranpassungen
\USER\.ALLUSER\OBJECTS\FIELDCLASSES\<Feldklasse>
Die Feldklasse muss dem jeweiligen Feld (siehe Tabellenfelder) über die Eigenschaft “FieldClass” zugeordnet werden.
Im Benutzerbereich
Feldklassen im Lieferumfang beginnen mit “Eulanda.”. Eigene Feldklassen müssen mit “user.” beginnen.
Kontext-Information #
Ein nützliches Werkzeug zum Erkunden der bestehenden Eigenschaften ist die “Kontext Info”. Diese wird über das “Hilfe”-Menü bzw. die Tastenkombination STRG+F9
eingeblendet. Es handelt sich hierbei um ein vom Hauptfenster losgelöstes Fenster. Wenn Sie nun ein beliebiges Maskenfeld aktivieren (z.B. durch Mausklick) werden die Eigenschaften im Kontext-Info aufgeführt.
Beispiel für das Feld “Name 2” #
Benennung und Darstellung #
DisplayFormat #
Anzeigeformat für Zahlen- und Datumswerte - beispielsweise dd.mm.yyyy
oder #,##0.00
Die Formatmasken sind im Anhang des Haupthandbuchs beschrieben: Formatmaske | Handbuch (eulanda.eu)
Hinweis: die Masken für Datumsfelder unterscheiden sich teilweise von den Microsoft-Formatmasken (.NET).
EditMode #
Suchen #
SearchMode #
Für jedes Feld kein eine bestimmter Suchmodus vorgegeben werden.
Suchmodus | Beschreibung |
---|---|
x* |
Text am Anfang des Feldes suchen |
*x* |
Text irgendwo im Feld suchen |
*x |
Text am Ende des Feldes suchen |
##x |
Spezialsuche (s.u.) dauerhaft aktivieren |
=x |
Exakte Suche |
°x |
Umkreissuche für numerische Werte. Gibt Datensätze kleiner und größer, als die eingegebene Nummer zurück |
SpecialSearch #
Pro Feld kann hier ein besonderer Such-Algorithmus definiert werden. Dieser kann bei der Sucheingabe durch zwet Raute-Zeichen ##
vor dem eigentlichen Suchtext aktiviert werden. Die Sondersuche kann über Einstellung von “SearchMode” (s.o.) auch als Standard hinterlegt werden, sodass auf die Eingabe der Raute-Zeichen verzichtet werden kann.
Der Suchalgorithmus wird als SQL-Bedingung formuliert. Hier bei kann die Platzhalter %'x'%
oder '%x%'
verwendet werden; diese werden durch dein Suchtext ersetzt. Eventuell eingegebene Sonderzeichen, wie das einfache Anführungszeichen, welches zu Problemen bei der Ausführung führen würde, werden SQL-konform ersetzt (“Escaping”).
Beispiel #
Name1 like '%'+'%x%'+'%' or Name2 like '%'+'%x%'+'%' or Name3 like '%'+'%x%'+'%'
hierbei wird der Suchtext in allen drei Namenszeilen gesucht. Der Ausdruck muss hier wegen des Austauschalgorithmus so formuliert werden, wie angegeben, weil das Prozentzeichen sowohl für die LIKE-Suche, als auch als Platzhalter benötigt wird.
VBScript-Funktion #
Alternativ kann die Suche auch als Skript-Funktion in einer Benutzer-Bibliothek implementiert werden.
' fürhrt dieselbe Suche aus, wie im SQL-Beispiel
Function SpecialSearch_MeinTest(FieldName, ObjectName, SuchText)
dim Suche
' like '%<SuchText>%'
Suche = " like '%" & Replace(SearchValue, "'", "''") & "%'"
SpecialSearch_MeinTest = "Name1 " & Suche & " or Name2 " & Suche & " or Name3 " & Suche
End Function
Die Funktion muss unter \SYSTEM\LIBS
in einer userlib hinterlegt werden und kann dann über libcall:userlib.SpecialSearch_MeinTest
als Wert für “SpecialSearch” hinterlegt werden.
SpecialSearchLanguage #
Diese Eigenschaft ist veraltet und wird nicht mehr unterstützt