4.5 Erfragen und Ändern von Attributen
Zum Setzen und Abfragen von Attributwerten im Dialog Manager werden drei unterschiedliche Datenstrukturen verwendet. In der Struktur DM-Value kann genau ein Wert erfragt bzw. gesetzt werden, in der Struktur DM-ValueArray hingegen können bis zu 16 Werte mit einem Aufruf erfragt bzw. gesetzt werden. Die Struktur DM-ValueIndex dient zur Übergabe eines zusätzlichen Indexwertes.
Diese Strukturen sind in IDMcobls.cob und IDMcobws.cob definiert.
4.5.1 DM-Value
Mit Hilfe dieser Struktur kann immer genau ein Wert im Dialog Manager gesetzt oder erfragt werden. Diese Struktur ist wie folgt definiert:
02 DM-Value. 03 DM-object pic 9(9) binary value 0. 03 DM-attribute pic 9(9) binary value 0. 03 DM-indexcount pic 9(4) binary value 0. 03 DM-index pic 9(4) binary value 0. 03 DM-second pic 9(4) binary value 0. 03 DM-datatype pic 9(4) binary value 0. 03 DM-long-first pic 9(9) binary value 0. 03 DM-long-second pic 9(9) binary value 0. 03 DM-value-object pic 9(9) binary value 0. 03 DM-value-boolean pic 9(4) binary value 0. 03 DM-value-cardinal pic 9(4) binary value 0. 03 DM-value-classid pic XX value "??". 03 filler pic XX value low-values. 03 DM-value-integer pic S9(9) binary value 0. 03 DM-value-index. 04 DM-value-long-first pic 9(9) binary value 0. 04 filler redefines DM-value-long-first. 05 filler pic XX. 05 DM-value-first pic 9(4) binary. 04 DM-value-long-second pic 9(9) binary value 0. 04 filler redefines DM-value-long-second. 05 filler pic XX. 05 DM-value-second pic 9(4) binary. 03 DM-value-attribute pic 9(9) binary value 0. 03 DM-value-method pic 9(9) binary value 0. 03 DM-value-pointer pic X(8) value low-values. 03 DM-value-string-putlen pic 9(4) binary value 0. 03 DM-value-string-getlen pic 9(4) binary value 0. 03 DM-value-string-size pic 9(4) binary value 80. 03 DM-value-string-S. 04 DM-value-string pic X(80) value low-values. 04 filler pic X(80) value low-values. 03 filler pic XX value low-values.
Definition in der COBOL-Schnittstelle für Micro Focus Visual COBOL
02 DM-Value. 03 DM-object pic 9(9) binary value 0. 03 DM-attribute pic 9(9) binary value 0. 03 DM-indexcount pic 9(4) binary value 0. 03 DM-index pic 9(4) binary value 0. 03 DM-second pic 9(4) binary value 0. 03 DM-datatype pic 9(4) binary value 0. 03 DM-long-first pic 9(9) binary value 0. 03 DM-long-second pic 9(9) binary value 0. 03 DM-value-object pic 9(9) binary value 0. 03 DM-value-boolean pic 9(4) binary value 0. 03 DM-value-cardinal pic 9(4) binary value 0. 03 DM-value-classid pic XX value "??". 03 filler pic XX value low-values. 03 DM-value-integer pic S9(9) binary value 0. 03 DM-value-index. 04 DM-value-long-first pic 9(9) binary value 0. 04 filler redefines DM-value-long-first. 05 filler pic XX. 05 DM-value-first pic 9(4) binary. 04 DM-value-long-second pic 9(9) binary value 0. 04 filler redefines DM-value-long-second. 05 filler pic XX. 05 DM-value-second pic 9(4) binary. 03 DM-value-attribute pic 9(9) binary value 0. 03 DM-value-method pic 9(9) binary value 0. $IF P64 SET 03 DM-value-pointer pointer value null. $ELSE 03 DM-value-pointer pointer value null. 03 filler pic X(4) value low-values. $END 03 DM-value-string-putlen pic 9(4) binary value 0. 03 DM-value-string-getlen pic 9(4) binary value 0. 03 DM-value-string-size pic 9(4) binary value 80. 03 DM-value-string-S. 04 DM-value-string pic X(80) value low-values. 04 filler pic X(80) value low-values. 03 filler redefines DM-value-string-S. 04 DM-value-string-u pic N(80) national. 03 filler pic XX value low-values.
Bedeutung der Strukturelemente
Objekt, dessen Attribut verändert oder zurückgegeben werden soll.
Attribut, das gesetzt oder zurückgegeben werden soll.
Mit Hilfe dieses Strukturelementes wird gesteuert, wie viele Indizes der Dialog Manager beim Setzen oder Abfragen eines Attributes verwenden soll.
Index des Attributes, das gesetzt oder zurückgegeben werden soll.
Dieser Index ist nur gültig oder wird nur benutzt, wenn das Attribut ein indiziertes Attribut ist oder DM-indexcount mit einem Wert größer 0 belegt ist.
Dieses Element stellt den zweiten Index dar. Er wird nur benutzt, wenn DM-indexcount größer als 1 ist.
Dieses Element stellt den ersten Index dar. Er wird nur benutzt, wenn DM-indexcount größer als 1 ist und eine Funktion aufgerufen wird, die den langen Index auswertet. Diese erkennt man an dem Namen DMcob_L*
. Damit können Indexwerte im Bereich von 0 bis 65535 an den Dialog Manager übergeben werden.
Dieses Element stellt den zweiten Index dar. Er wird nur benutzt, wenn DM-indexcount größer als 1 ist und eine Funktion aufgerufen wird, die den langen Index auswertet. Diese erkennt man an dem Namen DMcob_L*
.
Dieser Datentyp beschreibt, welcher Teil der Struktur gefüllt ist und benutzt werden soll, um den Wert zu erhalten.
Wird verwendet, um ein Integer-Attribut zu setzen oder zu erhalten.
Wird verwendet, um ein Attribut zu setzen oder zu erhalten, das ein IDM-Objekt wie Farbe, Zeichensatz oder Objekt ist.
Wird verwendet, um Boolean-Attribute zu setzen oder zu erhalten.
Wird verwendet, um Enumeration und Cardinal Werte zu übergeben.
Wird verwendet, um die Klasse zu erhalten, zu der das Objekt gehört.
DM-value-first, DM-value-second
Diese beiden Elemente werden immer zusammen benutzt. In ihnen wird ein Indexwert an den Dialog Manager übergeben bzw. ein Indexwert vom Dialog Manager an die COBOL-Funktion zurückgegeben.
DM-value-long-first, DM-value-long-second
Diese beiden Elemente werden immer zusammen benutzt. In ihnen wird ein langer Indexwert mit dem Wertebereich 0 … 65535 an den Dialog Manager übergeben bzw. vom Dialog Manager an die COBOL-Funktion zurückgegeben.
Dieses Element wird belegt, wenn die ID eines benutzerdefinierten Attributes erfragt werden soll.
Dieses Element wird zur Handhabung von im Dialog Manager implementierten Methoden verwendet.
Dieses Element dient zur Übergabe von Sammlungen (Wertereferenzen) und Daten mit dem Datentyp DT-anyvalue.
Es wird nur von der COBOL-Schnittstelle für Micro Focus Visual COBOL verwendet.
Kann gesetzt werden, um dem Dialog Manager das Ende eines Strings zu zeigen, wenn der String abweichend von den getroffenen Definitionen beendet werden soll. Es wird die Anzahl der Zeichen angegeben.
Beinhaltet die Länge des vom Dialog Manager zurückgegebenen Strings. Es wird die Anzahl der Zeichen angegeben.
Internes Feld, auf keinen Fall direkt zu ändern! Es wird die Anzahl der Zeichen angegeben.
Wird verwendet, um String-Attribute zu setzen oder zu erhalten. Diese Strings dürfen nicht länger als 80 Zeichen sein.
In diesem Element können Strings als National Character (PIC N) übergeben werden, wenn mit Unicode-Strings (UTF-16) gearbeitet wird (nur Micro Focus Visual COBOL).
Hinweis
Vor IDM-Version A.06.01.d war die Struktur DM-Value wie folgt definiert:
02 DM-Value. 03 DM-object pic 9(9) binary value 0. 03 DM-attribute pic 9(9) binary value 0. 03 DM-indexcount pic 9(4) binary value 0. 03 DM-index pic 9(4) binary value 0. 03 DM-second pic 9(4) binary value 0. 03 DM-datatype pic 9(4) binary value 0. 03 DM-long-first pic 9(9) binary value 0. 03 DM-long-second pic 9(9) binary value 0. 03 DM-value-object pic 9(9) binary value 0. 03 DM-value-boolean pic 9(4) binary value 0. 03 DM-value-cardinal pic 9(4) binary value 0. 03 DM-value-classid pic XX value "??". 03 filler pic XX value low-values. 03 DM-value-integer pic S9(9) binary value 0. 03 DM-value-first pic 9(4) binary value 0. 03 DM-value-second pic 9(4) binary value 0. 03 DM-value-attribute pic 9(9) binary value 0. 03 DM-value-method pic 9(9) binary value 0. 03 DM-value-string-putlen pic 9(4) binary value 0. 03 DM-value-string-getlen pic 9(4) binary value 0. 03 DM-value-string-size pic 9(4) binary value 80. 03 DM-value-string pic X(80) value low-values. 03 filler pic XX value low-values.
4.5.2 DM-ValueIndex
Diese Struktur ermöglicht ein vollwertiges Index-Argument. Sie wird von den DMcob_Value* Funktionen der COBOL-Schnittstelle für Micro Focus Visual COBOL für die Verarbeitung der Sammlungsdatentypen genutzt. Die Struktur steht aber für alle unterstützten COBOL-Varianten zur Verfügung und ist nicht auf diese Anwendungsbereiche beschränkt. Sie ist identisch mit der Struktur DM-Value.
4.5.3 DM-ValueArray
Für den Aufruf einiger Dialog Manager Funktionen wird ein Array von bis zu 16 Strukturelementen zum Aufruf benötigt. Dazu ist folgende Struktur definiert:
02 DM-ValueArray. 03 DM-value-size pic 9(4) binary value 16. 03 DM-value-count pic 9(4) binary value 0. 03 DM-ValueRecord occurs 16 indexed by DM-valuecount. 04 DM-va-object pic 9(9) binary value 0. 04 DM-va-attribute pic 9(9) binary value 0. 04 DM-va-indexcount pic 9(4) binary value 0. 04 DM-va-index pic 9(4) binary value 0. 04 DM-va-second pic 9(4) binary value 0. 04 DM-va-datatype pic 9(4) binary value 0. 04 DM-va-long-first pic 9(9) binary value 0. 04 DM-va-long-second pic 9(9) binary value 0. 04 DM-va-value-object pic 9(9) binary value 0. 04 DM-va-value-boolean pic 9(4) binary value 0. 04 DM-va-value-cardinal pic 9(4) binary value 0. 04 DM-va-value-classid pic XX value "??". 04 filler pic XX value low-values. 04 DM-va-value-integer pic S9(9) binary value 0. 04 DM-va-value-index. 05 DM-va-value-long-first pic 9(9) binary value 0. 05 filler redefines DM-va-value-long-first. 06 filler pic XX. 06 DM-va-value-first pic 9(4) binary. 05 DM-va-value-long-second pic 9(9) binary value 0. 05 filler redefines DM-va-value-long-second. 06 filler pic XX. 06 DM-va-value-second pic 9(4) binary. 04 DM-va-value-attribute pic 9(9) binary value 0. 04 DM-va-value-method pic 9(9) binary value 0. 04 DM-va-value-pointer pic X(8) value low-values. 04 DM-va-value-string-putlen pic 9(4) binary value 0. 04 DM-va-value-string-getlen pic 9(4) binary value 0. 04 DM-va-value-string-size pic 9(4) binary value 80. 04 DM-va-value-string-S. 05 DM-va-value-string pic X(80) value low-values. 05 filler pic X(80) value low-values. 04 filler pic XX value low-values.
Definition in der COBOL-Schnittstelle für Micro Focus Visual COBOL
02 DM-ValueArray. 03 DM-value-size pic 9(4) binary value 16. 03 DM-value-count pic 9(4) binary value 0. 03 DM-ValueRecord occurs 16 indexed by DM-valuecount. 04 DM-va-object pic 9(9) binary value 0. 04 DM-va-attribute pic 9(9) binary value 0. 04 DM-va-indexcount pic 9(4) binary value 0. 04 DM-va-index pic 9(4) binary value 0. 04 DM-va-second pic 9(4) binary value 0. 04 DM-va-datatype pic 9(4) binary value 0. 04 DM-va-long-first pic 9(9) binary value 0. 04 DM-va-long-second pic 9(9) binary value 0. 04 DM-va-value-object pic 9(9) binary value 0. 04 DM-va-value-boolean pic 9(4) binary value 0. 04 DM-va-value-cardinal pic 9(4) binary value 0. 04 DM-va-value-classid pic XX value "??". 04 filler pic XX value low-values. 04 DM-va-value-integer pic S9(9) binary value 0. 04 DM-va-value-index. 05 DM-va-value-long-first pic 9(9) binary value 0. 05 filler redefines DM-va-value-long-first. 06 filler pic XX. 06 DM-va-value-first pic 9(4) binary. 05 DM-va-value-long-second pic 9(9) binary value 0. 05 filler redefines DM-va-value-long-second. 06 filler pic XX. 06 DM-va-value-second pic 9(4) binary. 04 DM-va-value-attribute pic 9(9) binary value 0. 04 DM-va-value-method pic 9(9) binary value 0. $IF P64 SET 04 DM-va-value-pointer pointer value null. $ELSE 04 DM-va-value-pointer pointer value null. 04 filler pic X(4) value low-values. $END 04 DM-va-value-string-putlen pic 9(4) binary value 0. 04 DM-va-value-string-getlen pic 9(4) binary value 0. 04 DM-va-value-string-size pic 9(4) binary value 80. 04 DM-va-value-string-S. 05 DM-va-value-string pic X(80) value low-values. 05 filler pic X(80) value low-values. 04 filler redefines DM-va-value-string-S. 05 DM-va-value-string-u pic N(80) national. 04 filler pic XX value low-values.
Bedeutung der Strukturelemente
Hier wird die Größe des Feldes abgelegt. Dieser Wert ist momentan mit 16 vorbelegt und darf nicht geändert werden.
Hinweis
Der Wert kann sich in zukünftigen Versionen ändern.
In diesem Feld wird die momentane Belegung des Arrays abgelegt, d.h., die Anzahl der im Moment benutzten Elemente des Feldes.
Objekt, dessen Attribut verändert oder zurückgegeben werden soll.
Attribut, das gesetzt oder zurückgegeben werden soll.
Mit Hilfe dieses Strukturelementes wird gesteuert, wie viele Indizes der Dialog Manager beim Setzen oder Abfragen eines Attributes verwenden soll.
Index des Attributes, das gesetzt oder zurückgegeben werden soll.
Dieser Index ist nur gültig, wenn DM-va-indexcount mit einem Wert größer 0 belegt ist.
Dieses Element stellt den zweiten Index dar. Er wird nur benutzt, wenn DM-va-indexcount größer als 1 ist.
Dieser Datentyp beschreibt, welcher Teil der Struktur gefüllt ist und benutzt werden soll, um den Wert zu erhalten.
Wird verwendet, um ein Integer-Attribut zu setzen oder zu erhalten.
Wird verwendet, um ein Attribut zu setzen oder zu erhalten, das ein IDM-Objekt wie Farbe, Zeichensatz oder Objekt ist.
Wird verwendet, um Boolean-Attribute zu setzen oder zu erhalten.
Wird verwendet, um Enumeration und Cardinal Werte zu übergeben.
Wird verwendet, um die Klasse zu erhalten, zu der das Objekt gehört.
DM-va-value-first, DM-va-value-second
Diese beiden Elemente werden immer zusammen benutzt. In ihnen wird ein Indexwert an den Dialog Manager übergeben bzw. vom Dialog Manager an die COBOL-Funktion zurückgegeben.
DM-va-value-long-first, DM-va-value-long-second
Diese beiden Elemente werden immer zusammen benutzt. In ihnen wird ein langer Indexwert mit dem Wertebereich 0 … 65535 an den Dialog Manager übergeben bzw. vom Dialog Manager an die COBOL-Funktion zurückgegeben.
Dieses Element wird belegt, wenn die ID eines benutzerdefinierten Attributs erfragt werden soll.
Dieses Element wird zur Handhabung von im Dialog Manager implementierten Methoden verwendet.
Dieses Element dient zur Übergabe von Sammlungen (Wertereferenzen) und Daten mit dem Datentyp DT-anyvalue.
Es wird nur von der COBOL-Schnittstelle für Micro Focus Visual COBOL verwendet.
Kann gesetzt werden, um dem Dialog Manager das Ende eines Strings zu zeigen, wenn der String abweichend von den getroffenen Definitionen beendet werden soll.
Beinhaltet die Länge des vom Dialog Manager zurückgegebenen Strings.
Internes Feld, auf keinen Fall direkt zu ändern!
Wird verwendet, um String-Attribute zu setzen oder zu erhalten. Diese Strings dürfen nicht länger als 80 Zeichen sein.
In diesem Element können Strings als National Character
(PIC N) übergeben werden, wenn mit Unicode-Strings (UTF-16) gearbeitet wird (nur Micro Focus Visual COBOL).
Hinweis
Vor IDM-Version A.06.01.d war die Struktur DM-ValueArray wie folgt definiert:
02 DM-ValueArray. 03 DM-value-size pic 9(4) binary value 16. 03 DM-value-count pic 9(4) binary value 0. 03 DM-ValueRecord occurs 16 indexed by DM-valuecount. 04 DM-va-object pic 9(9) binary value 0. 04 DM-va-attribute pic 9(9) binary value 0. 04 DM-va-indextype pic 9(4) binary value 0. 04 DM-va-index pic 9(4) binary value 0. 04 DM-va-second pic 9(4) binary value 0. 04 DM-va-datatype pic 9(4) binary value 0. 04 DM-va-long-first pic 9(9) binary value 0. 04 DM-va-long-scrond pic 9(9) binary value 0. 04 DM-va-value-object pic 9(9) binary value 0. 04 DM-va-value-boolean pic 9(4) binary value 0. 04 DM-va-value-cardinal pic 9(4) binary value 0. 04 DM-va-value-classid pic XX value "??". 04 filler pic XX value low-values. 04 DM-va-value-integer pic S9(9) binary value 0. 04 DM-va-value-first pic 9(4) binary value 0. 04 DM-va-value-second pic 9(4) binary value 0. 04 DM-va-value-attribute pic 9(9) binary value 0. 04 DM-va-value-method pic 9(9) binary value 0. 04 DM-va-value-string-putlen pic 9(4) binary value 0. 04 DM-va-value-string-getlen pic 9(4) binary value 0. 04 DM-va-value-string-size pic 9(4) binary value 80. 04 DM-va-value-string pic X(80) value low-values. 04 filler pic XX value low-values.
4.5.4 Datentypen in der DM-Value und DM-ValueArray Struktur
Werden über DM-Value bzw. DM-ValueArray beim Dialog Manager Werte erfragt, so setzt der DM entsprechend dem erfragten Attribut das Strukturelement DM-datatype bzw. DM-va-datatype.
Dabei gibt es folgende mögliche Belegungen:
Da es beim Setzen von Attributwerten mehrere mögliche Datentypen geben kann, muss entsprechend dem verwendeten Datentyp das Element DM-datatype gesetzt werden, damit der DM den Wert aus dem entsprechenden Element herauslesen kann.
Die möglichen Werte für DT-scope sind:
Defaultobjekt |
|
Modell |
|
Instanz |