Wir möchten von unserer Applikation dem Kunden die Möglichkeit geben, direkt einen Outlook-Kalender Eintrag zu erstellen. Dies geht auch recht problemlos.
Ausser, es werden keine Sonderzeichen und Umlaute dargestellt, daher anstelle "Müller" erscheint "Mller". Ich nehme an dies hat was mit dem Zeichensatz zu tun, doch komme ich nicht weiter.
Hat wer eine Idee?
Hier der Code:
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,Time())
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:"+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:"+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:"+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.
Adrian