Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Arbeiten mit DDE- und OLE

Ähnliche Präsentationen


Präsentation zum Thema: "Arbeiten mit DDE- und OLE"—  Präsentation transkript:

1 Arbeiten mit DDE- und OLE
DDE- und OLE-Funktionen und Einsatz als OLE-Server von Microsoft Visual FoxPro

2 Diese Schulung dient der Einführung in die Ansteuerung von anderen Anwendungen wie WinWord, Excel, Project, Outlook via OLE-Automation aus Microsoft 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 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 Kurze Übersicht über die DDE-Funktionen von Microsoft 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 < 0 run /n7 &lcWordExe return 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 aus Microsoft 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 in WinWord 2.0 und WinWord 95: CreateObject(“Word.Application”) oBasic= oApp.WordBasic( <Befehl>) oBasic.FileOpen( <Pfad>) 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 mit Microsoft 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() *-- neues Dokument mit Vorlage erstellen owDok= oWord.Documents.Add( "Word97.dot")

27 Formate einstellen *-- Format und Seitenränder des Dokuments setzen
with owDok.PageSetup .Papersize= 7 && A4 .Orientation= 0 && Portrait *-- Seitenränder in Punkten angeben .LeftMargin=oWord.CentimetersToPoints( 2.5 ) .RightMargin=oWord.CentimetersToPoints( 2 ) .TopMargin=oWord.CentimetersToPoints( 2.5 ) .BottomMargin=oWord.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,LinkSource) *-- Suchen mit Schleife über Count, Exits gibt es nicht =owDok.CustomDocumentProperties.Add( "Name",.f.,4,“<Name>“ ) =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= “W&B 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 via OLE-Automation aus Microsoft 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.height*0.91 oExcel.Left= (_vfp.Width*0.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.count 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 *-- Die Tabelle löschen oSheet.delete() oSheet= oBook.Sheets(1)

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

45 Werte einfügen (2) *-- Nun den Bereich B1 - B10 mit Formel füllen: die Formel ist relativ oRange= oSheet.Range( "B1:B12") 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( "C1:C12").Formula= "=B1* 1.15" oSheet.Range( "C1:C12").Numberformat= "#,##0.0" *-- Und nun das Autoformat laufen lassen oSheet.Range( "A1:C12").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( B2:B11)") *-- Direktes benutzen von Funktionen, auch mit Arrays ? oExcel.evaluate( "fv( 10%, 12, 100)") ? oExcel.evaluate( "correl( {1;2;1},{1.1;1.9;1})")

48 Mailversand mit ActiveX
Empfang und Versand von elektronischen Nachrichten mit Microsoft 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 Outlook via OLE-Automation aus Microsoft 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 mit Microsoft 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( <lcProfile> ), , .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( "<Kategorie>" ) + ‘ " ' lcRange= '[Start] >= "'+ dtoc( ldVon)+ '" ' lcRange= '[Start] <= "'+ 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 = <Titel> loTermin.Start = <Datum Zeit> loTermin.End = <Datum Zeit> loTermin.Body = <Text> *-- Speichern loTermin.save()

66 Anlegen Kontakt *-- Anlegen Eintrag Termin local loAdresse
loAdresse = oOutlook.createitem(2) *-- Wertzuweisung loAdresse.LastName = <Name> loAdresse.FirstName = <Vorname> loAdresse. 1Address = < > loAdresse.BusinessFaxNumber = <Fax> *-- Speichern loAdresse.save()

67 Outlook-Konstanten OlDefaultFolder OlItems * 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 * OlActionCopyLike * Constant Value #define olReply 0 #define olReplyAll 1 #define olForward 2 #define olReplyFolder 3 #define olRespond 4 * OlActionReplyStyle * Constant Value #define olOmitOriginalText 0 #define olEmbedOriginalItem 1 #define olIncludeOriginalText 2 #define olIndentOriginalText 3 * OlActionResponseStyle #define olOpen 0 #define olSend 1 #define olPrompt 2 * OlActionShowOn #define olDontShow 0 #define olMenu 1 #define olMenuAndToolbar 2 * OlAttachmentType #define olByValue 1 #define olByReference 4 #define olEmbeddedItem 5 #define olOLE 6 * OlBusyStatus #define olFree 0 #define olTentative 1 #define olBusy 2 #define olOutOfOffice 3 * OlDaysOfWeek #define olSunday 1 #define olMonday 2 #define olTuesday 4 #define olWednesday 8 #define olThursday 16 #define olFriday 32 #define olSaturday 64 * OlDefaultFolders #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 * OlFlagStatus #define olNoFlag 0 #define olFlagComplete 1 #define olFlagMarked 2 * OlFolderDisplayMode * Constant Value #define olFolderDisplayNormal 0 #define olFolderDisplayFolderOnly 1 #define olFolderDisplayNoNavigation 2 * OlFormRegistry #define olDefaultRegistry 0 #define olPersonalRegistry 2 #define olFolderRegistry 3 #define olOrganizationRegistry 4 * OlGender #define olUnspecified 0 #define olFemale 1 #define olMale 2 * OlImportance #define olImportanceLow 0 #define olImportanceNormal 1 #define olImportanceHigh 2 * OlInspectorClose #define olSave 0 #define olDiscard 1 #define olPromptForSave 2 * OlItems #define olMailItem 0 #define olAppointmentItem 1 #define olContactItem 2 #define olTaskItem 3 #define olJournalItem 4 #define olNoteItem 5 #define olPostItem 6 * OlJournalRecipientType #define olAssociatedContact 1 * OlMailingAddress * Constant Value #define olNone 0 #define olHome 1 #define olBusiness 2 #define olOther 3 * OlMailRecipientType #define olOriginator 0 #define olTo 1 #define olCC 2 #define olBCC 3 * OlMeetingRecipientType #define olOrganizer 0 #define olRequired 1 #define olOptional 2 #define olResource 3 * OlMeetingResponse #define olMeetingTentative 2 #define olMeetingAccepted 3 #define olMeetingDeclined 4 * OlMeetingStatus #define olNonMeeting 0 #define olMeeting 1 #define olMeetingReceived 3 #define olMeetingCanceled 5 * OlNoteColor #define olBlue 0 #define olGreen 1 #define olPink 2 #define olYellow 3 #define olWhite 4 * OlRecurrenceType #define olRecursDaily 0 #define olRecursWeekly 1 #define olRecursMonthly 2 #define olRecursMonthNth 3 #define olRecursYearly 5 #define olRecursYearNth 6 * OlRemoteStatus #define olRemoteStatusNone 0 #define olUnMarked 1 #define olMarkedForDownload 2 #define olMarkedForCopy 3 #define olMarkedForDelete 4 * OlResponseStatus #define olResponseNone 0 #define olResponseOrganized 1 #define olResponseTentative 2 #define olResponseAccepted 3 #define olResponseDeclined 4 #define olResponseNotResponded 5 * OlSaveAsType #define olTXT 0 #define olRTF 1 #define olTemplate 2 #define olMSG 3 #define olDoc 4 * OlSensitivity #define olNormal 0 #define olPersonal 1 #define olPrivate 2 #define olConfidential 3 * OlTaskDelegationState #define olTaskNotDelegated 0 #define olTaskDelegationUnknown 1 #define olTaskDelegationAccepted 2 #define olTaskDelegationDeclined 3 * OlTaskOwnership #define olNewTask 0 #define olDelegatedTask 1 #define olOwnTask 2 * OlTaskRecipientType #define olUpdate 1 #define olFinalStatus 2 * OlTaskResponse #define olTaskSimple 0 #define olTaskAssign 1 #define olTaskAccept 2 #define olTaskDecline 3 * OlTaskStatus #define olTaskNotStarted 0 #define olTaskInProgress 1 #define olTaskComplete 2 #define olTaskWaiting 3 #define olTaskDeferred 4 * OlTrackingStatus #define olTrackingNone 0 #define olTrackingDelivered 1 #define olTrackingNotDelivered 2 #define olTrackingNotRead 3 #define olTrackingRecallFailure 4 #define olTrackingRecallSuccess 5 #define olTrackingRead 6 #define olTrackingReplied 7 * OlUserPropertyType #define olText 1 #define olNumber 3 #define olDateTime 5 #define olYesNo 6 #define olDuration 7 #define olKeywords 11 #define olPercent 12 #define olCurrency 14 #define olFormula 18 #define olCombination 19

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

69 OLE-Automation mit Project
Application Application Project Project Cell Cell Window Window Task Task Resource Resource Calendar Calendar Resource Resource Pane Pane Assignment Assignment Assignment Assignment List List Task Task Assignment Resource Resource Calendar Calendar Selection Selection Task Task Resource Resource Task Task Object only Object and Collection Legend List List

70 OLE-Automation mit SQL-Server
Ansteuerung von MS SQL-Server via OLE-Automation aus Microsoft Visual FoxPro

71 OLE-Automation mit SQL-Server
Noch in Vorbereitung

72 OLE-Automation mit Access
Ansteuerung von MS Access via OLE-Automation aus Microsoft Visual FoxPro

73 OLE-Automation mit Access
Noch in Vorbereitung

74 Visual FoxPro als OLE-Server
Kurze Übersicht über die OLE-Server-Funktionen von Microsoft Visual FoxPro

75 Aufrufbare Funktionen
Fernsteuerung: FoxDoCmd FoxEval SetErrMode SetOLEObj CloseIt GetLastError

76 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 Frankfurter Str. 21b
Methodische Software-Entwicklung GmbH Frankfurter Str. 21b 61476 Kronberg Tel.: Fax: CIS: ,175


Herunterladen ppt "Arbeiten mit DDE- und OLE"

Ähnliche Präsentationen


Google-Anzeigen