OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls
description
Transcript of OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls
OLE/ OLE-Automation mit VFPEinsatz von ActiveX Controls
© 1999 TMN-Systemberatung GmbH
Allgemeines zu OLE/ActiveX
OLE = „Object Linking and Embedding“ Nutzung in VFP über verschiedene Wege
– Objektfelder in Tabellen– Olebound-Control-Steuerelemente– Olecontrol Active-X Steuerelemente
OLE-Automatisierung (programmatisch)
© 1999 TMN-Systemberatung GmbH
Verknüpfen bzw. Einbetten von Objektfeldern Objektfelder aus Tabellen können über das
Steuerelement OLEBOUNDCONTROL (gebundenes ActiveX-Steuerelement) auf einer Form plaziert werden
WICHTIG: Objekte (z.B. WAVE-Datei) können - eingebettet (Kopie der Datei im Objektfeld) - verknüpft werden (Link zur Originaldatei)
© 1999 TMN-Systemberatung GmbH
Unterschiede verknüpft / eingebettete Objektdaten Verknüpfte Objektdateien
– Änderungen an der Originaldatei sind auch in der Form zu sehen.
– Doppelclick auf das Steuerelement erlaubt keine direkte Bearbeitung des Objekts auf der Form.
eingebettete Objektdateien– Objekt komplett im Objektfeld der Tabelle.– Doppelclick erlaubt direkte Bearbeitung, Menü
wird automatisch umgestellt.
© 1999 TMN-Systemberatung GmbH
Hinzufügen von OLE-Objekten zu Tabellen Tabelle erstellen mit einem Feld oFeld, Typ
„OBJEKT“ Einfügen von Daten über
- Menüpunkt „Bearbeiten“-“Objekt Einfügen“- Befehle APPEND GENERAL bzw. MODIFY GENERALBsp.:APPEND GENERAL oFeld from brief1.docAPPEND GENERAL oFeld from brief1.doc LINK
© 1999 TMN-Systemberatung GmbH
Hinzufügen von OLE-Objekten zu Formularen Im Formular-Designer über
- „gebundenes Ole-Steuerelement“ (OLEBOUNDCONTROL)
in einer Methode thisform.addobject(„octrl“,“oleboundcontrol“)thisform.octrl.controlsource = oFeldThisform.octrl.visible = .t.
© 1999 TMN-Systemberatung GmbH
Bearbeiten von Objekten durch OLE-Automatisierung Automatisierung von Microsoft Word ab Version 8.0
sinnvoll möglich.Vorsicht bei alten Word Versionen: – Versionen vor Word 97 haben kein durchgängiges
Objektmodell – Bei diesen Versionen sollten Sie lieber DDE statt OLE
Automation verwenden !– Länderversionen führen teilweise zu
übersetzten Befehlsaufrufen insbesondere bei DDE-Funktionen z.B. „Speichern“ statt „Save“ Ausweg: sys(3004), SYS(3005,1033), sys(3006)
© 1999 TMN-Systemberatung GmbH
WORD Automatisieren
oDoc = createobject(„word.application“)sys(3005,1033) && englisch!!!!!oDoc.documents.open(„brief1.doc“)oDoc.activedocument.saveas(„neuerbrief.doc“)oDoc.visible = „true“oDoc.activate()
Achtung: - createobject erzeugt jedesmal eine neue Instanz von Word Getobject gibt ein neues Objekt zurück, wenn Word bereits gestartet war - sonst erzeugt der Aufruf einen Fehler- benannte Parameter können den Methoden des Objekts nur übergeben werden, wenn Sie die Headerdateien einbinden. In der Regel Übergabe von VFP als Wert.
© 1999 TMN-Systemberatung GmbH
WORD-Objektmodell
© 1999 TMN-Systemberatung GmbH
Informationen zur WORD-OLE
Datei POSITION.HLP s. Unterlagen Datei POSIT32.TXT s.Unterlagen Datei WINWORD8.H s. Unterlagen MSDN Hilfedatei VBAWRD8.HLP Office-Professional Dokumentation (CD
Durchsuchen!! Infos werden normalerweise nicht mit installiert.)
© 1999 TMN-Systemberatung GmbH
EXCEL Automatisieren
oDoc = createobject(„excel.application“)sys(3005,1033) && englisch !!oDoc.workbooks.open(getfile("XLS"))oDoc.activeworkbook.saveas("neu.XLS")oDoc.visible = "true"oDoc.activate()
Achtung: -createobject erzeugt jedesmal eine neue Instanz von EXCEL getobject gibt ein neues Objekt zurück, wenn EXCEL bereits gestartet war - sonst erzeugt der Aufruf einen Fehler.- benannte Parameter können den Methoden des Objekts nur übergeben werden, wenn Sie die Headerdateien einbinden. In der Regel Übergabe von VFP als Wert.
© 1999 TMN-Systemberatung GmbH
EXCEL Objektmodell
© 1999 TMN-Systemberatung GmbH
Informationen zur EXECL-OLE
MSDN Hilfe-Datei VBAXL8.hlp Office-Professional Dokumentation (CD
Durchsuchen!! Infos werden normalerweise nicht mit installiert
© 1999 TMN-Systemberatung GmbH
Objektmodelle der OLE-Server
Zentrales Problem bei der OLE-Automatisierung ist die Beschaffung des Objektmodells d.h. Die Dokumentation über die Eigenschaften und Methoden des verwendeten OLE-Objekts.
Ansonsten: MSDN, Knowledgebase, Hersteller...
© 1999 TMN-Systemberatung GmbH
ActiveX
ActiveX Controls können Sie direkt über die Form/Class Designer Steuerelemente Toolbar hinzufügen. (angezeigt werden nur die ActiveX-Komponenten die unter EXTRAS-OPTIONEN aktiviert wurden).
ActiveX werden als OleControl eingefügt. Häufig liegt die Dokumentation der ActiveX-
Komponenten auf der rechten Maustaste im Form-Designer. Hiermit kann man auch die wichtigsten Eigenschaften gezielt einstellen.
© 1999 TMN-Systemberatung GmbH
ActiveX
_VFP.AutoYield = .F.– ActiveX Waitstate, OnKeyLabel/Mouse Queue,
SET ESCAPE OFF, Queries ohne Pause, kein Switch-Back zu VFP
Verschiedene Eigenschaften von ActiveX Controls sind nur über „Object“ erreichbar.Bsp.: oleKalender.Object.value
Sie können ActiveX Elemente vererben, indem Sie diese in VFP Klassen packen.
© 1999 TMN-Systemberatung GmbH
ActiveX
SYS(2333)– VTABLE-Binding bzw. DualInterface-Support
SYS(3004 / 3005)– Return / Set Locale ID– 1029 Czech, 1031 Deutsch, 1033 Englisch, 1034
Spanisch, 1036 Franz., 1040 Ital., 1045 Polnisch, 1046 Brasilianisch, 2070 Portugiesisch
(Def) OLECID setzt nur Interface
© 1999 TMN-Systemberatung GmbH
ActiveX
ActiveX Controls können mit dem VFP Debugger problemlos debugged werden.
Sie können in VFP eigentlich fast alle verfügbaren ActiveX Controls einsetzen
Der ActiveX-Markt boomt Erheblicher Zeitbedarf für Sichtung und Test Sie müssen sich bei jedem Control in dessen
Objektmodell einarbeiten und sind daher auf eine gute Hilfe/Dokumentation angewiesen.
© 1999 TMN-Systemberatung GmbH
Zusammenfassung
OLE in VFP Word und Excel OLE Automation ActiveX Controls einsetzen
© 1999 TMN-Systemberatung GmbH
Anregungen und Fragen
TMN-Systemberatung GmbH
Allee 62
74072 Heilbronn
http://www.tmn-systemberatung.de