Textfeld

Verwendung und Eigenschaften

Für die meisten Anwendungsfälle von Eingabemasken stellen die Textfelder die wichtigsten Steuerelemente dar. Diese dienen primär der Eingabe von Freitexten, können allerdings mit umfassenden Formatierungs- und Validierungsoptionen versehen werden. Dadurch lassen sich mithilfe von Textfeldern unterschiedlichste Anwendungsfälle zur Eingabe unterschiedlicher Daten abbilden. Einen Spezialfall stellt die Anwendung des so genannten Nummernservers dar, der den Inhalt eines Textfeldes automatisch, basierend auf einem definierten Schema, füllt.

Docusnap-Editor-Textfeld

Unten stehende Tabelle listet die spezifischen Eigenschaften von Textfeldern inklusive einer kurzen Erläuterung auf:

Spezifische Eigenschaften von Textfeldern
AcceptsTabLegt fest, ob die Eingabe von Tabulatoren zulässig ist oder nicht.
CharacterCasingDefiniert, ob eingegebene Texte automatisch in Groß-, Klein- oder Normalschreibung dargestellt werden
FieldnameGibt die verknüpfte Spalte in der jeweiligen Tabelle der aktuellen Docusnap-Datenbank an. Die zugehörige Tabelle ergibt sich aus dem mit der Eingabemaske verknüpften Metaobjekt. Im Gegensatz zu den meisten anderen Steuerelementen ist bei Textboxen die Verknüpfung auf nahezu alle Datentypen in der Datenbank möglich. Dabei ist allerdings auch auf eine Validierung der eingegebenen Daten zu achten, da es ansonsten zu Fehlern kommen kann.
MultilineLegt fest, ob ein Textfeld als eine einzelne Zeile oder aus mehreren Zeilen bestehen soll. In ein einzeiliges Textfeld können weder Zeilenumbrüche eingefügt werden noch kann diese in ihrer vertikalen Ausdehnung verändert werden. Mehrzeilige Textfelder empfehlen sich vor allem zur Eingabe längerer Texte, wobei dabei darauf zu achten ist, dass auch die entsprechenden Datenbankfelder ausreichend groß ausgelegt werden (varchar(1500), TEXT oder MEMO)
PasswordWird diese Eigenschaft aktiviert, so werden alle Eingaben durch * ersetzt. Zusätzlich befindet sich auf der rechten Seite der Textbox bei aktivierter Eigenschaft eine Schaltfläche. Diese Schaltfläche dient zur Darstellung des Inhaltes im Klartext.
ReadOnlyMithilfe dieser Eigenschaft wird angegeben, ob ein Textfeld zur Ein- und Ausgabe oder lediglich zur Ausgabe von in der Datenbank gespeicherten Daten bestimmt ist. Ist diese Eigenschaft aktiviert, so ist es nicht möglich, die Daten der verknüpften Datenspalte zu ändern. Sinnvoll ist diese Eigenschaft immer dann, wenn es um vordefinierte Daten geht, die nicht verändert werden sollen. Allerdings ist auch zu beachten, dass die jeweiligen Daten auf anderem Wege in die Datenbank gelangen müssen, beispielsweise über Skripte oder den Inventarisierungsvorgang. Ein Anwendungsfall für diese Eigenschaft ergibt sich in Zusammenhang mit dem Nummernserver, da dieser die Inhalte automatisch generiert und diese von Benutzereingriffen geschützt sein sollten.
ScrollbarsLegt fest, ob und falls ja, welche Bildlaufleisten im mehrzeiligen Textfeld angezeigt werden. Ein Navigieren innerhalb eines Textfeldes ist zwar prinzipiell auch ohne entsprechende Bildlaufleisten mit Hilfe von Tastatur und Maus möglich, allerdings erleichtern die Bildlaufleisten diesen Vorgang erheblich.
ShowCopyButtonGibt an, ob im rechten Bereich des Textfeldes eine Schaltfläche zum Kopieren des aktuellen Inhaltes in die Zwischenablage angezeigt wird.
SystemInvisibleIst diese Eigenschaft aktiviert, wird das Textfeld während der Laufzeit der Eingabemaske nicht angezeigt, sondern mit einem vordefinierten Wert gefüllt, der über die Eigenschaft DefaultValue festgelegt werden kann. Sinnvoll ist dieses Vorgehen immer dann, wenn das Datenbankschema einen bestimmten statischen Wert benötigt, dieser allerdings nicht vom Benutzer eingegeben werden soll, beispielsweise die automatische Eintragung des jeweiligen Gerätetyps bei Eingabemasken auf Geräteebene.
TextAlignLegt die Ausrichtung des Textes fest, der im Eingabefeld dargestellt wird. Hierbei kann als Grundregel angesehen werden, dass Freitexte linksbündig und Zahlen, aufgrund der besseren Lesbarkeit, rechtsbündig ausgerichtet werden sollten.
TypeConstraintDefiniert spezifische Validierungsoptionen für den Inhalt eines Textfeldes. Diese Möglichkeiten werden im unten stehenden Abschnitt und in einem eigenen Kapitel zum Nummernserver im Detail erläutert.

