Eingabefeld
Eingabefelder sind Bestandteile einer Detailansicht und definieren, welche Attribute der gebundenen Klasse in der Ansicht dargestellt werden sollen. Für jedes dieser Attribute wird in der Detailansicht ein Eingabefeld generiert, das in Layout und Größe angepasst werden kann.
Jedes Eingabefeld ist mit einem Attribut verknüpft. Über das Kontextmenü Vertragsattribut ansehen oder einen Doppelklick wird das verknüpfte Attribut im Inspektor angezeigt.
Eigenschaften
Eigenschaft | Typ | Erklärung |
---|---|---|
Name | Text | Der Anzeigename des Felds im Workflow-Editor des Designers. |
Pit-Name | Text | Der Systemname des verknüpften Attributs. Kann nicht verändert werden. |
Schreibgeschützt | Ja / Nein | Gibt an, ob dieses Feld vom Benutzer verändert werden darf. |
Pflichtfeld | Ja / Nein | Gibt an, ob der Benutzer dieses Feld auf Detailansichten ausfüllen muss. |
Abhängigkeit | Dropdown | Auswahl der Abhängigkeit, die Sichtbarkeit und Interaktion für das Eingabefeld steuert. |
Aktivator | Dropdown | Auswahl eines Aktivators, der bei Berührung ausgelöst wird. Wird ausgeblendet, falls es bereits einen Übergang von diesem Feld zu einem Schritt gibt. |
Bindung | Dropdown | Auswahl der Klasse, auf die diese Detailansicht gebunden ist. Wird bei Referenzen und Listen angezeigt und bezieht sich auf die eingestellte Referenzklasse des verknüpften Attributs. |
Rechteverwaltung
Eingabefelder übernehmen von ihrem verknüpften Attribut die Einstellungen für Schreibschutz und Pflichtfeld. Allerdings können diese Einstellungen auch für spezielle Detailansichten am Eingabefeld überdefiniert werden. Schreibgeschützte Attribute werden im Designer grau und Pflichtfelder rot dargestellt.
Ist ein Eingabefeld als schreibgeschützt markiert, so kann der Benutzer den Inhalt des Felds lesen aber nicht verändern. Ein Pflichtfeld muss vom Benutzer ausgefüllt werden, bevor der Datensatz in die Datenbank gespeichert werden kann. Sind noch nicht alle Pflichtfelder auf einer Detailansicht ausgefüllt und der Benutzer versucht auf einen anderen Datensatz zu wechseln, wird dieser Vorgang von der App abgebrochen und ein Hinweistext angezeigt.
Eingabefelder gruppieren und einbetten
Normalerweise werden Eingabefelder in einem Abschnitt untereinander dargestellt. Wenn man genau weiß, dass einige Felder nicht viel Platz auf dem Bildschirm einnehmen, möchte man diese eventuell lieber nebeneinander anzeigen. Um das zu erreichen, kann man im Designer mehrere Eingabefelder eines Abschnitts (mit gedrückter Strg-Taste) markieren und im Inspektor auf den Button Gruppieren klicken.
Daraufhin wird eine Gruppierung für die bestehenden Eingabefelder erstellt. Die Feldgruppierung ist ein Hinweis für pit - Mobile, dass alle darin befindlichen Felder nebeneinander dargestellt werden sollen. Man kann dabei die Reihenfolge und Breite jedes Attributs frei vorgeben, indem man die Eigenschaften width
und left
innerhalb der dynamischen Eigenschaft style
vom Typ Text verwendet. Beim Erstellen der Gruppierung legt der Designer diese Eigenschaften bereits automatisch an. Die Feldgruppierung kann über den Button Gruppierung aufheben im Inspektor wieder gelöscht werden, ohne dass die enthaltenen Eingabefelder verschwinden.
Bemerkung
Verändert man die Reihenfolge der Eingabefelder innerhalb der Gruppe, hat dies keinen Einfluss auf die Position der Felder auf der Oberfläche. Verwenden Sie stattdessen die Angaben in der Eigenschaft style
. Beim Löschen der Gruppierung bleibt die Eigenschaft style
der Eingabefelder erhalten und muss ggf. manuell aktualisiert werden.
Eingabefelder werden je nach Typ des verknüpften Attributs anders bearbeitet. Textfelder, Checkboxen oder Zahlen werden direkt auf der Detailansicht bearbeitet. Andere Felder wie Referenzen oder Listen gehen normalerweise zum Bearbeiten auf einer neuen Seite auf. Dieses Verhalten lässt sich ändern, indem man die Felder über ihren style
als eingebettet markiert. Nachfolgend ein Beispiel für einen Eingabefeldstil, der sowohl gruppiert als auch eingebettet ist:
{
"left": "50%",
"width": "50%",
"embedded": true
}
Buttons auf Eingabefeldern
Eingabefelder können abhängig vom Typ des verknüpften Attributs einen Aktivator definieren. Ist dies der Fall, wird ein Konnektor für einen Übergang am Eingabefeld angezeigt. Darüber hinaus können unabhängig vom Attributtyp zusätzlich Buttons auf dem Eingabefeld hinterlegt werden. Dafür zieht man per Drag & Drop einen neuen Button auf das Feld und hinterlegt eine Darstellung und einen Aktivator für den Button.
Tipp
Wird ein Button an einem Eingabefeld mit Aktivator definiert, dann reagiert der Button normal auf Eingaben des Benutzers. Der Aktivator des Felds wird aber nur ausgelöst, wenn der Benutzer auf eine freie Fläche des Felds tippt, an der kein Button zu sehen ist.
Beschriftung überdefinieren
Normalerweise wird die Beschriftung eines Eingabefelds durch eine Übersetzung gesteuert. Existiert eine Übersetzung mit dem Attributnamen als Schlüsseltext, so wird während der Laufzeit der App der übersetzte Text in der jeweiligen Sprache angezeigt. Häufig verwendete Attribute haben allerdings manchmal abhängig vom eingesetzten Kontext mehr als eine Bedeutung.
Beispielsweise wird das Feld Name
meistens mit 'Name' übersetzt. Manchmal ist aber das Wort 'Nachname' oder 'Titel' als Übersetzung deutlicher. Daher gibt es die Möglichkeit, die Beschriftung für ein Eingabefeld auf einem ganz bestimmten Schritt überzudefinieren. Hierfür muss die dynamische Eigenschaft style
vom Typ 'Text' benutzt werden:
{
label:{
text: "Nachname"
}
}
Hinweistext
Über einen style am Eingabefeld lässt sich ein Hinweistext angeben, dass angezeigt wird, solange kein Inhalt in diesem Feld steht. Dies gibt dem Nutzer eine Anleitung, welcher Inhalt in diesem Feld erwartet wird. Die Farbe des Hinweistexts ist normalerweise grau, kann aber überdefiniert werden.
{
...
"input":{
"hintColor":"#abFF81",
"hintText":"Geben Sie hier einen Kommentar zum Auftrag ein"
}
...
}
Auf Wertänderungen reagieren
Über die dynamische Eigenschaft changedActivator
vom Typ Text kann der Name eines Aktivators hinterlegt werden, der bei der Wertänderung des Felds ausgelöst wird.
Diesem Aktivator steht der Parameter model
zur Verfügung, der den aktuellen Datensatz beinhaltet.
Beispiel:
Ti.App.log("Value of field 'Barcode' changed to " + model.attributes.Barcode");
Anzeige der Objektanzahl bei Listenfeldern
{
...
"bubble":{
"hide":true,
"color":"#d72517",
"backgroundColor":"#333333",
"border":{
"width":5,
"radius": 0,
"color": "#BE7E7E"
},
"font":{
"fontWeight": "bold"
}
}
...
}