Feld für Groß-/Kleinschreibung formatieren - FAQ-Base

From The Document Foundation Wiki
< Faq‎ | Base‎ | 134
Jump to: navigation, search

Wie kann ich ein Feld für Groß- bzw. Kleinschreibung formatieren?

In diesem Beispiel soll die Eingabe in das Feld "Name" ganz mit Großbuchstaben und in das Feld "Vorname" mit nur dem ersten Buchstaben als Großbuchstaben erfolgen.

Zunächst knn es sinnvoll sein, die relevanten Felder der Tabelle auf den Feldtypen "Text [VARCHAR_IGNORECASE]" einzustellen. Bei Suchanfragen an diese Felder wird dann nicht mehr zwischen Groß- und Kleinschreibung unterschieden.

Es gibt zwei verschiedene Lösungen, die die korrekte Eingabe in die Felder ermöglichen.

Verwenden eines maskierten Feldes

Wählen Sie im Einstiegsformular das Maskiertes Feld. Unter Maskiertes Feld > Eigenschaften > Allegmein > Eingabemaske können die Codes vorbestimmt werden, die letztlich eingegeben werden dürfen.

Für das Feld "Name" werden in die Eingabemaske so viele große A eingegeben, wie maximal an Buchstaben erlaubt ist. Damit werden auch klein eingegebene Buchstaben in Großbuchstaben überführt. Sollen auch Bindestriche und Apostrophe erlaubt sein, so ist stattdessen X zu wählen. Hier können jetzt alle druckbaren Zeichen angegeben werden - auch Zahlen.

Für das Feld "Vorname" wird als ertes ein A gefolgt von a in die Eingabemaske eingegeben. Es werden so viele a benötigt, wie maximal an Buchstaben erlaubt ist. a wandelt allerdings Großbuchstaben nicht in Kleinbuchstaben um. Auch hier ist es möglich, statt a x anzugeben. Hier können jetzt alle druckbaren Zeichen angegeben werden - auch Zahlen.

Verwendung eines Makros

Es ist möglich, ein Makro mit dem Ereignis Bei Fokusverlust von Textfeldern zu verknüpfen. Sobald der Cursor das Feld verlässt wird das Makro ausgelöst.

In den Prozeduren wird das betreffende Feld als Parameter angegeben. CapitaliseAll ändert alles in Großbuchstaben. CapitaliseFirst ändert nur das erste Zeichen in Großbuchstaben. Die Änderung wird so geschrieben, dass sie auch von Base als Veränderung am Formular wahrgenommen wird.

Sub CapitaliseFirst (oEvent AS OBJECT)<br />
DIM oFeld AS OBJECT<br />
DIM stText AS STRING<br />
oFeld = oEvent.Source.Model<br />
stText = Ucase (LEFT (oFeld.Text, 1)) & Lcase (MID (oFeld.text, 2))<br />
oFeld.BoundField.UpdateString(stText)<br />
End Sub<br />

Sub CapitaliseAll (oEvent AS OBJECT)<br />
DIM oFeld AS OBJECT<br />
DIM stText AS STRING<br />
oFeld = oEvent.Source.Model<br />
stText = Ucase (oFeld.Text)<br />
oFeld.BoundField.UpdateString(stText)<br />
End Sub<br />