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.