Arbeiten mit DDE- und OLE - PowerPoint PPT Presentation

About This Presentation
Title:

Arbeiten mit DDE- und OLE

Description:

DDE- und OLE-Funktionen und Einsatz als OLE-Server von Microsoft Visual FoxPro Diese Schulung dient der Einf hrung in die Ansteuerung von anderen Anwendungen wie ... – PowerPoint PPT presentation

Number of Views:104
Avg rating:3.0/5.0
Slides: 81
Provided by: Rainer76
Category:
Tags: dde | ole | arbeiten | exchange | mit | und

less

Transcript and Presenter's Notes

Title: Arbeiten mit DDE- und OLE


1
Arbeiten mit DDE- und OLE
  • DDE- und OLE-Funktionen und Einsatz als
    OLE-Server vonMicrosoft Visual FoxPro

2
  • Diese Schulung dient der Einführung in die
    Ansteuerung von anderen Anwendungen wie WinWord,
    Excel, Project, Outlook via OLE-Automation
    ausMicrosoft Visual Foxpro

3
Themenübersicht
  • DDE-Funktionsübersicht, Beispiel
  • OLE-Automation mit MS WinWord, Beispiel
  • OLE-Automation mit MS Excel, Beispiel
  • MAPI und VFP
  • OLE-Automation mit MS Outlook, Beispiel
  • OLE-Automation mit MS Project
  • OLE-Automation mit MS SQL-Server
  • OLE-Automation mit MS Access
  • FPOLE.DLL-Funktionsübersicht
  • Remote OLE-Automation

4
Office Automation
  • Office Automation und Möglichkeiten der Anbindung
    von Software

5
Was ist Office Automation?
  • Betriebssystem
  • Standardanwendungen
  • Textverarbeitung
  • Tabellenkalkulation
  • Terminverwaltung etc.
  • Business Anwendungen
  • Auftragsbearbeitung bzw. eigentliche
    Geschäfts-anwendung (Eigene Programmierung)

6
Möglichkeiten der Anbindung
  • ODBC - Open Database Connectivity
  • DDE - Dynamic Data Exchange
  • OLE - Object Linking a. Embedding
  • COM - Component Object Model
  • DCOM - Distributed COM (Transport)
  • ActiveX - a new Word for OLE

7
DDE-Funktionen
  • Kurze Übersicht über die DDE-Funktionen
    vonMicrosoft Visual FoxPro

8
DDE-Funktionsübersicht
  • DDESetOption
  • Safety, TimeOut
  • DDEInitiate
  • DDEExecute
  • DDETerminate
  • DDELastError
  • DDESetTopic
  • System, ggf. Document
  • DDEPoke (Write)
  • DDERequest (Read)
  • Server
  • DDEAdvise (Topics)
  • DDEEnabled

9
DDE-Initialisierung
  • ggf. ddeSetOption( "TimeOut", 3000)
  • -- Fehlermeldungen abschalten
  • ddeSetOption( "Safety", .f.)
  • -- Prüfen ob WinWord schon geöffnet
  • lhWord ddeInitiate( "Winword", "System")
  • if lhWord lt 0
  • run /n7 lcWordExe
  • lhWord ddeInitiate( "Winword", "System")
  • if lhWord lt 0
  • return
  • endif
  • endif
  • ddeTerminate( lhWord)

