Field
Ein Field
-Objekt beinhaltet den Wert eines Feldes für einen Datensatz und
besitzt folgende Attribute:
control
ControlDas
Control
-Objekt für das diesesField
-Objekt den Wert beinhaltet.record
RecordDas Datensatz-Objekt zu dem dieser Feld-Wert gehört (siehe Record).
label
StringDie Feld-Beschriftung. Diese erbt das
Field
von seinemControl
.label
kann jedoch auch gesetzt werden um für diesesField
eine andere Beschriftung zu verwenden. Wird als WertNone
gesetzt, so wird wieder die ursprüngliche Beschriftung desControl
s verwendet.value
ObjektDer Wert des Feldes. Der Typ des Wertes hängt dabei natürlich vom Typ des Feldes ab.
Für String-Felder ist dies ein String, für Häckchen-Felder ein Bool, für Zahlen-Felder eine Zahl und für Datumsfelder ein Datum. Für Datei-Uploads ist es ein File-Objekt.
Ist das Feld ein Lookup-Feld (d.h. eine Auswahlbox oder ein Optionenfeld) so gibt es zwei Möglichkeiten: Werden für die Auswahl die Datensätze einer anderen App benutzt, so ist der Feld-Wert das
Record
-Objekt, das diesen anderen Datensatz beschreibt. Im anderen Fall ist der Wert ein LookupItem-Objekt.Ist das Feld ein MultipleLookup-Feld (d.h. eine Mehrfach-Optionenfeld), so ist der Wert eine Liste von LookupItem- bzw. Record-Objekten.
Ist das Feld ein Upload-Feld, so ist der Wert ein File-Objekt.
Bei einem Geo-Feld ist der Wert ein Geo-Objekt.
Ist das Feld kein Pflichtfeld, so ist als Wert bei allen Feld-Typen natürlich immer
None
möglich (außer bei Mehrfachoptionen, wo der „leere“ Wert eine leere Liste ist).Das
Field
-Attributvalue
kann immer gesetzt werden (ohne daß bei nicht passenden Werten eine Fehlermeldung ausgegeben wird), jedoch kann eine Fehler-Meldung imerrors
-Attribut gesetzt werden, wenn der Wert nicht sinnvoll ist (in diesem Fall wird auch der Wert durchNone
(bzw.[]
) ersetzt).Die folgende Tabelle zeigt die unterschiedlichen möglichen Typen für Feld-Werte für jeden Feld-Typ nochmal in der Übersicht:
Typ
Wert
bool
bool
(True
oderFalse
) oderNone
string
str
oderNone
int
int
oderNone
number
int
,float
oderNone
date
date
(für Untertypdate
),datetime
(für Untertypdatetimeminute
unddatetimesecond
) oderNone
geo
Geo oder
None
file
File oder
None
lookup
LookupItem oder
None
multiplelookup
Liste von LookupItems (leere Liste wenn nichts ausgewählt)
applookup
Record oder
None
multipleapplookup
Liste von Records (leere Liste wenn nichts ausgewählt)
errors
Liste(String)Fehlermeldungen die dieses Feld betreffen als Liste von Strings.
add_error(error)
Methode(String) ➝None
Fügt die übergebene Fehlermeldung zur Liste der Fehlermeldungen (
errors
) hinzu. Diese Methode erwartet die Fehlermeldung als Argument. Das heißt, der Aufruf sieht beispielsweise so aus:field.add_error("Bitte geben Sie eine gültige E-Mail-Adresse ein!")
.set_error(error)
Methode(String oderNone
) ➝None
Ist
error
None
so wird die Liste der Fehlermeldungen geleert. Isterror
ein String, so besteht die Liste der Fehlermeldungen aus dieser einen Fehlermeldung.has_errors()
Methode() ➝ BoolGibt zurück, ob dieses Feld Fehlermeldungen hat (d.h. ob
errors
nicht leer ist). Diese Methode erwartet keine Argumente. Das heißt, der Aufruf sieht beispielsweise so aus:field.has_errors()
.clear_errors()
Methode() ➝None
Leert die Fehlermeldungs-Liste zu diesem Feld. Diese Methode erwartet keine Argumente. Das heißt der Aufruf sieht beispielsweise so aus:
field.clear_errors()
.lookupdata
Dictionary(String ➝ LookupItem), Dictionary(String ➝ Record) oder Dictionary(String ➝ String)Dieses Attribut ist nur bei
lookup
/multiplelookup
- bzw.applookup
/multipleapplookup
-Feldern vorhanden. Es stellt die Auswahlmenge im Eingabeformular dar, und kann daher verwendet werde um diese Auswahlmenge zu ändern. D.h. es kann damit sowohl festgelegt werden, welche LookupItems bzw. Records zur Auswahl stehen, als auch welche Bezeichnungen dafür angezeigt werden.Bei
lookup
/multiplelookup
-Feldern überschreibt es daslookupdata
-Attribut des Control-Objektes. Allerdings dürfen die Werte auch Strings sein. Dieser werden dann im Formular direkt als Bezeichnungen der Optionen verwendet.Bei
applookup
/multipleapplookup
-Feldern müssen die Keys im Dictionaryid
-Werte von Datensätzen aus der Zielapp sein. Die Werte sind entweder die zugehörigen Record-Objekte oder Strings, die dann im Formular direkt als Bezeichnungen der Datensätze verwendet werden.Wird
lookupdata
aufNone
gesetzt wird wieder die ursprüngliche Auswahlmenge verwendet.is_empty()
Methode() ➝ BoolGibt an, ob der Feld-Wert leer ist. Dies ist bei
multiplelookup
- undmultipleapplookup
-Feldern die leere Liste, bei allen anderen Feld-TypenNone
. Diese Methode erwartet keine Argumente. Das heißt, der Aufruf sieht beispielsweise so aus:field.is_empty()
.is_dirty()
Methode() ➝ BoolGibt an, ob der Feld-Wert geändert wurde. Diese Methode erwartet keine Argumente. Das heißt, der Aufruf sieht beispielsweise so aus:
field.is_dirty()
.enabled
BoolFür Anzeige-Templates ist dieses Attribut irrelevant. Es gibt an, ob ein Eingabefeld für diesen Wert aktiviert werden soll oder nicht und wird nur in Update-Templates verwendet (d.h. wenn
enabled
False
ist, erhält das Eingabefeld das HTML-Attributdisabled="disabled"
; Ein solches Feld kann vom Benutzer nicht mehr geändert werden und der dort eingetragene Wert wird beim Absenden des Formulars nicht mitgesendet).enabled
kann auch per Zuweisung gesetzt werden.writable
BoolFür Anzeige-Templates ist dieses Attribut irrelevant. Es gibt an, ob ein Eingabefeld für diesen Wert beschreibbar angezeigt werden soll oder nicht und wird nur in Update-Templates verwendet (d.h. wenn
writable
False
ist, erhält das Eingabefeld das HTML-Attributreadonly="readonly"
; Ein solches Feld kann vom Benutzer nicht mehr geändert werden, der dort eingetragene Wert wird aber beim Absenden des Formulars mitgesendet).writable
kann auch per Zuweisung gesetzt werden.visible
BoolFür Anzeige-Templates ist dieses Attribut irrelevant. Es gibt an, ob ein Eingabefeld für diesen Wert eingeblendet werden soll oder nicht und wird nur in Update-Templates verwendet (d.h. wenn
visible
False
ist, wird das Eingabefeld komplett ausgeblendet).visible
kann auch per Zuweisung gesetzt werden.required
BoolGibt an, ob ein Eingabefeld verpflichtend ist oder nicht. Falls der Wert
None
ist, wird der Wert vonrequired
im Control herangezogen.required
kann auch per Zuweisung gesetzt werden.top
Integer oderNone
Vertikale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das
Field
von seinemControl
.top
kann jedoch auch gesetzt werden um für dieses spezielle Feld eine eigene Position zu verwenden. Wird als WertNone
gesetzt, so wird wieder die ursprüngliche Position desControl
s verwendet. Wenn Sietop
eines Feldes im aktiven Formular ändern wird dieses Feld an die enstprechende Stelle geschoben.left
Integer oderNone
Horizontale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das
Field
von seinemControl
.left
kann jedoch auch gesetzt werden um für dieses spezielle Feld eine eigene Position zu verwenden. Wird als WertNone
gesetzt, so wird wieder die ursprüngliche Position desControl
s verwendet. Wenn Sieleft
eines Feldes im aktiven Formular ändern wird dieses Feld an die enstprechende Stelle geschoben.width
Integer oderNone
Breite des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das
Field
von seinemControl
.height
Integer oderNone
Höhe des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das
Field
von seinemControl
.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 Lookup- und Applookup-Felder
Field
-Object zu Controls vom Typ LookupControl
,
MultipleLookupControl
, AppLookupControl
oder
MultipleAppLookupControl
besitzen zusätzlich noch folgendes Attribut:
lookupdata
Dictionary(String ➝ LookupItem oderRecord oder String)
lookupdata
kann gesetzt werden um die Auswahlmenge für dieses Feld zu ersetzen.Für Felder zu Controls vom Typ
LookupControl
oderMultipleLookupControl
müssen die Keyskey
-Attibute von LookupItems sein, die Werte entweder LookupItems oder Strings (bei String wird der Wert 1:1 für die Anzeige der Auswahlmöglichkeiten verwendet).Für Felder zu Controls vom Typ
AppLookupControl
oderMultipleAppLookupControl
müssen die Keysid
-Attibute von Record-Objekten sein, die Werte entweder Records oder Strings (bei String wird der Wert 1:1 für die Anzeige der Auswahlmöglichkeiten verwendet).Wird der Wert von
lookupdata
aufNone
gesetzt, so wird wieder die Auswahl, die durch das Control definitiert ist, verwendet (BeiLookupControl
oderMultipleLookupControl
control.lookupdata
und beiAppLookupControl
oderMultipleAppLookupControl
control.lookup_app.records
).has_custom_lookupdata()
Methode() ➝ BoolLiefert
True
zurück wenn inlookupdata
die Auswahlmenge überschrieben wurde.