Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Datenbindung von Oberflächenelement-Eigenschaften  Dokument im Navigationsbaum lokalisieren

Das Zusammenspiel von Oberflächenelementen und Context-Elementen wird über eine wechselseitige Datenbindung ermöglicht. Dabei ist immer die View, die die Oberflächenelemente enthält, gegen den Context des ihr zugeordneten Controllers gebunden. Ist eine Datenbindung von Context-Element und Oberflächenelement-Eigenschaft definiert, dann werden Änderungen der Oberflächenelement-Eigenschaft direkt im Context aufgenommen und umgekehrt. Diese Änderungen werden auch von Eigenschaften anderer Oberflächenelemente der gleichen View übernommen, wenn sie an das gleiche Context-Element gebunden sind. Komplexere Oberflächenelemente, wie z.B. das Table- oder Tree-Oberflächenelement können an einen Context-Knoten gebunden werden, der eine Kollektion repräsentiert. Daher können diese Oberflächenelemente die gesamten Daten und Inhalt des Knotens anzeigen.

Durch das Speichern einer Referenz auf ein Context-Element können Daten direkt vom Context an das Oberflächenelement und zurück geliefert werden. Diese Referenz wird aufgebaut, indem man eine pfadähnliche Angabe, z.B. MONTHSOFYEAR.MONTHNAME als Wert einer bindbaren Eigenschaft des Oberflächenelements setzt. Ein Punkt trennt die einzelnen Context-Elemente, z.B. MONTHSOFYEAR.MONTHNAME.

Der Web Dynpro Explorer bietet grafische Unterstützung der Context-Elemente und erlaubt dem Anwendungsentwickler, die Context-Knoten sowie deren Context-Attribute den entsprechenden Oberflächenelement-Eigenschaften zuzuordnen. Damit ist für den Datentransport zwischen dem Context-Element und dem Oberflächenelement keine explizite Implementierung erforderlich.

Unterschiedliche Datenbindungsansätze

Es gibt für die einzelnen Oberflächenelemente unterschiedliche Datenbindungskonzepte. Allgemein gilt:

      Datenbindung mit gleichen oder konvertierbaren Datentypen

Der Typ des Context-Attributs muss mit dem Typ der Eigenschaft kompatibel sein. Dies bedeutet, dass entweder die Typen gleich sein müssen oder die Eigenschaft des Oberflächenelements vom Typ String und gleichzeitig konvertierbar ist. Bei der letzteren Möglichkeit spielt dann der Typ des Context-Attributs keine Rolle (z.B. InputField.value).

      Datenbindung von Oberflächenelementen mit dynamischem bzw. statischem Charakter

Für gewisse Oberflächenelement-Eigenschaften macht es keinen Sinn, an einen entsprechenden Context gebunden zu werden, beispielsweise Eigenschaften, die einen statischen Charakter besitzen. Deshalb kann die ID eines Oberflächenelements, auf das sich ein Label-Oberflächenelement bezieht, nicht an einen Context gebunden werden. Die Datenquelle eines Table-Oberflächenelements hingegen, die normalerweise dynamisch erstellt wird und auch eine Struktur repräsentiert, muss an einen Context gebunden werden.

      Datenbindung von Oberflächenelementen mit nicht skalarem Charakter

Viele Eigenschaften von Oberflächenelementen sind nicht von skalarem Charakter, sondern gleichen mehr einer Ansammlung von Werten. Solche Eigenschaften bindet man nicht an ein Wurzelattribut, sondern an das Context-Attribut eines multiplen Knotens. Eine Dropdown-Listbox ist dafür ein Beispiel: Jedes Element des multiplen Knotens enthält eine andere Ausprägung des Context-Attributs und daher erscheinen mehrere Elemente in der Auswahlliste.

      Datenbindung an den Context-Knoten

Es gibt aber auch Eigenschaften, die sich auf einen kompletten Knoten beziehen, und nicht nur auf eines seiner Attribute. Die Datenquelle einer Table ist hierfür ein Beispiel: Die Elemente des gebundenen Knotens entsprechen den Table-Zeilen, seine Attribute dagegen den Spalten.

Hinweis Beachten Sie, dass die IDs der Oberflächelemente nicht gebunden werden. Gleiches gilt für diejenigen Eigenschaften, die den Namen einer Aktion darstellen und ausgeführt werden können, wenn ein Ereignis eintritt, z.B. CheckBox.onToggle.

Einige Eigenschaften können an Context-Attribute beliebigen Datentyps gebunden werden, sofern der Datentyp der Eigenschaft konvertierbar ist. Dazu zählen:

        InputField.value

        Label.text

        TextEdit.value

        TextView.text.

Alle anderen Eigenschaften können nur an Context-Attribute mit gleichem Datentyp gebunden werden.

DDIC-Bindung einiger Oberflächenelement-Eigenschaften

Einige Oberflächenelement-Eigenschaften ausgewählter UI-Elemente bieten neben der Bindung an ein Context-Attribut (Context-Binding) auch die Bindung an einen ABAP-Dictionary (DDIC)-Datentypen an.

Beispiel 

Beispiel: Die Eigenschaft length des UI-Elements InputField  kann per DDIC-Binding aus Folgendem gezogen werden:

        Länge eines bestimmten ABAP-Dictionary-Typs

        Länge des ABAP-Dictionary-Typs eines bestimmten Context-Attributes

        Länge des ABAP-Dictionary-Typs des Context-Attributes der Eigenschaft value

Auf diese Weise ist es möglich, die Länge des Eingabefeldes entweder an die Länge des verwendeten Context-Attributs anzupassen oder mit der Länge eines ABAP-Dictionary-Datentypen zu variieren.  

Die DDIC-Bindung wird, abhängig vom jeweiligen UI-Element, für Eigenschaften angeboten, die im Zusammenhang mit Feldbezeichnern und der Zeichenlänge von Feldern stehen. Für das oben erwähnte Beispiel des UI-Elements InputField können die Eigenschaften length und tooltip an einen ABAP-Dictionary-Datentypen gebunden werden.

Die folgenden Möglichkeiten zur Anbindung an das ABAP Dictionary stehen zur Verfügung:

      Context-Attribut-Angabe

Die ABAP-Dictionary-Information wird aus dem im Context-Attribut hinterlegten ABAP-Dictionary-Typ ermittelt.

      Typangabe

Die ABAP-Dictionary-Information wird aus angegebenem ABAP-Dictionary-Typ ermittelt.

      Keine Angabe

Automatisches DDIC-Binding, wenn es sich um eine primäre Eigenschaft handelt oder bei einem Label oder einer Caption innerhalb einer TableColumn

Vorgehensweise

...

       1.      Wählen Sie bei den Eigenschaften des jeweiligen UI-Elements den Schalter für das Binding.

Diese Grafik wird im zugehörigen Text erklärt

Wenn es sich um das Binding für die Eigenschaft explanation handelt, erscheint ein spezielles Popup für Hilfetexte. Weitere Informationen finden Sie unter Hilfetexte in und für Web-Dynpro-Applikationen.

       2.      Wählen Sie auf dem Fenster zum Auswählen des Context-Elements den Schalter für das DDIC-Binding.

Diese Grafik wird im zugehörigen Text erklärt

       3.      Geben Sie den gewünschten Typ und das passende Typmerkmal an.

Diese Grafik wird im zugehörigen Text erklärt

       Typ

Angabe, welcher ABAP-Dictionary-Datentyp verwendet werden soll

       Typmerkmal

Angabe, welche Eigenschaften des ABAP-Dictionary-Datentypen verwendet werden sollen. Die folgenden Varianten sind möglich:

       Text kurz

       Text mittel

       Text lang

       Text Überschrift

       Text passend

Diese Option wird zur Zeit nicht unterstützt. Sie ist offen für zukünftige Erweiterungen. Beim HTML-Client wird bei Text passend der erste existierende Text in folgender Suchreihenfolge übernommen: mittel, lang, kurz.

       Visuelle Länge

Standardverhalten bei initialen Werten

Wenn der Wert der folgenden Eigenschaften von UI-Elementen initial ist, wird automatisch der Wert aus dem ABAP Dictionary ermittelt:

UI-Element

Eigenschaft

Wert aus dem ABAP-Dictionary

AbstractInputField

length

CO_OUTPUT_LEN

TextEdit

cols

CO_OUTPUT_LEN

Label

text

CO_AUTO_TEXT

ProgressIndicator

displayValue

CO_AUTO_TEXT

Caption bei der Verwendung in einer TableColumn

text

CO_AUTO_TEXT

Die Texte aus dem ABAP Dictionary werden in der folgenden Reihenfolge ausgewertet:

       1.      Mittlerer Text

       2.      Langer Text

       3.      Kurzer Text

       4.      Überschriftentext

 

Bindung an die Eigenschaften von Context-Attributen

Es vier ausgezeichnete Eigenschaften von UI-Elementen:

      enabled

      readOnly

      state

      visible

Diese UI-Elemente-Eigenschaften können an die so genannten Context-Attribut-Eigenschaften der primären UI-Elemente-Eigenschaft gebunden werden.

Lesen Sie hierzu mehr im Dokument Eigenschaften von Context-Attributen.

 

 

Ende des Inhaltsbereichs