
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
Für das UI-Element
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.