1 / 20

OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls

OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls. 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).

seanna
Télécharger la présentation

OLE/ OLE-Automation mit VFP Einsatz von ActiveX Controls

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OLE/ OLE-Automation mit VFPEinsatz 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 GENERALBsp.:APPEND GENERAL oFeld from brief1.docAPPEND 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 = oFeldThisform.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)

  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) • 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 http://www.tmn-systemberatung.de info@tmn-systemberatung.de

More Related