Element Container

Der Begriff "Element Container" wird für eine Gruppe von Elementen verwendet, denen andere Elemente - auch andere Element Container - untergeordnet werden können.

Die untergeordneten Elemente werden dann als Inhalt dieses Containers bezeichnet und in der Baumansicht (s. u.) hierarchisch verschachtelt dargestellt.

Die Darstellung der untergeordneten Elemente hängt dabei vom Typ des Element Containers ab (s. Liste unten).

Eigenschaft "Datentyp"

Ein optionaler Objekttyp, welcher zum Erzeugen neuer Elementdaten herangezogen wird. Ist dieser Typ nicht gegeben, wird stattdessen ein leeres Objekt erzeugt.
Somit kann ein Elementcontainer beispielsweise direkt eine neue Instanz eines Benutzerobjektes laden, wenn initial keine Daten gegeben sind.

Datenfelder

Definiert ein Element Container ein Datenfeld, so werden die Datenfelder der hierarchisch untergeordneten Elemente relativ dazu aufgelöst. Container ohne Verbindung zu einem Datenfeld werden dabei einfach ignoriert. Deren Inhalte werden berücksichtigt, sofern Datenfelder angegeben sind.

Allerdings ist es auch möglich Container samt Inhalt zu überspringen, indem man dem Datenfeld den Status "Überspringen" zuweist.

►HINWEIS◄ Das Überspringen von Containern samt Inhalt wird unten für ein Portal demonstriert. Allerdings kann diese Option auch für Elemente in Erfassungsmasken verwendet werden. Dann werden betreffende Elemente beim Datenaustausch (Lesen und Schreiben) mit dem Geschäftsobjekt ausgeklammert.

Beide Techniken werden in den folgenden Beispielen demonstriert.

Beispiel 1

Beispiel Datenstruktur als JSON
{
"fahrzeugDetails": {
"fahrzeugID": "12345",
"fahrzeugName": "Gabelstapler UH8"
},
"fahrerInfo": {
"fahrerVorname": "Max",
"fahrerNachname": "Mustermann"
}
}

Die Datenstruktur oben würde durch nachfolgende Elemente-Hierarchie abgebildet:

images/download/attachments/113283020/image2019-4-2_15-15-26-version-1-modificationdate-1663240111949-api-v2.png

Die Elementbeschriftungen entsprechen hier zur Veranschaulichung ihren Datenfeldern. Der im Baum markierte Container "Spaltenlayout" hat kein definiertes Datenfeld und taucht daher in der Datenstruktur nicht auf.
Daten eines Containers können auch über die Aktion "Elementdaten setzen" hierarchisch geladen werden.

Beispiel 2

Ausgehend vom obigen Beispiel soll der Container "fahrerInfo" nur übersprungen werden, so dass er und die enthaltenen Elemente (Vorname, Nachname) in der Datenstruktur nicht mehr auftauchen, obwohl deren Datenfeldeinträge unverändert bestehen.

Dem Datenfeld für den Container "fahrerInfo" wird per Klick auf die Schaltfläche mit dem Parkverbot-Icon der "Überspringen"-Status zugewiesen. Alternativ kann als Datenfeld die Zeichenfolge $skip$ eingegeben werden.

images/download/attachments/113283020/image2019-4-2_14-38-9-version-1-modificationdate-1663240111971-api-v2.png

Der Status kann durch erneutes Klicken der Schaltfläche wieder aufgehoben werden. Dann wird der ursprüngliche Datenfeldeintrag wiederhergestellt.

Im Portal (bzw. im Testmodus) erscheinen die Eingabefelder innerhalb des übersprungenen Containers leer, weil auch die Zuweisung von Standardwerten aus der Maske nicht erfolgt. Sie können aber beschriftet werden:

images/download/attachments/113283020/image2019-4-2_15-21-49-version-1-modificationdate-1663240111946-api-v2.png

Allerdings liefert die Datenstruktur keine Angaben zum Fahrer:

Datenstruktur in JSON
{
"fahrzeugDetails": {
"fahrzeugID": "12345",
"fahrzeugName": "Gabelstapler UH8"
}
}

Container-Eigenschaft "Pflichtfeld erben"

Element Container bieten zusätzlich zu den allgemeinen Eigenschaften noch die Option "Pflichtfeld erben" an. Ist diese Option aktiviert, wird der Container als Pflichtfeld markiert, sobald eines seiner untergeordneten Elemente ein Pflichtfeld ist.

Einbetten einer Sub-Form

Über die Eigenschaftenkategorie "Element Container" können auch andere zum Kontext passende Formulare wie Erfassungsmasken, Portale oder Dashboards eingebettet werden.
Hierfür wird in der Formularstruktur eine entsprechende Form-Referenz hinterlegt und an den Container gebunden.
Container, welche bereits eine solche Referenz besitzen, werden im Elementbaum entsprechend hervorgehoben (siehe Bild unten).

images/download/attachments/113283020/image2019-1-24_14-53-52-version-1-modificationdate-1663240111986-api-v2.png

Auf das Einbetten von Formularen wird im Kapitel Formulare einbetten (Sub-Formulare) näher eingegangen.

Verhalten beim Überlaufen des Inhalts

Wird der Inhalt eines Containers größer als er selbst, so wird von einem Inhalt-Überlauf gesprochen. Wie sich der Container in diesem Falle verhalten soll, kann mit der Eigenschaft "Überlaufender Inhalt" definiert werden.

Es stehen dabei drei verschiedene Möglichkeiten zur Auswahl:

  • Sichtbar - Der überlaufende Inhalt wird dennoch dargestellt. Dies kann zu Layout-Problemen führen, da sich überlaufender Inhalt eines Containers mit angrenzen Inhalten überschneiden kann

  • Versteckt - Der überlaufende Inhalt wird einfach abgeschnitten, ist aber unsichtbarer Bestandteil der Browser-Seite und produziert z. B. Treffer beim "Auf der Seite suchen".

  • Scrollen - Der Container blendet bei Bedarf automatisch Scroll-Balken ein, die das Scrollen des Container-Inhalts ermöglichen.


Tip: Details und Beispiele zu Formularlayouts finden sich im Kapitel Formular Layout.