Hier mal ein Code-Snippet aus einer meiner Apps, die mit Appointments dealen. Hier geht es um mehrtägige ganztägige Veranstaltungen, und wichtig für Jochen sind nur die belegten Felder (wovon man da noch auf einige verzichten kann).
Diese Routine habe ich auch ändern müssen beim Fitmachen für R6, aber das betrifft nur das ComputeWithForm, was man aber getrost auch weglassen kann.
HTH,
Bernhard
docCalendarEntry.~_ViewIcon = 9
docCalendarEntry.~$AltPrincipal = docRequest.Requester (0)
docCalendarEntry.~$BusyName = docRequest.Requester (0)
Set itemTemp = docCalendarEntry.GetFirstItem ("$BusyName")
itemTemp.IsNames = True
docCalendarEntry.~$BusyPriority = "1"
docCalendarEntry.~$CSversion = "2"
docCalendarEntry.~$NoPurge = docRequest.EndDate (0)
docCalendarEntry.~$PublicAccess = "1"
docCalendarEntry.AltChair = docRequest.Requester (0)
docCalendarEntry.BookFreeTime = ""
docCalendarEntry.Chair = docRequest.Requester (0)
docCalendarEntry.ExcludeFromView = ArrayAdd ("D", "S")
docCalendarEntry.Principal = docRequest.Requester (0)
docCalendarEntry.tmpOwnerHW = "1"
'Set date / time values:
docCalendarEntry.StartDate = vStartDate
docCalendarEntry.StartDateTime = vStartDate
docCalendarEntry.StartTime = vStartDate
docCalendarEntry.EndDate = vEndDate
docCalendarEntry.EndDateTime = vEndDate
docCalendarEntry.EndTime = vEndDate
docCalendarEntry.CalendarDateTime = vDateRange
'Compute any "forgotten" items in the calendar entry document:
iCWFResult = docCalendarEntry.ComputeWithForm (False, False)
Remark: Dieser Code kann natürlich NICHT 1:1 übernommen werden - siehe oben.
So, ich habe jetzt mein Teil endlich in den Griff bekommen.
Ich habe mein
success = doc.ComputeWithForm( False, False )
endgültig über Bord geworfen (wirklich Grütze bei Appointments) und den Fehler beim CalendarDateTime gefunden. Eine mögliche Lösung:
tmpDate = strdateStartDay + " 04:00:00"
Set ndt_datum_von = New NotesDateTime(tmpDate)
Set ndt_datum_bis = New NotesDateTime(strdateEndDay + " 23:59:59")
Dim ndt_CalendarDateTime As Variant
Redim ndt_CalendarDateTime(0)
ndt_CalendarDateTime(0) = ndt_datum_von.LSLocalTime
Call ndt_datum_von.AdjustDay(1)
i = 0
While ndt_datum_bis.TimeDifference(ndt_datum_von) > 0
Redim Preserve ndt_CalendarDateTime(Ubound(ndt_CalendarDateTime) + 1)
ndt_CalendarDateTime(Ubound(ndt_CalendarDateTime)) = ndt_datum_von.LSLocalTime
Call ndt_datum_von.AdjustDay(1)
Wend
doc.CalendarDateTime = ndt_CalendarDateTime
Hilfreich war dabei dieser Beitrag:
http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=9970&forum=5&post_id=52850#forumpost52850