Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Festwerte von Attributen  Dokument im Navigationsbaum lokalisieren

Festwerte nennt man die begrenzte Menge aller zugelassen Werte für ein Eingabefeld. Einige UI-Elemente, die zur Entgegennahme von Benutzereingaben dienen, müssen aus dem zugehörigen Context heraus mit solchen Festwerten versorgt werden. Das heißt, das Attribut, an welches das UI-Element gebunden wird, ist mit einem Set an Festwerten belegt aus denen der Benutzer eines als seine Eingabe auswählt. Die Festwerte für diese möglichen Eingabewerte die das Context-Attribut bereitstellt, wird an die UI-Elemente-Eigenschaft SelectedKey gebunden. Lesen Sie hierzu auch das Kapitel Datenbindung mittels Index und Schlüssel.

Festwerte von Attributen werden benötigt für die beiden UI-Controls

      DropDownByKey und

      RadiobuttonGroupByKey.

Für das UI-Element

      Inputfield

kann das Context-Attribut, an welches das Element gebunden ist, ebenfalls mit einem Set von Festwerten vorbelegt sein. Diese Festwerte werden dann dem Benutzer von der F4-Hilfe als Eingabe vorgeschlagen. Außerdem bezieht sich dann die Eingabeprüfung auf die Menge der vorhandenen Festwerte.

Attribut mit DDIC-Typ mit Festwerten

Wenn ein Context-Attribut von einem DDIC-Typ ist, dessen Domäne bereits Festwerte anbietet, werden diese automatisch in der zugehörigen Node-Info (siehe unten) hinterlegt.

Attribut ohne DDIC-Typ mit Festwerten

Wenn das Attribut jedoch nicht von einem DDIC-Typ mit Festwerten ist, müssen die Festwerte auf andere Weise bereit gestellt und in der Node-Info hinterlegt werden.

Interface IF_WD_CONTEXT_NODE_INFO

Im Kapitel Die Referenzvariable WD_CONTEXT wurde bereits auf das Interface IF_WD_CONTEXT_NODE eingegangen. Dieses Interface verfügt über die Methode GET_NODE_INFO, welche ihrerseits Meta-Informationen über den jeweiligen Knoten zurück liefert. Diese Informationen sind vom Typ IF_WD_CONTEXT_NODE_INFO.

 

method WDDOINIT .

 

data:     NODE_INFO type ref to IF_WD_CONTEXT_NODE_INFO.

          

                 

NODE_INFO = WD_CONTEXT->GET_NODE_INFO( ).

NODE_INFO = NODE_INFO->GET_CHILD_NODE( 'NODE1' ).

Um die Festwerte für das Attribut in der Node-Info ablegen zu können, sind zwei zusätzliche Variablen nötig:

          

data:    LT_VALUESET type WDR_CONTEXT_ATTR_VALUE_LIST 

      L_VALUE type WDR_CONTEXT_ATTR_VALUE.

 

WDR_CONTEXT_ATTR_VALUE ist ein im DDIC hinterlegter Datentyp. Er enthält zwei Komponenten KEY und VALUE, beide vom Typ STRING.

WDR_CONTEXT_ATTR_VALUE_LIST ist ein im DDIC hinterlegter Tabellentyp, dessen Zeilen von Typ WDR_CONTEXT_ATTR_VALUE sind.

Die beiden im Quelltext-Beispiel angelegten Variablen dienen der Aufnahme der Wertepaare, die später an die Node-Info übergeben werden.

          

L_VALUE-VALUE      = 'V1'.

L_VALUE-TEXT    = 'yesterday'.

     INSERT L_VALUE into table LT_VALUESET.

 

L_VALUE-VALUE      = 'V2'.

L_VALUE-TEXT    = 'today'.

     INSERT L_VALUE into table LT_VALUESET.

 

L_VALUE-VALUE      = 'V3'.

L_VALUE-TEXT    = 'tomorrow'.

     INSERT L_VALUE into table LT_VALUESET.

 

Achtung In einer solchen Anwendung sollte der Value-Wert sprachabhängig programmiert werden!

          

NODE_INFO->SET_ATTRIBUTE_VALUE_SET (

             NAME = 'ATTRIBUTE1'

        VALUE_SET = LT_VALUESET ).

 

endmethod.

 

Achtung Das Setzen dieser Felder gilt für alle Knoten die an diese Node-Info geknüpft wurden. Auch in bereits existierenden Knoten wird die Wertemenge mit Setzen der Node-Info-Attribute neu gesetzt.

Eine Manipulation der Node-Info darf nicht in einer Supply-Funktion implementiert werden, da der Zeitpunkt, zu dem die Methode gerufen wird, nicht explizit feststeht. Die Node-Info sollte daher möglichst immer in der Methode WDDOINIT bearbeitet werden.

Wenn ein Attribut an DDIC-Festwerte geknüpft ist, kann die Werteliste mit Hilfe der Node-Info geändert werden. Ein sinnvolles Beispiel hierfür wäre die zusätzliche Einschränkung der Werteliste.

 

Ende des Inhaltsbereichs