Show TOC

Festwerte von AttributenLocate this document in the navigation structure

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 KapitelDatenbindung 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 einemDDIC-Typ ist, dessen Domäne bereitsFestwerte 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 KapitelDie 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.

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.

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.