Eigenschaft TypeConstraint

Diese Eigenschaft dient dazu, spezifische Validierungsoptionen für die Eingabe von Daten in ein bestimmtes Textfeld zu hinterlegen. Werden diese Validierungen beim Speichern eines Datensatzes über die jeweilige Eingabemaske nicht erfüllt, so wird der jeweilige Speichervorgang abgebrochen und stattdessen eine definierte Fehlermeldung ausgegeben. Zur Überprüfung stehen bereits einige vordefinierte Typen zur Verfügung, die in folgender Tabelle kurz erläutert werden.

InhaltstypBeschreibung
TextBei Auswahl des Inhaltstyps Text können Freitexte in das Textfeld eingegeben werden, die gegebenenfalls vor der Speicherung weiter geprüft werden.
- Normaler Text: Ermöglicht die Eingabe eines beliebigen Textes ohne weitere Validierung
- IP-Adresse: Prüft, ob es sich beim eingegebenen Text um eine gültige IP-Adresse handelt
- Subnetz-Maske: Prüft, ob es sich beim eingegebenen Text um eine gültige Subnetz-Maske handelt
- MAC-Adresse: Prüft, ob es sich beim eingegebenen Text um eine gültige MAC-Adresse handelt, wobei entweder gar keine Trennzeichen zwischen den einzelnen Gruppen verwendet werden können oder die Verwendung von : und - als Trennzeichen zulässig ist.
- Verzeichnis: Prüft, ob es sich um einen gültigen Verzeichnispfad handelt. Ist zusätzlich das Kontrollkästchen mit der Bezeichnung Verzeichnis muss existieren aktiviert, so wird auch überprüft, ob das angegebene Verzeichnis tatsächlich auf der Festplatte oder der Freigabe existiert.
- Laufwerkbuchstabe: Prüft, ob ein gültiger Laufwerksbuchstabe eingegeben wurde. Es wird nicht überprüft, ob das angegebene Laufwerk auch tatsächlich existiert und verbunden ist.
GanzzahlGibt an, dass das Textfeld zur Eingabe einer Ganzzahl bestimmt ist. Im Zusammenhang mit Zahlenwerten kann zusätzlich auch das Feld Faktor ausgefüllt werden, welches die Zahl beim Speichervorgang und bei der Ausgabe mit diesem Faktor multipliziert bzw. dividiert. In der Datenbank wird der um den Faktor multiplizierte Wert gespeichert. In diesem Fall empfiehlt es sich den gleichen Faktor auch bei den Metatabellen in der entsprechenden Spalte anzulegen, um eine einheitliche Darstellung zwischen Eingabemasken und Listen zu erreichen.
ByteGibt an, dass das Textfeld zur Eingabe eines Byte-Wertes bestimmt ist.
MemoGibt an, dass das Textfeld zur Eingabe eines Textes im Memo-Format bestimmt ist.
DezimalzahlGibt an, dass das Textfeld zur Eingabe einer Dezimalzahl bestimmt ist. Dabei ist die Verwendung eines Faktors entsprechend zu einer Ganzzahl möglich.
GUIDGibt an, dass das Textfeld zur Eingabe einer GUID bestimmt ist
VersionGibt an, dass der eingegebenen Text in diesem Textfeld das Format einer Version haben muss. Beispielsweise: 7.0.219.4

