Domino 9 und frühere Versionen > ND6: Entwicklung

Microsoft Access an Lotus Notes Calendar

<< < (4/6) > >>

GregorJ:
Hallo,

ich habe nun folgende Lösung gefunden:
Lotus Notes Appointments from VB or VBA (version 6)
nach dem Code von
Lotus Notes Calendaring von Joe Korzeniewski

Nach einigen Anpassungen sieht das nun so aus:

--- Code: ---Option Compare Database
Option Explicit

'Lotus Notes Calendaring
'Developed by Joe Korzeniewski of www.vortexwd.net
'For an explanation of this code please visit www.vortexwd.net/Lotusnotescalendaring1.asp

Public Sub SendNotesAppointment(UserName As String, Subject As String, _
Body As String, AppDate As Date, StartTime As Date, MinsDuration As Integer, _
Location As String, Categories As String, AppointmentType As String, ServerName As String)
 On Error GoTo ende
 'Set up the objects required for Automation into lotus notes
    Dim MailDbName As String 'The persons notes mail database name
    Dim strSTime As String
    Dim strETime As String
    Dim CalenDoc As Object 'The calendar entry itself
    Dim WorkSpace As Object
    Dim ErrCnt As Integer
    Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")

    'Change this to fit your particular db naming convention based on UserName if necessary
    'MailDbName = "mail\" + UserName + ".nsf"
    'Get the engineer username and then calculate the mail file name
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " ")))
    MailDbName = "mail\" & Left$(MailDbName, 8) & ".nsf"

    strSTime = CStr(FormatDateTime(StartTime, vbShortTime))
    strETime = CStr(FormatDateTime(DateAdd("n", MinsDuration, StartTime), vbShortTime))

    'MAKE SURE TO SET SERVER NAME BELOW
    Set CalenDoc = WorkSpace.COMPOSEDOCUMENT(ServerName, MailDbName, "Appointment")

    CalenDoc.FIELDSETTEXT "AppointmentType", AppointmentType '"3" '0=Appointment, 1=Anniversary, 2=AllDayEvent, 3=Meeting, 4=Reminder
    CalenDoc.Refresh
   
    'Each loop is used to write the value to the field until the field is changed to that value

    Do Until (CDate(Right(CalenDoc.fieldgettext("StartDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
        CalenDoc.FIELDSETTEXT "StartDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.Refresh
        'ErrCnt is used to prevent an endless loop
        ErrCnt = ErrCnt + 1
    Loop
    ErrCnt = 0
    Do Until (CDate(CalenDoc.fieldgettext("StartTime")) = CDate(strSTime)) Or ErrCnt = 1000
        CalenDoc.FIELDSETTEXT "StartTime", strSTime
        CalenDoc.Refresh
        ErrCnt = ErrCnt + 1
    Loop
    ErrCnt = 0
    Do Until (CDate(Right(CalenDoc.fieldgettext("EndDate"), 10)) = CDate(AppDate)) Or ErrCnt = 1000
        CalenDoc.FIELDSETTEXT "EndDate", CStr(FormatDateTime(AppDate, vbShortDate))
        CalenDoc.Refresh
        ErrCnt = ErrCnt + 1
    Loop
    ErrCnt = 0
    Do Until (CDate(CalenDoc.fieldgettext("EndTime")) = CDate(strETime)) Or ErrCnt = 1000
        CalenDoc.FIELDSETTEXT "EndTime", strETime
        CalenDoc.Refresh
        ErrCnt = ErrCnt + 1
    Loop
    CalenDoc.FIELDSETTEXT "Subject", Subject & " / Betreff: " & Body 'weil ich Body nicht in den Body bekomme
    CalenDoc.FIELDSETTEXT "Location", Location
    CalenDoc.FIELDSETTEXT "Body", Body 'erscheint nur wird aber nicht übernommen
    CalenDoc.FIELDSETTEXT "Categories", Categories
     CalenDoc.Refresh
  '  CalenDoc.Save 'dadurch wird der Eintrag sofort gespeichert
  '  CalenDoc.Close 'dadurch wird der Eintrag sofort gesendet
    Set CalenDoc = Nothing
    Set WorkSpace = Nothing
MsgBox "Ein neuer Eintrag wurde in Lotus Notes geöffnet, bitte überprüfen Sie Ihr Lotus und speichern Sie den Eintrag"
ende:
End Sub
--- Ende Code ---

ein Problem habe ich noch damit,
wenn ich
--- Code: ---CalenDoc.FIELDSETTEXT "Body", Body
--- Ende Code ---
überneme,
erscheint der Text zwar im neuen Eintrag in Lotus Notes aber ist dort hellgrau und wenn ich in das Feld klicke,
verschwindet der Text

ich habe mal eine Musterdatei gemacht
LotusCalendarEntry.zip

Gregor

koehlerbv:
Dass das mit dem Item "Body" nicht klappt (weil RTIs anders belegt werden müssen), ist Euer geringstes Problem. Den Code, den Du da gefunden hast, ist absolut Domino C&S-inkonform.

Lies bitte nochmal mein Posting #7 in diesem Thread ...

Bernhard

GregorJ:
und was ist mit der Methode REPLACEITEMVALUE
die von Joe Korzeniewski dort dargestellt wird,
ist das C&S konform ?
dabei funktioniert auch der Eintrag im Body

Gregor

m3:
Gregor: Du willst Dir das IBM Lotus Notes Calendaring & Scheduling Schema durchlesen und dann entsprechend programmieren, damit die Anwendung C&S konform wird.

GregorJ:

--- Zitat von: m3 am 24.02.07 - 10:28:03 ---Gregor: Du willst Dir das IBM Lotus Notes Calendaring & Scheduling Schema durchlesen und dann entsprechend programmieren, damit die Anwendung C&S konform wird.

--- Ende Zitat ---
Danke
ich sehe darin zunächst ein Problem das ich den Body als String übergebe und nicht als RTF
in der Methode REPLACEITEMVALUE wird, wenn ich das richtig erkannt habe, ein Objekt in
Lotus Notes erzeugt und überschrieben, das gefällt mir gar nicht.


--- Zitat von: koehlerbv am 24.02.07 - 01:19:03 ---Dass das mit dem Item "Body" nicht klappt (weil RTIs anders belegt werden müssen),...
--- Ende Zitat ---
wie ist das zu verstehen, wie anders belegen ?

Gregor

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln