Hallo Zusammen,
habe mir eine Urlaubs-Datenbank zusammengebastelt, die automatisch Kalender-Einträge generiert, dazu hat der Vorgesetzter der die Urlaube genehmigt "Editoren-Rechte" und die Urlaube werden dann eingetragen. Haben jedoch Mitarbeiter per Delegierungsprofil die Rechte den kalender zu verwalten, sehen diese durch "Anderen Kalender öffnen" die Urlaubstage nicht in dem Kalender.
Folgender Code generiert den Eintrag:
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dbmail As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim dateRange As NotesDateRange
Dim art As String
Dim tmpdate As String
Dim tmpdate2 As String
Dim datum_von As String
Dim datum_bis As String
Dim startDate As NotesDateTime
Dim endDate As NotesDateTime
Dim reg As New NotesRegistration
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set doc = New NotesDocument( db )
doc.Form = "Urlaub - Test"
datum_von = uidoc.FieldGetText( "Von_datum" )
datum_bis = uidoc.FieldGetText( "Bis_datum" )
db_name = uidoc.FieldGetText("MailDb" )
Set startDate = New NotesDateTime (datum_von)
Set endDate = New NotesDateTime(datum_bis)
reg.RegistrationServer= "LotusNotes"
Set dbmail = session.GetDatabase("xxxxx",db_name,False)
Set doc = dbmail.CreateDocument
doc.Form = "Appointment"
doc.subject = art + " vom " + datum_von + " bis " + datum_bis
doc.AppointmentType="2"
Set dateRange = session.CreateDateRange
tmpDate = datum_von + " 04:00:00"
tmpDate2 = datum_bis + " 23:59:59"
Set ndt_datum_von = New NotesDateTime(tmpDate)
Set ndt_datum_bis = New NotesDateTime(datum_bis + " 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
Set dateRange.StartDateTime = startDate
Set dateRange.EndDateTime = endDate
Set doc.TimeRange = dateRange
doc.SequenceNum = 1
doc.OrgTable = "P0"
Set doc.StartDateTime = New NotesDateTime (tmpDate)
Set doc.StartDate = New NotesDateTime (tmpDate)
Set doc.EndDateTime = New NotesDateTime (tmpDate2)
Call doc.ReplaceItemValue("_ViewIcon",9)
Call doc.ComputeWithForm(False,False)
Call doc.Save(True,False,True)
End Sub
Könnt Ihr mir vielleicht weiterhelfen!! Danke..