Control
Control
-Objekte beinhalten die Metadaten eines Feldes einer Applikation.
Je nach Feld-Typ ist dies eine spezieller Objekt-Typ (also z.B. TextControl
für ein normales einzeiliges Text-Feld, DatetimeMinuteControl
für ein
Datumsfeld mit Stunden- und Minuten-Angaben, LookupSelectControl
für ein
Auswahlfeld etc.).
Allgemeine Attribute
Allen Objekte-Typen gemeinsam sind folgende Attribute:
id
StringDer eindeutige Datenbank-Identifizierer des Feldes.
identifier
StringDer menschenlesbare Identifizierer des Feldes (dies ist eine Version der Feld-Beschriftung, die in einen gültigen UL4-Variablennamen ungewandelt wurde und eindeutig ist).
type
StringDer Typ des Feldes. Mögliche Werte sind
"string"
,"int"
,"number"
,"date"
,"lookup"
,"applookup"
,"multiplelookup"
,"multipleapplookup"
,"bool"
,"file"
und"geo"
. Hierzu können Sie im Kapitel Übersicht der Feldtypen mehr lesen.subtype
String oderNone
Der Feld-Untertyp.
Typ
Mögliche Untertypen
"string"
"text"
,"textarea"
,"email"
,"url"
,"password"
und"tel"
."date"
"date"
,"datetimeminute"
und"datetimesecond"
."lookup"
"select"
,"choice"
und"radio"
."applookup"
"select"
und"choice"
."multiplelookup"
"select"
,"choice"
und"checkbox"
."multipleapplookup"
"select"
und"choice"
.Bei allen anderen ist
subtype
immerNone
.Hierzu können Sie im Kapitel Übersicht der Feldtypen mehr lesen.
fulltype
StringFeld-Typ und Feld-Untertyp (falls vorhanden) getrennt mit
/
, also z.B.number
oderlookup/select
usw..app
AppDie App zu der dieses Feld gehört.
label
StringDie Feld-Beschriftung.
priority
BoolGibt an, ob das Feld hohe Priorität besitzt, d.h. in der Listenansicht angezeigt werden soll.
order
IntegerDie Feld-Reihenfolge, d.h. nach dieser Zahl sind die Felder im
App
-Attributcontrols
(bzw. imRecord
-Attributfields
) sortiert.top
Integer oderNone
Vertikale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
top
None
.left
Integer oderNone
Horizontale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
left
None
.width
Integer oderNone
Breite des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
width
None
.height
Integer oderNone
Höhe des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
height
None
.z_index
IntegerÜberlagerungs-Reihenfolge des Eingabefeldes in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
z_index
None
.tabindex
IntegerTab-Reihenfolge des Eingabefeldes im Eingabeformular in der aktiven Formularvariante (zum Durchschalten der Eingabefelder mit Hilfe der Tab-Taste). Gibt es keine aktive Formularvariante, ist
tabindex
None
.required
BoolTrue
wenn dieses Feld in der aktiven Formularvariante als Pflichfeld konfiguriert wurde. Gibt es keine aktive Formularvariante, istrequired
False
.mode
"DISPLAY"
oder"EDIT"
Kann der Wert dieses Feldes im Eingabeformular in der aktiven Formularvariante bearbeitet werden (
"EDIT"
) oder wird der Wert nur angezeigt ("DISPLAY"
)? ("DISPLAY"
wird verwendet, wenn das Feld im FormBuilder mit Inhalt zur zum Lesen anzeigen konfiguriert wurde. Gibt es keine aktive Formularvariante, istmode
"EDIT"
.labelpos
"TOP"
,"LEFT"
,"RIGHT"
,"BOTTOM"
oderNone
Position der Feldbeschriftung relativ zum Eingabefeld in der aktiven Formularvariante. Bei
None
wird die Beschriftung gar nicht angezeigt. Gibt es keine aktive Formularvariante, istmode
"LEFT"
.labelwidth
Integer oderNone
.Breite des Labels in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
labelwidth
"LEFT"
.autoalign
BoolTrue
wenn die Breite des Labels automatisch vom FormBuilder berechnet wird.False
wenn sie der Benutzer selbst angepasst hat. Gibt es keine aktive Formularvariante, istautoalign
True
.in_active_view()
Methode() ➝ BoolGibt an, ob es dieses
Control
in der aktiven Formularvariante gibt. Gibt es keine aktive Formularvariante, ist der Return-Wert vonin_active_view()
False
.is_focused()
Methode() ➝ BoolGibt an, ob es dieses
Control
den Eingabefokus hat.custom
ObjektDieses Attribut kann vom Benutzer für beliebige zusätzliche Informationen gesetzt werden.
x_<identifier>
ObjektEs werden beliebige zusätzliche Attribute unterstützt deren Namen mit
x_
beginnt.
Attribute für String-Felder
Zusätzlich zu obigen Attributen besitzt ein StringControl
noch folgende
Attribute:
placeholder
StringDer Platzhalter für das HTML-Eingabefeld.
minlength
Integer oderNone
Die minimale String-Länge (
None
bedeutet ohne Einschränkung).maxlength
Integer oderNone
Die maximale String-Länge (
None
bedeutet ohne Einschränkung).
StringControl
s des Untertyps textarea
besitzen weiterhin noch
folgendes Attribut:
encrypted
String oderNone
Konfiguriert die Verschlüsselung von Feldinhalten. Die möglichen Werte sind:
None
Das Feld wird nicht verschlüsselt.
"force"
Die Feldverschlüsselung wird erzwungen. In einem Formular das eines oder mehrere dieser Felder enthält, werden alle Felder mit dieser Einstellung beim Abschicken verschlüsselt.
"optional"
Der Benutzer kann selbst entscheiden, ob er Verschlüsseln möchte oder nicht.
Attribute für Zahlen-Felder
Zusätzlich zu obigen Attributen besitzt ein NumberControl
noch folgende
Attribute:
precision
Integer oderNone
Die Anzahl der Nachkommastellen. Wird
precision
im Formular-Template auf eine Zahl gesetzt, so wird außerdem für die Eingabe ein HTML-Element<input type="number">
statt<input type="text">
verwendet.precision
im Update-Template zu setzen hat keinerlei Einfluß auf die Anzahl der Nachkommastellen und das verwendete HTML-Element.minimum
Zahl oderNone
Der minimal erlaubte Wert. Kleinere Werte werde automatisch durch den Wert von
minimum
ersetzt. Istminimum
None
gibt es keine Untergrenze.maximum
Zahl oderNone
Der maximal erlaubte Wert. Größere Werte werde automatisch durch den Wert von
maximum
ersetzt. Istmaximum
None
gibt es keine Obergrenze.
Attribute für Lookup-Felder
Zusätzlich zu obigen Attributen besitzen LookupControl
- und
MultipleLookupControl
-Objekte noch folgende Attribute:
lookupdata
Dictionary(String ➝ LookupItem)lookupdata
beinhaltet die Auswahlmöglichkeiten als Dictionary (in der Reihenfolge wie die Optionen vom Benutzer angelegt wurde). Die Schlüssel sind die Identifierer der Option und die Werte sind LookupItem-Objekt.
autoexpandable
BoolTrue
wenn in FormBuilder für das Feld Auto-Hinzufügen aktivieren konfiguriert wurde. In diesem Fall ist es möglich dem zugehörigen Field-Objekt einen beliebigen Wert zu geben. Ist dieser Wert weder als LookupItemkey
-Attribut noch alslabel
-Attribut bekannt, wird ein neues LookupItem hinzugefügt.
Attribute für AppLookup-Felder
Zusätzlich zu obigen Attributen besitzen AppLookupControl
- und
MultipleAppLookupControl
-Objekte noch folgende Attribute:
lookup_app
AppDie Zielapp aus der Datensätze als Wert für dieses Feld ausgewählt werden können.
lookup_controls
Dictionary(String ➝ Control)lookup_controls
ist ein Dictionary, das die Felder beinhaltet, die der Benutzer zur Anzeige für die Auswahl konfiguriert hat. Die Schlüssel in diesem Dictionary sind die Feld-Identifizierer und die Werte sind Control-Objekte.
Attribute für Lookup-und AppLookup-Felder
LookupControl
-, MultipleLookupControl
-, AppLookupControl
- und
MultipleAppLookupControl
-Objekte besitzen zusätzlich noch folgende
Attribute:
none_key
String oderNone
Ist
none_key
nichtNone
(was nur bei einem aktiven View der Fall sein kann) wird im Eingabeformular eine „Nichts ausgewählt“-Option angeboten. Der Wert vonnone_key
wird als Wert dieser Auswahl-Option verwendet. Istnone_key
None
wird keine „Nichts ausgewählt“-Option angezeigt.none_label
String oderNone
Wird als Beschriftung der „Nichts ausgewählt“-Option verwendet, wenn diese „Nichts ausgewählt“-Option angeboten wird. Ist
none_label
None
sollte eine generische Beschriftung verwendet werden.
Attribute für Datums-Felder
Zusätzlich zu obigen Attibuten haben DateControl
, DatetimeMinuteControl
und DatetimeSecondControl
noch das folgende Attribut:
format
Stringformat
ist ein für den Datums-Typ passender UL4-Formatstring, der die inglobals.lang
konfigurierte Sprache berücksichtigt.D.h. das z.B. für ein
DatetimeMinuteControl
-Objektformat
der Wert"%d.%m.%Y %H:%M"
hat, wennglobals.lang
"de"
ist.