Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls

Ähnliche Präsentationen


Präsentation zum Thema: "OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls"—  Präsentation transkript:

1 OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls

2 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)

3 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)

4 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.

5 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 GENERAL Bsp.: APPEND GENERAL oFeld from brief1.doc APPEND GENERAL oFeld from brief1.doc LINK

6 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 = oFeld Thisform.octrl.visible = .t.

7 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) altlang = sys(3004) && alte gebietskennung auslesen SYS(3005,1033) && ole auf englisch umstellen ************ olebefehle abarbeiten sys(3005,altlang) && alte gebietskennung wieder aktivieren Applikationseigenschaft _VFP.autoyield = .f. einstellen damit Windowsereignisse immer in der richtigen Reihenfolge abgearbeitet werden

8 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.

9 WORD-Objektmodell

10 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.)

11 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.

12 EXCEL Objektmodell

13 Informationen zur EXECL-OLE
MSDN Hilfe-Datei VBAXL8.hlp Office-Professional Dokumentation (CD Durchsuchen!! Infos werden normalerweise nicht mit installiert

14 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...

15 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.

16 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.

17 ActiveX SYS(2333) SYS(3004 / 3005) (Def) OLECID setzt nur Interface
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

18 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.

19 Zusammenfassung OLE in VFP Word und Excel OLE Automation
ActiveX Controls einsetzen

20 Anregungen und Fragen TMN-Systemberatung GmbH Allee 62 74072 Heilbronn


Herunterladen ppt "OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls"

Ähnliche Präsentationen


Google-Anzeigen