Field

Ein Field-Objekt beinhaltet den Wert eines Feldes für einen Datensatz und besitzt folgende Attribute:

controlControl

Das Control-Objekt für das dieses Field-Objekt den Wert beinhaltet.

recordRecord

Das Datensatz-Objekt zu dem dieser Feld-Wert gehört (siehe Record).

labelString

Die Feld-Beschriftung. Diese erbt das Field von seinem Control. label kann jedoch auch gesetzt werden um für dieses Field eine andere Beschriftung zu verwenden. Wird als Wert None gesetzt, so wird wieder die ursprüngliche Beschriftung des Controls verwendet.

valueObjekt

Der 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-Attribut value kann immer gesetzt werden (ohne daß bei nicht passenden Werten eine Fehlermeldung ausgegeben wird), jedoch kann eine Fehler-Meldung im errors-Attribut gesetzt werden, wenn der Wert nicht sinnvoll ist (in diesem Fall wird auch der Wert durch None (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 oder False) oder None

string

str oder None

int

int oder None

number

int, float oder None

date

date (für Untertyp date), datetime (für Untertyp datetimeminute und datetimesecond) oder None

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)

errorsListe(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 oder None) ➝ None

Ist error None so wird die Liste der Fehlermeldungen geleert. Ist error ein String, so besteht die Liste der Fehlermeldungen aus dieser einen Fehlermeldung.

has_errors()Methode() ➝ Bool

Gibt 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().

lookupdataDictionary(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 das lookupdata-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 Dictionary id-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 auf None gesetzt wird wieder die ursprüngliche Auswahlmenge verwendet.

is_empty()Methode() ➝ Bool

Gibt an, ob der Feld-Wert leer ist. Dies ist bei multiplelookup- und multipleapplookup-Feldern die leere Liste, bei allen anderen Feld-Typen None. Diese Methode erwartet keine Argumente. Das heißt, der Aufruf sieht beispielsweise so aus: field.is_empty().

is_dirty()Methode() ➝ Bool

Gibt 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().

enabledBool

Fü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-Attribut disabled="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.

writableBool

Fü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-Attribut readonly="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.

visibleBool

Fü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.

requiredBool

Gibt an, ob ein Eingabefeld verpflichtend ist oder nicht. Falls der Wert None ist, wird der Wert von required im Control herangezogen.

required kann auch per Zuweisung gesetzt werden.

topInteger oder None

Vertikale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das Field von seinem Control. top kann jedoch auch gesetzt werden um für dieses spezielle Feld eine eigene Position zu verwenden. Wird als Wert None gesetzt, so wird wieder die ursprüngliche Position des Controls verwendet. Wenn Sie top eines Feldes im aktiven Formular ändern wird dieses Feld an die enstprechende Stelle geschoben.

leftInteger oder None

Horizontale Position des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das Field von seinem Control. left kann jedoch auch gesetzt werden um für dieses spezielle Feld eine eigene Position zu verwenden. Wird als Wert None gesetzt, so wird wieder die ursprüngliche Position des Controls verwendet. Wenn Sie left eines Feldes im aktiven Formular ändern wird dieses Feld an die enstprechende Stelle geschoben.

widthInteger oder None

Breite des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das Field von seinem Control.

heightInteger oder None

Höhe des Eingabefeldes im Eingabeformular in der aktiven Formularvariante. Diese erbt das Field von seinem Control.

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 Lookup- und Applookup-Felder

Field-Object zu Controls vom Typ LookupControl, MultipleLookupControl, AppLookupControl oder MultipleAppLookupControl besitzen zusätzlich noch folgendes Attribut:

lookupdataDictionary(String ➝ LookupItem oder

Record oder String) lookupdata kann gesetzt werden um die Auswahlmenge für dieses Feld zu ersetzen.

Für Felder zu Controls vom Typ LookupControl oder MultipleLookupControl müssen die Keys key-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 oder MultipleAppLookupControl müssen die Keys id-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 auf None gesetzt, so wird wieder die Auswahl, die durch das Control definitiert ist, verwendet (Bei LookupControl oder MultipleLookupControl control.lookupdata und bei AppLookupControl oder MultipleAppLookupControl control.lookup_app.records).

has_custom_lookupdata()Methode() ➝ Bool

Liefert True zurück wenn in lookupdata die Auswahlmenge überschrieben wurde.