DDE-Schnittstelle
DDE (Dynamic Data Exchange) ist ein dynamischer Datenaustausch zwischen Windows-Anwendungen. Für die Durchführung des dynamischen Datenaustausches ist eine Client-Anwendung, die den Austausch initiiert, und eine Server-Anwendung, die die gewünschten Informationen zurück liefert bzw. die gewünschten Aktionen ausführt, erforderlich. FlexPro kann als Server für eine DDE-Kommunikation dienen und Befehle, die vom Client gesendet werden, ausführen. Ein typischer Client ist z. B. eine Visual-Basic-Applikation, die Daten von einem Gerät entgegennimmt, diese in einer Datei abspeichert und FlexPro zur Auswertung und Dokumentation der Daten fernsteuert.
Hinweis Die modernere Automation Schnittstelle vom FlexPro bietet wesentlich umfassendere Möglichkeiten zur Kommunikation zwischen FlexPro und einer Client-Anwendung. Sie sollten diese der DDE-Schnittstelle vorziehen.
Verbindungsaufbau, Interaktion und Terminierung
Um FlexPro-Funktionen aus anderen Windows-Programmen, die die DDE-Kommunikation als Client unterstützen, ausführen zu können, muss zunächst eine DDE-Verbindung aufgebaut werden. Dies geschieht durch senden der Botschaft WM_DDE_INITIATE, wobei als Applikation "FlexPro" oder "FlexPro 13" und als Thema "SYSTEM" angegeben wird. Falls der Verbindungsaufbau erfolgreich durchgeführt wurde, erfolgt eine Quittierung durch eine WM_DDE_ACK-Botschaft. Wenn Sie eine Versionsnummer angegeben haben, ist der Verbindungsaufbau nur dann erfolgreich, wenn genau diese Version von FlexPro installiert ist.
Anschließend können beliebig viele Befehle mit Hilfe der Botschaft WM_DDE_EXECUTE an FlexPro zur Ausführung gesandt werden. Es ist auch möglich, mit einer Botschaft mehrere Befehle zusammen zu senden. Falls ein Befehl korrekt empfangen wurde, wird dies durch eine WM_DDE_ACK-Botschaft bestätigt. Diese Bestätigung erfolgt auch dann, wenn der oder die empfangenen Befehle nicht korrekt ausgeführt werden können.
Wenn die Client-Anwendung alle gewünschten Befehle an FlexPro abgesetzt hat, wird die DDE-Kommunikation durch senden der WM_DDE_TERMINATE-Botschaft beendet.
Visual-Basic Beispiel
Hier ein kurzes Beispiel, wie eine DDE-Kommunikation, die zum Ausdruck eines Dokuments benutzt wird, mittels einer Client-Anwendung in Visual-Basic realisiert werden kann:
Sub Dokumentiere_Click ()
Const NONE = 0, LINK_MANUAL = 2 ' Konstanten
Dim Cmd, Z ' Variablen
' Befehle zusammenstellen:
Cmd = "[open(""c:\Projektdatenbanken\Versuch.fpd"")]"
Cmd = Cmd & "[openobject(""Dokument.doc"")]"
Cmd = Cmd & "[update]"
Cmd = Cmd & "[print]"
Cmd = Cmd & "[closeobjects]"
Cmd = Cmd & "[close]"
If Text1.LinkMode = NONE Then
Z = Shell("FlexPro", 4) ' FlexPro starten
Text1.LinkTopic = "FlexPro 11|System" ' Linkthema setzen
Text1.LinkItem = "" ' Linkelement
Text1.LinkMode = LINK_MANUAL ' Linkmodus
End If
Text1.LinkExecute Cmd ' Befehle ausführen
End Sub
Ein Aufruf dieses Unterprogramms könnte z. B. erfolgen, wenn die Quelldaten, die dem Dokument zugrunde liegen, durch ein Messwerterfassungsprogramm überschrieben worden wären.
Mit den zur Verfügung stehenden Befehlen ist es möglich, Projektdatenbanken zu öffnen und zu schließen, Objekte in der Projektdatenbank zu öffnen, zu aktualisieren, zu drucken und zu schließen sowie Ordner zu aktivieren.
Die verfügbaren Befehle können, wie oben beschrieben, mit einer WM_DDE_EXECUTE-Botschaft einzeln oder gebündelt an FlexPro gesandt werden.
Hinweis In FlexPro ist es grundsätzlich möglich, mit mehreren Projektdatenbanken gleichzeitig zu arbeiten. Im Zusammenhang mit der DDE-Kommunikation besteht diese Möglichkeit nicht, da sonst bei jedem Befehl, außer beim Öffnen einer Projektdatenbank, die bezogene Projektdatenbank angegeben werden müsste.