Frequently asked questions - Base

From The Document Foundation Wiki
< Faq‎ | Base
Jump to navigation Jump to search
This page is a translated version of the page Faq/Base/134 and the translation is 46% complete.
Other languages:
Deutsch • ‎English • ‎français • ‎italiano

Come posso formattare un campo in maiuscolo/minuscolo?

Questo è come avere, per esempio, la voce di un campo Cognome tutta in maiuscolo e per il campo Nome con solo la prima lettera in maiuscolo.

Ci sono due diverse soluzioni: usando un campo nascosto o una macro.

Qualunque soluzione verrà scelta, è utile definire i campi rilevanti nella tabella tenendo i dati nel formato Testo [VARCHAR_IGNORECASE]. Le ricerche o le selezioni dalle query saranno più facili perché verranno contate come irrilevanti.

Usando una maschera di campo

Nella forma d'entrata, scegliete il controllo Campo mascherato. Questo controllo è un campo d'inserimento, come un campo di testo, che ha, oltre alle altre, due particolari proprietà.

Maschera di inserimento Mettete il codice del carattere, non devono essere inseriti i dati: un codice = un carattere[1]

Il codice determina come il campo verrà accettato in quella posizione.

Field validation Yes: Only the characters specified as valid will be accepted

No: Invalid characters will be removed on leaving the field

To convert the field "Name" to uppercase automatically use the code "X":

  • All characters are allowed (this is not limited to letters because it is possible to enter hyphens or apostrophes
  • Automatic conversion from lowercase to uppercase
  • The permitted number of characters is indicated by the number of the X characters
  • Field validation: Yes

To capitalise just the first letter of the field "Firstname", use the code "A" followed by "x":

  • The code "A" allows only the capital letters A-Z to be entered (hyphens and apostrophes aren't allowed at the beginning of a name): if a lowercase letter is entered it is automatically converted to uppercase.
  • With "x" all characters are allowed.

Using a macro

It is possible to associate a macro with the event "Before update" of text fields. This event is triggered before the content of the changed control is written to the database.

We can change everything that has been entered with the uppercase/lowercase conversion.

Below is the code for two Python procedures "PysCapitaliseAll" and "PysCapitaliseOne" which are associated with the entry fields "Name" and "Firstname" respectively.

The procedures take as a parameter the contents of the control in question. They change the text contained in the text field.

  • PysCapitaliseAll changes everything to uppercase.
  • PysCapitaliseOne changes only the first character to uppercase.
option explicit

sub PysCapitaliseOne(PysEvent)
PysEvent.Source.text = Ucase(left(PysEvent.Source.text, 1)) & Lcase(mid(PysEvent.Source.text, 2))
end sub

sub PysCapitaliseAll(PysEvent)
PysEvent.Source.text = Ucase(PysEvent.Source.text)
end sub

Notes