Hi,
wieder mal werde ich aus der Microsoft-Befehlsdatenbank nicht schlau.
Kann mir jemand einen kleinen Einstieg in der Xbasebasierten Fernsteuerung von Outlook weiterhelfen ?
Für den Anfang würde mir reichen :
1) Den Start der Kommunikation mit Outlook
2) Das Anlegen eines kleinen Termins in Outlook.
Oder hat vllt jemand eine bessere Beschreibung zu den Outlookbefehlen, wie es Microsoft hat ?
Das Punkt 2 schon ein wenig durchgekaut wurde, weiß ich, allerdings werd ich auch daraus nicht so richtig schlau..
Anfängerbefehle Outlook Schnittstelle
Moderator: Moderatoren
- azzo
- Rekursionen-Architekt
- Beiträge: 483
- Registriert: So, 28. Mär 2010 19:21
- Danksagung erhalten: 11 Mal
Re: Anfängerbefehle Outlook Schnittstelle
Hallo,
hier der Quellcode wie ich es mit Harbor/FWH löse. Es sollte aber in xBase ähnlich funktionieren.
mfg
Otto
hier der Quellcode wie ich es mit Harbor/FWH löse. Es sollte aber in xBase ähnlich funktionieren.
mfg
Otto
Code: Alles auswählen
FUNCTION AddOLappointment( dDate, nTime, nLenInMin, cBetreff, cNotiz,oDlg )
local hOutlook
local hApptItem
local lSave := .F.
local cDate := substr(dtoc(dDate),1,2)+"/"+substr(dtoc(dDate),4,2)+"/"+substr(dtoc(dDate),7,4)
local cTime := "10:00"
local hAppItem
if len(ALLTRIM(str( INT(nTime * 100) ) ) )=3
cTime := "0"+ALLTRIM(str((nTime * 100)) )
else
cTime := ALLTRIM(str((nTime * 100)) )
endif
cTime:= substr(cTime,1,2)+":"+substr(cTime,3,2)
hOutlook := CreateOLEObject( "Outlook.Application" )
hAppItem := OLEInvoke( hOutlook, "CreateItem", 1 )
SET CENTURY ON
OLESetProperty( hAppItem, "Start", cDate + " " + cTime )
OLESetProperty( hAppItem, "StartTime", cTime + ":00" )
// OLESetProperty( hAppItem, "EndTime", cTime + ":00" )
SET CENTURY ON
SET Date TO GERMAN
OLESetProperty( hAppItem, "Duration", nLenInMin )
OLESetProperty( hAppItem, "Subject", cBetreff )
OLESetProperty( hAppItem, "Body", cNotiz )
OLESetProperty( hAppItem, "Mileage", 225 )
OLEInvoke( hAppItem, "Display" )
hAppItem := NIL
hOutlook := NIL
lSave := .t.
oDlg:END()
RETURN (lSave)
- adrian
- Rekursionen-Architekt
- Beiträge: 270
- Registriert: Mo, 08. Mai 2006 8:58
- Wohnort: Aadorf TG
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Anfängerbefehle Outlook Schnittstelle
Wir machen dies über die ICS-Datei
Adrian
Code: Alles auswählen
FUNCTION Outlook(sOrt, sBetreff, dDatum, sTimeVon, sTimeBis, sText)
LOCAL nZeilen:=0
SET Date Format "yyyymmdd"
SetDefaultString(sOrt,"")
SetDefaultString(sBetreff,"")
SetDefaultDate(dDatum,Date())
SetDefaultString(sTimeVon," : : ")
SetDefaultString(sTimeBis,Time())
SetDefaultString(sText,"")
SETPRC(0,0)
SET PRINTER TO (_SDATEI_BEN(100)+"OUTLOOK.ICS")
SET DEVICE TO PRINTER
SET CONSOLE OFF
SET PRINT ON
@ nZeilen,0 SAY "BEGIN:VCALENDAR";nZeilen++
@ nZeilen,0 SAY "PRODID:-//Microsoft Corporation//Outlook 14.0 MIMEDIR//EN";nZeilen++
@ nZeilen,0 SAY "VERSION:2.0";nZeilen++
@ nZeilen,0 SAY "METHOD:PUBLISH";nZeilen++
@ nZeilen,0 SAY "X-MS-OLK-FORCEINSPECTOROPEN:TRUE";nZeilen++
@ nZeilen,0 SAY "BEGIN:VEVENT";nZeilen++
@ nZeilen,0 SAY "CLASS:PUBLIC";nZeilen++
IF ! empty(sText)
@ nZeilen,0 SAY "DESCRIPTION:"+ANSItoUTF8(sText);nZeilen++
ENDIF
@ nZeilen,0 SAY "DTEND:"+DtoS(dDatum)+"T"+SubStr(sTimeVon,1,2)+SubStr(sTimevon,4,2)+"00Z";nZeilen++
@ nZeilen,0 SAY "DTSTART:"+DtoS(dDatum)+"T"+SubStr(sTimeBis,1,2)+SubStr(sTimeBis,4,2)+"00Z";nZeilen++
IF ! empty(sOrt)
@ nZeilen,0 SAY "LOCATION:"+ANSItoUTF8(sOrt);nZeilen++
ENDIF
@ nZeilen,0 SAY "PRIORITY:5";nZeilen++
@ nZeilen,0 SAY "SEQUENCE:0";nZeilen++
IF ! empty(sBetreff)
@ nZeilen,0 SAY "SUMMARY;LANGUAGE=de-ch:"+ANSItoUTF8(sBetreff);nZeilen++
ENDIF
@ nZeilen,0 SAY "TRANSP:OPAQUE";nZeilen++
@ nZeilen,0 SAY "X-MICROSOFT-CDO-BUSYSTATUS:BUSY";nZeilen++
@ nZeilen,0 SAY "X-MICROSOFT-CDO-IMPORTANCE:1";nZeilen++
@ nZeilen,0 SAY "X-MICROSOFT-DISALLOW-COUNTER:FALSE";nZeilen++
@ nZeilen,0 SAY "X-MS-OLK-AUTOFILLLOCATION:FALSE";nZeilen++
@ nZeilen,0 SAY "X-MS-OLK-CONFTYPE:0";nZeilen++
@ nZeilen,0 SAY "BEGIN:VALARM";nZeilen++
@ nZeilen,0 SAY "TRIGGER:-PT"+AppIni():GetEntry("INIT", "OUTLOOK_TRIGGER","30","C")+"M";nZeilen++
@ nZeilen,0 SAY "ACTION:DISPLAY";nZeilen++
@ nZeilen,0 SAY "DESCRIPTION:Reminder";nZeilen++
@ nZeilen,0 SAY "END:VALARM";nZeilen++
@ nZeilen,0 SAY "END:VEVENT";nZeilen++
@ nZeilen,0 SAY "END:VCALENDAR";nZeilen++
SET PRINT OFF
SET DEVICE TO SCREEN
SET CONSOLE ON
SET Printer OFF
SET Printer to
SET Date GERMAN
apiShellExecute(NIL, SHELL_OPEN, _SDATEI_BEN(100)+"OUTLOOK.ICS")
Return .T.
function ANSItoUTF8( cAnsi )
Local i
Local imax := Len(cAnsi)
Local cstr := ""
Local cbin := ""
for i := 1 to imax
//-- das reicht erst einmal, da in Xbase die Funktion Asc()
//-- nur Wert im Bereich zwischen 0 und 255 zurück gibt
If asc(cAnsi[I]) > 127
cbin:="110000"+ntoc(asc(cAnsi[I]),2)
cstr +=Chr(cton(left(cbin,8),2))+Chr(cton("10"+right(cbin,6),2))
else
cstr +=cAnsi[I]
endif
next
cUtf8 := cstr
return cUtf8
FUNCTION cton( cBin )
LOCAL iPos := 0
LOCAL iCount:= 0
LOCAL iInt := 0
LOCAL iWert := 0
LOCAL cTemp := ""
cBin := Alltrim(cBin)
iCount := LEN(cBin)
FOR iPos = 0 to iCount-1
cTemp := cBin[iCount-iPos]
iWert := val(cTemp)
iInt := iInt + ( iWert * (2^(iPos)) )
NEXT
RETURN Int(iInt)
es Grüessli
Adrian
Adrian
- AUGE_OHR
- Marvin
- Beiträge: 12911
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Anfängerbefehle Outlook Schnittstelle
hi,
Code: Alles auswählen
METHOD MapiDetail:AddNewItem( cText, cMemo, dDate, cTime, nMinute )
LOCAL bSaveError
LOCAL oError
LOCAL xVar
LOCAL lSuccess := .F.
IF ::UseMapiDetail = .T.
lThread := .T.
//
IF NIL = ::oOutlook
bSaveError := ERRORBLOCK( { | oError | BREAK( oError ) } )
BEGIN SEQUENCE
::oOutlook := CreateObject( "Outlook.Application" )
RECOVER USING oError
ERRORBLOCK( bSaveError )
::oOutlook := NIL
MSGBOX( "Auf MS Outlook kann nicht zugegriffen werden." )
END SEQUENCE
ERRORBLOCK( bSaveError )
ENDIF
IF NIL = ::oOutlook
MSGBOX( "Bitte stellen Sie sicher," + ;
CHR( 13 ) + CHR( 10 ) + "dass MS Outlook auf Ihrem Computer korrekt installiert ist.", "Fehler" )
lThread := .F.
RETURN {}
ENDIF
::oNameSpace := ::oOutlook:GetNamespace( "MAPI" )
IF NIL = ::oNameSpace
MSGBOX( "can not get NameSpace MAPI" )
lThread := .F.
RETURN {}
ENDIF
bSaveError := ERRORBLOCK( { | oError | BREAK( oError ) } )
BEGIN SEQUENCE
::oAppointment := ::oNameSpace:getDefaultFolder( olFolderCalendar )
RECOVER USING oError
ERRORBLOCK( bSaveError )
::oAppointment := NIL
MSGBOX( "Der RPC-Server ist nicht verfgbar." )
END SEQUENCE
ERRORBLOCK( bSaveError )
IF NIL = ::oAppointment
MSGBOX( "can not get Items" )
lThread := .F.
RETURN {}
ENDIF
ELSE
MSGBOX( "not need for DBF ???" )
RETURN .F.
ENDIF
::oItem := ::oOutlook:CreateItem( olAppointmentItem )
::oItem:treatDateAsString( .t. )
::oItem:Start := DTOS( dDate ) + cTime
::oItem:Duration := nMinute
::oItem:Subject := TRIM( cText )
::oItem:Body := cMemo
//
// not used default .F.
//
::oItem:AllDayEvent := .F.
::oItem:ReminderSet := .F.
//
// do save here
//
::oItem:save()
RETURN ( .t. )
gruss by OHR
Jimmy
Jimmy