Zusätzlich zu den vordefinierten Typen können auch völlig frei definierte Überprüfungsregeln angewendet werden. Solche Regeln werden auf Basis von regulären Ausdrücken (Regular-Expressions, RegEx) in Docusnap eingegeben, wodurch sich nahezu alle Überprüfungen abbilden lassen. Einführungen zu regulären Ausdrücken können auf zahlreichen Webseiten gefunden werden, beispielsweise bei Microsoft unter http://msdn.microsoft.com/de-de/library/az24scfc.aspx oder bei Wikipedia unter http://de.wikipedia.org/wiki/Regex. Zum Testen und Optimieren regulärer Ausdrücke ist die Software Expresso vom Hersteller Ultrapico zu empfehlen, welche unter http://www.ultrapico.com/Expresso.htm bezogen werden kann.

Docusnap-Editor-Einstellungen-fuer-den-Inhalt-der-Textbox

Einen Sonderfall bei den Typen eines Textfeldes stellt der sogenannte Nummernserver dar, der im Zuge des Kapitels Nummernserver im Detail erläutert wird.

Beispiele für reguläre Ausdrücke

Durch reguläre Ausdrücke kann die Eingabe in einem Textfeld überprüft werden. Der eingegebene Text wird mit dem definierten Muster verglichen. Dadurch kann sichergestellt werden, dass es sich bei dem eingegeben Text um z.B. eine E-Mail-Adresse, eine positive Zahl etc. handelt.

Zusammensetzung von regulären Ausdrücken:

Die Buchstaben, Ziffern und Zeichen, die enthalten sein sollen, werden in [] Klammern geschrieben. Durch die Zeichen ?,+,* kann festgelegt werden, wie oft diese Buchstaben, Ziffern und Zeichen ausgegeben werden sollen.

ZeichenBedeutung
[A-Za-z]Durch diesen Ausdruck wird überprüft, ob sich an dieser Stelle in der Eingabe ein beliebiger lateinischer Buchstabe befindet.
[0-9]Um an einer bestimmten Stelle eine beliebige Ziffer in der Eingabe zu finden, wird dieser Ausdruck verwendet.
?Die voranstehenden Buchstaben, Ziffern oder Zeichen sind optional. Sie können einmal vorkommen, müssen es aber nicht, d. h. der Ausdruck kommt null- oder einmal vor.
+Die voranstehenden Buchstaben, Ziffern oder Zeichen müssen mindestens einmal vorkommen, dürfen aber auch mehrfach vorkommen.
*Die voranstehenden Buchstaben, Ziffern oder Zeichen dürfen beliebig oft (auch gar nicht) vorkommen.
^Um den Anfang des Musters zu identifizieren, wird das Zeichen ^ gesetzt.
$Das $ ist das Gegenstück zum ^. Es bezieht sich auf das Ende des Musters, das mit dem Ende des Textes übereinstimmen muss. In einem regulären Ausdruck können auch mehrere Endpunkte definiert werden, wenn die einzelnen Ausdrücke mit einem Logischen Oder
.Um an einer Stelle auf ein beliebiges Zeichen (außer für einen Zeilenumbruch) zu prüfen, wird der Punkt verwendet.
-Der Bindestrich wird innerhalb von Zeichenklassen als Zeichen interpretiert. Er dient dort zur Angabe von Zeichenbereichen.
\Soll im Muster ein Zeichen, das eine bestimmte Bedeutung hat, verwendet werden, z.B. der Punkt als Satzzeichen, anstatt der Punkt als Ausdruck für ein beliebiges Zeichen, so muss es mit einem vorangestellten \ escaped werden.
()Mit runden Klammern können Ausdrücke gruppiert werden.

Beispiele:

Prüfung, ob eine Zahl positiv ist:
^[0-9]+((.[0-9]+$)|(.[0-9]+$)|$)

Prüfung, ob der eingegebene Text eine E-Mail-Adresse repräsentiert:
^[\w-.]+@([\w-]+.)+[\w-]+$