10
DDE-Ansteuerung
  • if ddeExecute( lhWord, 'DateiNeu
    lcTemplate')
  • ? ddeExecute( lhWord, 'BearbeitenGeheZu
    Adresse_an')
  • ? ddeExecute( lhWord, 'Einfügen Firma GmbH
    ')
  • ? ddeExecute( lhWord, 'BearbeitenGeheZu
    Adr_Ansch')
  • ? ddeExecute( lhWord, 'Einfügen Straße"')
  • -- Und nun eine Variable/TabellenFeld einfügen
  • lcOrt PLZ Wohnort"
  • ? ddeExecute( lhWord, 'BearbeitenGeheZu
    An_Ort')
  • ? ddeExecute( lhWord, 'Einfügen lcOrt')
  • endif

11
DDE-Set Topic
  • Hier gehts darum, Falls Winword geöffnet ist,
    das
  • gewünschte Dokument als Aktives Dokument für
    den DDE-Kanal
  • anzuwählen. Mit Hilfe der Topics kann
    festgestellt werden,
  • ob ein bestimmtes Dokument geöffnet ist
  • lhWord ddeInitiate( "Winword", "System")
  • ? ddeExecute( lhWord, 'Dateiöffnen
    "lcRngDoc"')
  • lcTopics ddeRequest( lhWord, "topics")
  • if .not. (upper( lcRngDoc) upper(lcTopics))
  • ? ddeTerminate( lhWord)
  • return
  • endif

12
Verschiedene DDE-Beispiele
  • -- setzen von Topic Die Rechnung
  • lh2 DDEINITIATE( "Winword", "lcRngDoc")
  • -- An den Anfang des Dokuments gehen
  • ? ddeExecute( lh2, 'BeginnDokument')
  • -- An den Anfang der Zeile gehen
  • ? ddeExecute( lh2, 'BeginnZeile')
  • -- Markieren einschalten
  • ? ddeExecute( lh2, 'MarkierungErweitern')
  • -- bis zum Ende der Zeile markieren
  • ? ddeExecute( lh2, 'EndeZeile')
  • -- und nun den Inhalt der Markierung auslesen
  • ? ddeExecute( lh2, 'BearbeitenTextMarke
    "Auslesen"')

13
OLE-Automation Allgemein
  • Vorbemerkungen zum Einsatz von OLE-Automation

14
Was ist OLE ?
  • Client und Server
  • Die Registry
  • Objektbasiert
  • Linked Objects
  • Embedded Objects
  • OLE 2
  • embedded objects
  • in-place-editing

15
OLE Automation Allgemein
  • Application-Objekt
  • Collections - Child-Objektlisten
  • Objekte
  • Eigenschaften
  • Methoden
  • Funktionen (bei Application)
  • Sprache beachten (bzw. setzen)

16
OLE-Automation mit WinWord
  • Ansteuerung von WinWord via OLE-Automation
    ausMicrosoft Visual FoxPro

17
Vorgängerversion WinWord 95
  • Objektmodell von Word
  • nur Word.Basic interaktionsfähig
  • Befehle von Word
  • WordBasic
  • DateiBeenden
  • DateiNeu
  • Dialoge (nur lesen, nicht schreiben (!))
  • Sprache beachten für WordBasic (!)

18
OLE-Automation mit WinWord
  • Objektmodell von WinWord 97
  • Application
  • Documents
  • Paragraphs (Absätze)
  • Range (Bereich von Zeichen)
  • Chars
  • Dialoge

19
Objektmodell von WinWord
20
Alternative WordBasic
  • Für Anwendungen inWinWord 2.0 und WinWord 95
  • CreateObject(Word.Application)
  • oBasic oApp.WordBasic( ltBefehlgt)
  • oBasic.FileOpen( ltPfadgt)
  • oBasic.FilePrint()
  • oWord.Quit()
  • Hilfe WrdBasic.hlp
  • WordBasic immer verfügbar

21
Hinweise zu WinWord
  • Custom Document Properties

22
Beispiele mit WinWord
  • Verschiedene Beispiele und Übungen zu WinWord
    mitMicrosoft Visual FoxPro

23
Beispiele mit WinWord
  • An/Abmelden bei Winword
  • Koordinaten einstellen
  • Dokumente öffnen
  • Formate einstellen
  • Bereich selektieren/Fonts
  • Properties, Textmarken
  • Tabellen
  • Serienbriefe
  • Sonstige Funktionen

24
An/Abmelden bei WinWord
  • -- Instanzierung einer Word Session
  • oWord CreateObject( "Word.Application.8")
  • -- Prüfen ob Instanzierung erfolgreich
  • if isnull(oWord)
  • return
  • endif
  • -- Winword beenden
  • oWord.Quit(0)

25
Koordinaten einstellen
  • -- Sichtbar machen und Koordinaten einstellen
  • oWord.visible .t.
  • oWord.Left 380
  • oWord.Width 400
  • oWord.top 1
  • oWord.Height 540
  • -- ggf. Visual FoxPro wegschalten
  • _screen.visible .F.

26
Dokumente öffnen
  • -- bestehendes Dokument öffnen
  • owDok oWord.Documents.open( dokument")
  • owDok.Close()
  • -- neues Dokument mit Standardvorlage erstellen
  • owDok oWord.Documents.Add()
  • owDok.Close()
  • -- neues Dokument mit Vorlage erstellen
  • owDok oWord.Documents.Add( "Word97.dot")
  • owDok.Close()

27
Formate einstellen
  • -- Format und Seitenränder des Dokuments setzen
  • with owDok.PageSetup
  • .Papersize 7 A4
  • .Orientation 0 Portrait
  • -- Seitenränder in Punkten angeben
  • .LeftMarginoWord.CentimetersToPoints( 2.5 )
  • .RightMarginoWord.CentimetersToPoints( 2 )
  • .TopMarginoWord.CentimetersToPoints( 2.5 )
  • .BottomMarginoWord.CentimetersToPoints( 2 )
  • endwith

28
Bereiche selektieren
  • -- Bereich selektieren, Text einfügen
  • oRange owDok.Range
  • oRange.InsertBefore("Hallo Teilnehmer")
  • -- Font für selektierten Bereich einstellen
  • With oRange.Font
  • .Bold .t.
  • .Name "Arial"
  • .Size 24
  • EndWith

29
Properties, Textmarken
  • Properties.Add(Name,LinkToContent,Type,Value,Lin
    kSource)
  • -- Suchen mit Schleife über Count, Exits gibt es
    nicht
  • owDok.CustomDocumentProperties.Add(
    "Name",.f.,4,ltNamegt )
  • owDok.CustomDocumentProperties.Add(
    "VName",.f.,4,VName)
  • -- Textmarken
  • lcTextMarke "Adresse"
  • owDok.Bookmarks.Add( lcTextmarke, oRange)
  • if owDok.Bookmarks.Exists( lcTextmarke)
  • owDok.Bookmarks( lcTextmarke ).Select
  • endif

30
Tabellen (1)
  • -- Eine Tabelle mit 3 Spalten und 5 Zeilen
    hinzufügen
  • oTable owDok.Tables.add( oRange, 5, 3)
  • -- Die Spaltenbreiten festlegen
  • oTable.Columns(1).Width oWord.CentimetersToPoints
    ( 8)
  • oTable.Columns(2).Width oWord.CentimetersToPoints
    ( 2)
  • oTable.Columns(3).Width oWord.CentimetersToPoints
    ( 6)
  • -- Zeilenhöhe der Tabelle einstellen
  • lnHeight oWord.CentimetersToPoints( 1)
  • for each oRow in oTable.Rows
  • oRow.Height lnHeight
  • oRow.HeightRule 2 exact
  • endfor

31
Tabellen (2)
  • -- und nun die Tabelle füllen
  • -- kann natürlich auch mit Daten einer DBF sein
  • oTable.Cell( 1, 1).Range.Text WB GmbH
  • oTable.Cell( 2, 1).Range.Text Herrn Abb
  • oTable.Cell( 3, 1).Range.Text Frankfurter Str.
    21b
  • oTable.Cell( 5, 1).Range.Text 61476 Kronberg

32
Serienbrief (1)
  • lcSource "C\Projekt\Devcon\Merge.dbf"
  • OpenDataSource(Name, Format, ConfirmConversions,
  • ReadOnly, LinkToSource, AddToRecentFiles,
  • PasswordDocument, PasswordTemplate, Revert,
  • WritePasswordDocument, WritePasswordTemplate,
  • Connection, SQLStatement, SQLStatement1)
  • with owDok.MailMerge
  • .MainDocumentType 0 wdFormLetters
  • .OpenDataSource( lcSource )
  • endwith
  • owDok.MailMerge.CreateDataSource( Name, Header)
  • lcHeader "Name, Adresse, Postleitzahl, Ort,
    Land"
  • owDok.MailMerge.CreateDataSource( lcSource,
    lcHeader)

33
Serienbrief (2)
  • -- und nun die Tabelle füllen
  • -- kann natürlich auch mit Daten einer DBF sein
  • WDFieldType.WDMergeField 59
  • oTable.Cell( 1, 1).Range.Fields.Add(
  • Range, Type, Text)
  • oRange oTable.Cell( 1, 1)
  • owDok.Mailmerge.Fields.Add( oRange, "CUST_ID")
  • owDok.MailMerge.Execute()
  • owDok.SaveAs( lcPath "Word9703")
  • -- Und nun das Dokument drucken
  • owDok.PrintOut() alternativ PrintPreview()

34
Sonstige Funktionen
  • -- Datei speichern als
  • owDok.SaveAs( "meindokument" )
  • -- Dokument drucken
  • owDok.PrintOut()
  • owDok.PrintPreview()

35
OLE-Automation mit Excel
  • Ansteuerung von Excel viaOLE-Automation
    ausMicrosoft Visual FoxPro

36
OLE-Automation mit Excel
  • Excel-Objekte in der Registry
  • Application
  • Sheet (Tabelle)
  • WorkSpace (Arbeitsbereich)
  • VBAModule
  • Chart
  • Template (Vorlage)
  • Direkt erzeugbar mit CreateObject( )

37
Objektmodell von Excel
38
Hinweise zu Excel
  • SYS( 3005, 1033/1031) - Sprache
  • Excel.Application.Visible
  • Excel.InterActive für Anzeigemodus
  • Anwender kann nicht eingreifen
  • Excel.DisplayAlerts für Fehleranzeige
  • geht bei WinWord leider nicht!
  • FOR EACH MemVar IN Group

39
Beispiele mit Excel
  • Verschiedene Beispiele und Übungen zu Excel mit
    Microsoft Visual FoxPro

40
Beispiele mit Excel
  • Anmelden bei Excel
  • Tabellen anlegen
  • Werte einfügen
  • Sonstige Funktionen

41
Anmelden bei Excel
  • sys( 3005, 1033) Sprache Englisch
  • oExcel createObject( "Excel.Application")
  • if isnull( oExcel)
  • return .f.
  • endif
  • -- Fenstereinstellungen für Excel, Faktoren
    beachten
  • oExcel.Top 0
  • oExcel.Height _vfp.height0.91
  • oExcel.Left (_vfp.Width0.76) 2
  • oExcel.Width (sysmetric(1)- _vfp.width)0.74
  • -- Excel anzeigen
  • oExcel.Visible .T.

42
Tabellen anlegen (1)
  • -- Anwendereingaben verhindern
  • oExcel.Interactive .T.
  • -- Sicherheitsabfragen unterdrücken
  • oExcel.DisplayAlerts .f.
  • -- Neue Arbeitsmappen mit nur einer Tabelle
    erstellen
  • oExcel.SheetsInNewWorkBook 1
  • -- Eine Arbeitsmappe erstellen
  • -- es müßte eine Tabelle vorhanden sein
  • ? "Anzahl der Arbeitsmappen", oExcel.Workbooks.co
    unt
  • oBook oExcel.Workbooks.add

43
Tabellen anlegen (2)
  • -- Eine neue Tabelle hinzufügen
  • ? "Anzahl Tabellen in der Arbeitsmappe",
    oBook.Sheets.count
  • oSheet oBook.Sheets.add
  • ? "Anzahl Tabellen in der Arbeitsmappe",
    oBook.Sheets.count
  • -- Die Tabelle löschen
  • oSheet.delete()
  • ? "Anzahl Tabellen in der Arbeitsmappe",
    oBook.Sheets.count
  • oSheet oBook.Sheets(1)

44
Werte einfügen (1)
  • -- Nun holen wir uns den Zellbereich von A1 bis
    A12
  • oRange oSheet.Range( "A1A12")
  • und nun setzen wir in der Zelle A1 und A2 das
    Datum
  • oRange.Cells( 1, 1).Value 01.01.97
  • oRange.Cells( 2, 1).Value 01.02.97
  • Der Autofillbereich über den Bereich von A1 bis
    A12
  • oFillTo oRange
  • oSheet.Range( "A1A2").Autofill( oFillTo)

45
Werte einfügen (2)
  • -- Nun den Bereich B1 - B10 mit Formel füllen
    die Formel ist relativ
  • oRange oSheet.Range( "B1B12")
  • oRange.Formula "month( A1)"
  • -- formatieren von Zellen
  • oRange.NumberFormat ",0.00" US-Notation
  • oRange.Font.Bold .t.
  • -- Nun den Bereich C1 bis C12 füllen
  • oSheet.Range( "C1C12").Formula "B1 1.15"
  • oSheet.Range( "C1C12").Numberformat ",0.0"
  • -- Und nun das Autoformat laufen lassen
  • oSheet.Range( "A1C12").Autoformat( 10)

46
Werte einfügen (3)
  • -- 10 Datensätze in das Clipboard kopieren
  • _vfp.DataToClip( "_cTopTen", 10, 3) 3 Tabs
  • -- Datensätze in Excel einfügen
  • oExcel.ActiveSheet.Range( "A2").Select Zelle
    A2
  • oExcel.ActiveSheet.Paste() einfügen
  • -- oExcelCells erhält die Referenz auf den
  • -- eingefügten Bereich
  • oExcelCells oExcel.Selection
  • -- und nun noch ein Autoformat
  • oExcelCells.Autoformat(11)
  • -- immer zwei Reihen farblich anders

47
Sonstige Funktionen
  • -- Die aktuelle Arbeitsmappe speichern
  • oExcel.ActiveWorkBook.saveAs( "D_XLS97")
  • -- Die Summe über die Umsätze der Top 10
  • Die erste Zeile enthält die Spaltenköpfe
    (Feldnamen)
  • ? oExcel.Application.Evaluate( "sum( B2B11)")
  • -- Direktes benutzen von Funktionen, auch mit
    Arrays
  • ? oExcel.evaluate( "fv( 10, 12, 100)")
  • ? oExcel.evaluate( "correl( 121,1.11.91)")

48
Mailversand mit ActiveX
  • Empfang und Versand von elektronischen
    Nachrichten mitMicrosoft Visual FoxPro

49
Mail und VFP
  • FPW Workgroup Extensions (seit 93)
  • FOXMAPI.FLL nicht mehr unter VFP
  • VFP3 2 OLE-Container für Messaging
  • Session Control (für Einloggen)
  • Message Control (für Empfang/Versand)
  • Wahlweise Versand via Outlook

50
MAPI Session Control
  • Verwaltung einer Mailsession, Beginn mit
    Einloggen via Methode SignOn
  • LogonUI - Flag Dialogmaske für Login
  • NewSession - Flag Neue Exchange-Session
  • Username - String mit Profilname
  • DownloadMails - Flag für Abgleich (Default .T. !)
  • Rückgabe Session-ID für Message Ctrl!
  • Methode SignOff

51
MAPI Message Control (1)
  • Übertragung der SessionID
  • Aufruf Fetch()-Methode
  • FetchUnreadOnly - Nur ungelesene Messages
  • FetchSorted - Eingangsreihenfolge oder
    Benutzerreihenfolge
  • Anzahl Messages in MsgCount
  • Wechseln durch Ändern MsgIndex
  • beginnt bei 0, also nur bis MsgCount-1, 0älteste

52
MAPI Message Control (2)
  • Eigenschaften MAPI-Message
  • MsgNoteText - Nachrichtentext
  • MsgSubject - Betreff
  • MsgOrigDisplayName - Absender
  • RecipDisplayName - Collection
  • (RecipCount, RecipIndex)

53
MAPI Message Control (3)
  • Anlegen von neuen Nachrichten
  • Methode Compose( ) oder
  • MsgIndex auf -1 setzen
  • Versand mit Send( )-Methode
  • Attachments sind in einer Collection vorhanden,
    Anzahl AttachmentCount
  • Attachment in AttachmentPathName

54
OLE-Automation mit Outlook
  • Ansteuerung von MS Outlookvia OLE-Automation
    ausMicrosoft Visual FoxPro

55
OLE-Automation mit Outlook
  • Nachfolger von Exchange und Schedule
  • via Exchange Server, Office, Outlook
  • Sonderversion Outlook Express für Mail
  • Dienste werden in Profilen verwaltet
  • Dienste Exchange, Internet, Fax, CIS
  • Folder (Ein/Ausgang, Journal, Kontakte, Kalender,
    Aufgaben, Notizen)

56
Objektmodell von Outlook (1)
  • Wird bei Visual Modeler als UML mitgeliefert (VM
    in Visual Studio)
  • Ziemlich komplexes Modell
  • Kenntnisse der Struktur sind notwendig um Outlook
    anzusteuern
  • Hilfe bei Office (extra installieren)

57
Objektmodell von Outlook (2)
58
Zugriff auf Outlook
  • Getobject(, Outlook.Application)
  • Createobject(Outlook.Application)
  • NameSpace-Objekt (MAPI / Notes)
  • Login
  • CreateItem
  • Hilfe in VBAOUTL.HLP

59
Beispiele mit Outlook
  • Verschiedene Beispiele und Übungen zu Outlook
    mitMicrosoft Visual FoxPro

60
Outlook-Beispiele
  • An/Abmelden bei Outlook
  • Zugriff auf Outlook
  • Bereichseingrenzung
  • Eintrag in das Journal
  • Anlegen eines Termins
  • Anlegen eines Kontakts
  • Outlook-Konstanten

61
An/Abmelden bei Outlook
  • Anmelden bei Outlook
  • oOutlook createobject( "Outlook.Application")
  • oSession .oOutLook.GetNameSpace("MAPI")
  • oSession.LogOn( alltrim( ltlcProfilegt ), , .t.)
  • Abmelden bei Outlook
  • oSession.logoff()
  • oOutlook.quit()

62
Zugriff auf Outlook
  • -- Zugriff Journal
  • oJournal oSession.GetDefaultFolder(11)
  • -- Zugriff Termine
  • oKontakte oSession.GetDefaultFolder(9)
  • -- Zugriff Kontakte
  • oKontakte oSession.getdefaultfolder(10)

63
Bereichseingrenzung
  • Bereichseingrenzung Beispiel Journal
  • LOCAL lcRange, ldVon, ldBis
  • lcRange 'Kategorien ' alltrim(
    "ltKategoriegt" ) " '
  • lcRange 'Start gt "' dtoc( ldVon) '" '
  • lcRange 'Start lt "' dtoc( ldBis) '" '
  • oItems oJournal.Items.restrict( lcRange )
  • Schleife über Journaleinträge
  • for each oItem in oItems .. next

64
Anlegen Journaleintrag
  • -- Anlegen Eintrag Journal
  • local loItem
  • loItem oOutlook.createitem(4)
  • -- Werzuweisung
  • loItem.Subject loItem.Categories
  • loItem.Start loitem.End
  • loItem.Duration loitem.Body
  • loItem.ContactNames loitem.Type
  • loItem.Companies
  • -- Speichern
  • loItem.Save()

65
Anlegen Termin
  • -- Anlegen Eintrag Termin
  • local loTermin
  • loTermin oOutlook.createitem(1)
  • -- Werzuweisung
  • loTermin.Subject ltTitelgt
  • loTermin.Start ltDatum Zeitgt
  • loTermin.End ltDatum Zeitgt
  • loTermin.Body ltTextgt
  • -- Speichern
  • loTermin.save()

66
Anlegen Kontakt
  • -- Anlegen Eintrag Termin
  • local loAdresse
  • loAdresse oOutlook.createitem(2)
  • -- Wertzuweisung
  • loAdresse.LastName ltNamegt
  • loAdresse.FirstName ltVornamegt
  • loAdresse.EMail1Address lteMailgt
  • loAdresse.BusinessFaxNumber ltFaxgt
  • -- Speichern
  • loAdresse.save()

67
Outlook-Konstanten
  • OlDefaultFolder
  • Constant Value
  • define olFolderDeletedItems 3
  • define olFolderOutbox 4
  • define olFolderSentMail 5
  • define olFolderInbox 6
  • define olFolderCalendar 9
  • define olFolderContacts 10
  • define olFolderJournal 11
  • define olFolderNotes 12
  • define olFolderTasks 13
  • OlItems
  • Constant Value
  • define olMailItem 0
  • define olAppointmentItem 1
  • define olContactItem 2
  • define olTaskItem 3
  • define olJournalItem 4
  • define olNoteItem 5
  • define olPostItem 6
  • Hinweis Komplette Konstanten im Notizblatt zu
    dieser Seite

68
OLE-Automation mit Project
  • Ansteuerung von Project via OLE-Automation aus
    Microsoft Visual FoxPro

69
OLE-Automation mit Project
Application
Application
Project
Project
Window
Cell
Window
Cell
Resource
Resource
Task
Task
Calendar
Calendar
Pane
Pane
Resource
Resource
Assignment
Assignment
List
Task
Assignment
Assignment
List
Task
Assignment
Calendar
Resource
Calendar
Selection
Selection
Resource
Task
Task
Resource
Resource
Task
Task
List
List
70
OLE-Automation mit SQL-Server
  • Ansteuerung von MS SQL-Server via OLE-Automation
    ausMicrosoft Visual FoxPro

71
OLE-Automation mit SQL-Server
  • Noch in Vorbereitung

72
OLE-Automation mit Access
  • Ansteuerung von MS Access via OLE-Automation
    ausMicrosoft Visual FoxPro

73
OLE-Automation mit Access
  • Noch in Vorbereitung

74
Visual FoxPro als OLE-Server
  • Kurze Übersicht über die OLE-Server-Funktionen
    vonMicrosoft Visual FoxPro

75
Aufrufbare Funktionen
  • Fernsteuerung
  • FoxDoCmd
  • FoxEval
  • SetErrMode
  • SetOLEObj
  • CloseIt
  • GetLastError

76
Remote OLE Automation
  • Remote OLE-Automation aus
  • Microsoft Visual FoxPro

77
Remote OLE Automation
  • Registry Eintragung
  • Remote Automation Connection Manager
  • Erst ab VFP 6.0 sinnvoll...

78
Zusammenfassung
  • Objektmodell wichtig!
  • Automation erlaubt Einbin-dung von Office
  • Outlook einfach
  • Remote Automation

79
Vielen Dank!
  • Das waren die Themen
  • DDE-Funktionsübersicht
  • OLE-Automation mit MS WinWord
  • OLE-Automation mit MS Excel
  • MAPI und VFP
  • OLE-Automation mit MS Outlook
  • OLE-Automation mit MS Project
  • OLE-Automation mit MS SQL-Server
  • OLE-Automation mit MS Access
  • FPOLE.DLL-Funktionsübersicht
  • Aufrufbeispiel in WordBasic
  • Remote OLE-Automation

80
Wenn Fragen bestehen
  • Wizards Builders
  • Methodische Software-Entwicklung GmbH
  • Frankfurter Str. 21b
  • 61476 Kronberg
  • Tel. 06173-950906
  • Fax 06173-950907
  • CIS 101605,175
Write a Comment
User Comments (0)
About PowerShow.com