Fehler beim Schreiben von Outlookterminen
Verfasst: Di, 17. Jun 2008 9:15
Hallo,
habe einen Fehler beim Schreiben von Terminen ins Outlook den ich nicht verstehe. In der u.a. Funktion stürzt das Programm immer bei oOutlook:quit ab mit der Meldung "Object has no method with this name" ab.
Grüsse
Rudolf
habe einen Fehler beim Schreiben von Terminen ins Outlook den ich nicht verstehe. In der u.a. Funktion stürzt das Programm immer bei oOutlook:quit ab mit der Meldung "Object has no method with this name" ab.
Grüsse
Rudolf
Code: Alles auswählen
PROCEDURE putoutlook_termin(cBetreff,cText,cOrt,dDatum,cZeit,nDauer)
******************************************************************
local oOutlook
default nDauer to 60
default cOrt to ""
default cBetreff to "Termin"
oOutlook := Outlook():New()
IF oOutlook:lVerbunden
oOutlook:SetTermin(cBetreff,cText,cOrt,dDatum,cZeit,nDauer)
ENDIF
oOutlook:quit() // !!!!!!!!!!!!!
oOutlook:destroy()
oOutlook := NIL
oContacts := NIL
RETURN
**********************************************
** Klasse für die Arbeit mit Microsoft Outlook
**********************************************
** Erstellt: Andreas Engler
** Datum: 26.09.2007
**********************************************
**Konstanten von Outlook
*Item-Type
*#DEFINE olAppointmentItem 1
*#DEFINE olContactItem 2
*#DEFINE olDistributionListItem 7
*#DEFINE olJournalItem 4
*#DEFINE olMailItem 0
*#DEFINE olNoteItem 5
*#DEFINE olPostItem 6
*#DEFINE olTaskItem 3
CLASS Outlook
EXPORTED:
METHOD Init
METHOD Destroy
METHOD SetTermin //einen neuen Termin im aktuellen Kalender anlegen
METHOD GetMsgTermine //Liste der Termine als Messagebox ausgeben
Var oOutlook //Outlook-Objekt
Var lVerbunden //Steht die Verbindung zu Outlook
ENDCLASS
METHOD Outlook:Init()
::lVerbunden := .f.
::oOutlook := CreateObject( "Outlook.Application" )
IF NIL == ::oOutlook
// Outlook.Application kann nicht erzeugt werden.
msgbox( "Fehler: "+alltrim(var2char(ComLastError()))+CRLF;
+"Beschreibung:"+CRLF;
+alltrim(var2char(ComLastMessage())),"Fehler")
else
::lVerbunden := .t.
ENDIF
RETURN self
METHOD Outlook:Destroy()
IF ::lVerbunden
::oOutlook:destroy()
ENDIF
::oOutlook := NIL
::lVerbunden := NIL
RETURN self
**einen neuen Termin im aktuellen Kalender anlegen
**Parameter:
**cBetreff - Betreff
**cNotiz - Notizen
**cOrt - Ort
**dDatum - Termindatum
**cZeit - Terminzeit (hh:mm:ss)
**nDauer - Dauer des Termines in Minuten
**nErinZeit - Erinnerung vor dem Termin in Minuten
METHOD SetTermin( cBetreff, cNotiz, cOrt, dDatum, cZeit, nDauer, nErinZeit )
local oTermin
local lOk := .f.
Default cBetreff to "Termin", cNotiz to "", dDatum to date(),;
cZeit to time(), cOrt to "", nDauer to 0,;
nErinZeit to 60
IF ::lVerbunden
oTermin := ::oOutlook:CreateItem( olAppointmentItem )
oTermin:Subject := cBetreff //Betreff
oTermin:Location := cOrt //Ort einstellen
oTermin:Start := alltrim(str(year(dDatum)))+"-"+strzero(month(dDatum),2)+"-"+strzero(day(dDatum),2)+" "+cZeit //Startdatum und Zeit einstellen
oTermin:Duration := nDauer //Dauer des Termins einstellen
oTermin:ReminderSet := .t. //Errinerung aktivieren
oTermin:ReminderMinutesBeforeStart = nErinZeit //Erinnerung vor dem Termin in Minuten
*oTermin:ReminderTime := dDatum //Datum und Zeit, zu denen die Erinnerung erfolgen soll
oTermin:Body := cNotiz
oTermin:save() //Termin speichern
*oTermin:Display() //Termin am Display anzeigen
lOk := .t.
ENDIF
RETURN lOk
**Liste der Termine als Messagebox ausgeben
METHOD GetMsgTermine()
local nCount := 0
local cMsg := ""
local i := 0
IF ::lVerbunden
nCount := ::oOutlook:Reminders:Count
IF nCount > 0
FOR i := 1 TO nCount
cMsg += ::oOutlook:Reminders:Item(i):Caption + CRLF // + " Termin: " + alltrim(var2char(::oOutlook:Reminders:Item(i):OriginalReminderDate))
NEXT
msgbox("Anzahl der Termine: "+var2char(nCount)+CRLF;
+cMsg,"Info")
else
msgbox("Keine Termine vorhanden!","Info")
ENDIF
ENDIF
RETURN self