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:
idStringDer eindeutige Datenbank-Identifizierer des Feldes.
identifierStringDer menschenlesbare Identifizierer des Feldes (dies ist eine Version der Feld-Beschriftung, die in einen gültigen UL4-Variablennamen ungewandelt wurde und eindeutig ist).
typeStringDer 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.subtypeString oderNoneDer 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
subtypeimmerNone.Hierzu können Sie im Kapitel Übersicht der Feldtypen mehr lesen.
fulltypeStringFeld-Typ und Feld-Untertyp (falls vorhanden) getrennt mit
/, also z.B.numberoderlookup/selectusw..appAppDie App zu der dieses Feld gehört.
labelStringDie Feld-Beschriftung.
Dieses Attribut kann geändert werden.
descriptionStringEine Beschreibung des Feldes.
Dieses Attribut kann geändert werden.
priorityBoolGibt an, ob das Feld hohe Priorität besitzt, d.h. in der Listenansicht angezeigt werden soll.
Dieses Attribut kann geändert werden.
in_listBoolin_listist ein anderer Name fürpriority.Dieses Attribut kann geändert werden.
in_mobile_listBoolGibt an, ob das Feld in der Listenansicht auf Handys angezeigt werden soll. (Dies wird nur berücksichtigigt, wenn
in_listTrueist).Dieses Attribut kann geändert werden.
in_textBoolGibt an, ob das Feld in einer Text-Ansicht des Datensatzes angezeigt werden soll. Dies ist z.B. der Fall, wenn der Datensatz als Wert eines Applookup-Feldes angezeigt werden soll, oder in einer Uberschrift oder sonstigen Meldung.
Dieses Attribut kann geändert werden.
orderIntegerDie Feld-Reihenfolge, d.h. nach dieser Zahl sind die Felder im
App-Attributcontrols(bzw. imRecord-Attributfields) sortiert.topInteger oderNoneVertikale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
topNone.leftInteger oderNoneHorizontale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
leftNone.widthInteger oderNoneBreite des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
widthNone.heightInteger oderNoneHöhe des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
heightNone.z_indexIntegerÜberlagerungs-Reihenfolge des Eingabefeldes in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
z_indexNone.tabindexIntegerTab-Reihenfolge des Eingabefeldes im Eingabeformular in der aktiven Formularvariante (zum Durchschalten der Eingabefelder mit Hilfe der Tab-Taste). Gibt es keine aktive Formularvariante, ist
tabindexNone.requiredBoolTruewenn dieses Feld in der aktiven Formularvariante als Pflichfeld konfiguriert wurde. Gibt es keine aktive Formularvariante, istrequiredFalse.
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.) Der Wert wird beim Abschicken nicht berücksichtigt.In Anzeige-Templates wird
modeals Default-Wert für mode verwendet.Der Standardwert ist
"edit". Gibt es keine aktive Formularvariante, ist der Standardwert"display".labelpos"top","left","right","bottom"oderNonePosition der Feldbeschriftung relativ zum Eingabefeld in der aktiven Formularvariante. Bei
Nonewird die Beschriftung gar nicht angezeigt. Gibt es keine aktive Formularvariante, istmode"left".labelwidthInteger oderNone.Breite des Labels in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist
labelwidth"LEFT".autoalignBoolTruewenn die Breite des Labels automatisch vom FormBuilder berechnet wird.Falsewenn sie der Benutzer selbst angepasst hat. Gibt es keine aktive Formularvariante, istautoalignTrue.in_active_view()Methode() ➝ BoolGibt an, ob es dieses
Controlin der aktiven Formularvariante gibt. Gibt es keine aktive Formularvariante, ist der Return-Wert vonin_active_view()False.save()Methode() ➝ BoolSpeichert die Werte der veränderbaren Attribute in der Datenbank.
Veränderbare Attribute sind
label,description,priority,in_mobile_list,in_textundrequired.is_focused()Methode() ➝ BoolGibt an, ob es dieses
Controlden Eingabefokus hat.customObjektDieses 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:
placeholderStringDer Platzhalter für das HTML-Eingabefeld.
minlengthInteger oderNoneDie minimale String-Länge (
Nonebedeutet ohne Einschränkung).maxlengthInteger oderNoneDie maximale String-Länge (
Nonebedeutet ohne Einschränkung).
StringControls des Untertyps textarea besitzen weiterhin noch
folgendes Attribut:
encryptedString oderNoneKonfiguriert die Verschlüsselung von Feldinhalten. Die möglichen Werte sind:
NoneDas 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:
precisionInteger oderNoneDie Anzahl der Nachkommastellen. Wird
precisionim 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.precisionim Update-Template zu setzen hat keinerlei Einfluß auf die Anzahl der Nachkommastellen und das verwendete HTML-Element.minimumZahl oderNoneDer minimal erlaubte Wert. Kleinere Werte werde automatisch durch den Wert von
minimumersetzt. IstminimumNonegibt es keine Untergrenze.maximumZahl oderNoneDer maximal erlaubte Wert. Größere Werte werde automatisch durch den Wert von
maximumersetzt. IstmaximumNonegibt es keine Obergrenze.
Attribute für Lookup-Felder
Zusätzlich zu obigen Attributen besitzen LookupControl- und
MultipleLookupControl-Objekte noch folgende Attribute:
lookupdataDictionary(String ➝ LookupItem)lookupdatabeinhaltet 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.
autoexpandableBoolTruewenn 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_appAppDie Zielapp aus der Datensätze als Wert für dieses Feld ausgewählt werden können.
lookup_controlsDictionary(String ➝ Control)lookup_controlsist 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_keyString oderNoneIst
none_keynichtNone(was nur bei einem aktiven View der Fall sein kann) wird im Eingabeformular eine „Nichts ausgewählt“-Option angeboten. Der Wert vonnone_keywird als Wert dieser Auswahl-Option verwendet. Istnone_keyNonewird keine „Nichts ausgewählt“-Option angezeigt.none_labelString oderNoneWird als Beschriftung der „Nichts ausgewählt“-Option verwendet, wenn diese „Nichts ausgewählt“-Option angeboten wird. Ist
none_labelNonesollte eine generische Beschriftung verwendet werden.search_urlStringNur bei
AppLookupChoiceControlverfügbar. Enthält die Basis-URL, um per Ajax-Request in einer für grosse Datenmengen optimierten Auswahlbox suchen zu können. Default istfield_<IDENTIFIER>_search.search_param_nameStringNur bei
AppLookupChoiceControlverfügbar. Der Name des Request-Parameters, der den zu suchenden Wert enthält. Default istq.target_param_nameStringNur bei
AppLookupChoiceControlverfügbar. Der Name des Request-Parameters, in dem der CSS-Selektor übergeben wird, den die Suchseite benutzt, um die neuen Optionen an die richte Stelle der HTML-Seite zu setzen. Default isttarget.
Attribute für Datums-Felder
Zusätzlich zu obigen Attibuten haben DateControl, DatetimeMinuteControl
und DatetimeSecondControl noch das folgende Attribut:
formatStringformatist ein für den Datums-Typ passender UL4-Formatstring, der die inglobals.langkonfigurierte Sprache berücksichtigt.D.h. das z.B. für ein
DatetimeMinuteControl-Objektformatder Wert"%d.%m.%Y %H:%M"hat, wennglobals.lang"de"ist.