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:

idString

Der eindeutige Datenbank-Identifizierer des Feldes.

identifierString

Der menschenlesbare Identifizierer des Feldes (dies ist eine Version der Feld-Beschriftung, die in einen gültigen UL4-Variablennamen ungewandelt wurde und eindeutig ist).

typeString

Der 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 oder None

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 immer None.

Hierzu können Sie im Kapitel Übersicht der Feldtypen mehr lesen.

fulltypeString

Feld-Typ und Feld-Untertyp (falls vorhanden) getrennt mit /, also z.B. number oder lookup/select usw..

appApp

Die App zu der dieses Feld gehört.

labelString

Die Feld-Beschriftung.

priorityBool

Gibt an, ob das Feld hohe Priorität besitzt, d.h. in der Listenansicht angezeigt werden soll.

orderInteger

Die Feld-Reihenfolge, d.h. nach dieser Zahl sind die Felder im App-Attribut controls (bzw. im Record-Attribut fields) sortiert.

topInteger oder None

Vertikale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist top None.

leftInteger oder None

Horizontale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist left None.

widthInteger oder None

Breite des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist width None.

heightInteger oder None

Höhe des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist height None.

z_indexInteger

Überlagerungs-Reihenfolge des Eingabefeldes in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist z_index None.

tabindexInteger

Tab-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.

requiredBool

True wenn dieses Feld in der aktiven Formularvariante als Pflichfeld konfiguriert wurde. Gibt es keine aktive Formularvariante, ist required 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, ist mode "EDIT".

labelpos"TOP", "LEFT", "RIGHT", "BOTTOM" oder None

Position der Feldbeschriftung relativ zum Eingabefeld in der aktiven Formularvariante. Bei None wird die Beschriftung gar nicht angezeigt. Gibt es keine aktive Formularvariante, ist mode "LEFT".

labelwidthInteger oder None.

Breite des Labels in der aktiven Formularvariante. Gibt es keine aktive Formularvariante, ist labelwidth "LEFT".

autoalignBool

True wenn die Breite des Labels automatisch vom FormBuilder berechnet wird. False wenn sie der Benutzer selbst angepasst hat. Gibt es keine aktive Formularvariante, ist autoalign True.

in_active_view()Methode() ➝ Bool

Gibt an, ob es dieses Control in der aktiven Formularvariante gibt. Gibt es keine aktive Formularvariante, ist der Return-Wert von in_active_view() False.

is_focused()Methode() ➝ Bool

Gibt an, ob es dieses Control den Eingabefokus hat.

customObjekt

Dieses Attribut kann vom Benutzer für beliebige zusätzliche Informationen gesetzt werden.

x_<identifier>Objekt

Es 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:

placeholderString

Der Platzhalter für das HTML-Eingabefeld.

minlengthInteger oder None

Die minimale String-Länge (None bedeutet ohne Einschränkung).

maxlengthInteger oder None

Die maximale String-Länge (None bedeutet ohne Einschränkung).

StringControls des Untertyps textarea besitzen weiterhin noch folgendes Attribut:

encryptedString oder None

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:

precisionInteger oder None

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.

minimumZahl oder None

Der minimal erlaubte Wert. Kleinere Werte werde automatisch durch den Wert von minimum ersetzt. Ist minimum None gibt es keine Untergrenze.

maximumZahl oder None

Der maximal erlaubte Wert. Größere Werte werde automatisch durch den Wert von maximum ersetzt. Ist maximum None gibt es keine Obergrenze.

Attribute für Lookup-Felder

Zusätzlich zu obigen Attributen besitzen LookupControl- und MultipleLookupControl-Objekte noch folgende Attribute:

lookupdataDictionary(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.

autoexpandableBool

True 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 LookupItem key-Attribut noch als label-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_appApp

Die Zielapp aus der Datensätze als Wert für dieses Feld ausgewählt werden können.

lookup_controlsDictionary(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_keyString oder None

Ist none_key nicht None (was nur bei einem aktiven View der Fall sein kann) wird im Eingabeformular eine „Nichts ausgewählt“-Option angeboten. Der Wert von none_key wird als Wert dieser Auswahl-Option verwendet. Ist none_key None wird keine „Nichts ausgewählt“-Option angezeigt.

none_labelString oder None

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:

formatString

format ist ein für den Datums-Typ passender UL4-Formatstring, der die in globals.lang konfigurierte Sprache berücksichtigt.

D.h. das z.B. für ein DatetimeMinuteControl-Objekt format der Wert "%d.%m.%Y %H:%M" hat, wenn globals.lang "de" ist.