4.8 Datenfunktions-Struktur DM-Datafunc-Data
Diese Struktur wird immer als Parameter an Datenfunktionen übergeben.
Die Struktur ist hier vereinfacht wiedergegeben. Die vollständige Definition steht in der Datei IDMcoboc.cob.
01 DM-Datafunc-Data. 02 DM-df-object pic 9(9) binary. 02 DM-df-task pic 9(9) binary. 02 DM-df-attribute pic 9(9) binary. 02 DM-df-method pic 9(9) binary. 02 DM-df-identifier pic X(80). 02 DM-df-args. * Ist identisch zur Struktur DM-ValueArray. 02 DM-df-index. * Ist identisch zur Struktur DM-Value. 02 DM-df-data-pointer pointer. 02 DM-df-retval-pointer pointer.
Bedeutung der Elemente
DM-df-object
In diesem Element wird die Objekt-ID des Datenmodells an die Datenfunktion übergeben.
DM-df-task
In diesem Element wird der Grund des Aufrufs angegeben. Hier sind zur Zeit die folgende Werte möglich: MT-get, MT-set oder MT-call. Bei MT-get sollte die Datenfunktion für ein Modell-Attribut die nötigen Daten zurückliefern. Über MT-set werden Änderungen von der View an die Datenfunktion weitergeleitet. MT-call dient dazu, Daten-Aktionen zu implementieren, also Aufrufe welche zu einer vielfältigen
Manipulation der Daten führen. Sinnvollerweise sollten Änderungen an Daten immer über DMcob_DataChanged gemeldet werden.
DM-df-attribute
Für die Aufrufgründe MT-get und MT-set steht in diesem Element das Attribut auf das die Funktion anzuwenden ist.
DM-df-method
Für den Aufrufgrund MT-call steht in diesem Element die Methode welche die Datenfunktion ausführen soll. Diese wird durch einen Aufruf einer Daten-Aktion über die Methode :calldata(<Method>,<Arg1>,...<Arg15>) ausgelöst.
DM-df-identifier
DM-df-indentifier-u
In diesen Elementen steht der Attributbezeichner (aus dem DM-df-attribute-Element) oder der Methodenbezeichner (aus dem DM-df-method-Element) in String-Form um die Implementierung bei benutzerdefinierten Attributen zu erleichtern bzw. einen modulunabhängigen Vergleich von Attributen bzw. Methoden zu ermöglichen.
In DM-df-indentifier-u können Bezeichner auch als National Character (PIC N) übergeben werden, wenn mit Unicode-Texten (UTF-16) gearbeitet wird.
DM-df-args
In diesem Element sind für den Aufrufgrund MT-call (Daten-Aktion die über :calldata() aufgerufen wird) die Anzahl der Argumente (DM-df-args-count) und die Argumentliste (DM-df-valuerec) hinterlegt. Eine Rückgabe oder Veränderung von Argumenten ist damit nicht vorgesehen bzw. ohne Wirkung.
Hinweis
Diese Struktur ist vom Aufbau identisch zu DM-ValueArray.
DM-df-index
In diesem Element steht der Indexwert des Attributzugriffs auf den sich der Aufrufgrund MT-get bzw. MT-set bezieht. Hat das DM-df-index-Element den Datentyp DT-void, ist damit der Gesamtwert gemeint. Für indizierte Datenwerte sollten die Relationsarten und auch die Verarbeitung von unvollständigen Indexwerten (z.B. [0], [?,0] oder [0,?]) beachtet werden.
Hinweis
Diese Struktur ist vom Aufbau identisch zu DM-Value.
DM-df-data-pointer
In diesem Element steht für den Aufrufgrund MT-set der Datenwert der von der Datenfunktion zu verarbeiten ist.
Hinweis
Die Daten werden als DT-anyvalue-Wert übergeben, da es sich hier meist um Sammlungen handeln wird. Der Wert bzw. die Werte können mit DMcob_ValueGet und den anderen DMcob_Value*-Funktionen ausgelesen werden.
DM-df-retval-pointer
In diesem Element ist für den Aufrufgrund MT-get der Datenwert für das angegebene Attribut und den gesetzten Index zurückzuliefern.
Hinweis
Der Rückgabewert wird als DT-anyvalue-Wert übergeben, da es sich hier meist um Sammlungen handeln wird. Der Rückgabewert kann mit DMcob_ValueChange geändert und gefüllt werden.
Verfügbarkeit
Nur COBOL-Schnittstelle für Micro Focus Visual COBOL.