Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: froeschl97 am 16.03.05 - 21:47:35
-
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..
-
Haben jedoch Mitarbeiter per Delegierungsprofil die Rechte den kalender zu verwalten, sehen diese durch "Anderen Kalender öffnen" die Urlaubstage nicht in dem Kalender.
Ein Schuss ins Blaue: Sind die Kalendereinträge als "Privat" markiert?
Einfluss darauf hat man über OrgConfidential. Ich glaube wenn das = "1" ist, dann sind diese privat markiert. Das würde ich mal prüfen.
-
Da fehlt auf jeden Fall das Item "$PublicAccess" mit dem Wert "1", aber auch noch viel, viel mehr. $BusyName zum Beispiel oder ExcludeFromView.
Das beste ist - neben dem wichtigen Studium entsprechender Artikel, gerade im LDD oder auch hier im Forum - der Vergleich der Items in einem "gelungenen" Kalendereintrag mit dem, was Du selbst an Items setzt.
Ich hoffe, dieses negativ erscheinende Statement hilft Dir trotzdem.
Bernhard
-
Hi,
Vielen Dank für eure Antworten...
mit dem Item $PublicAccess=1 geht es. Die Kalendeinträge werden angezeigt. Super
Gruss
Robert
-
... mit dem Item $PublicAccess=1 geht es. Die Kalendeinträge werden angezeigt. Super
$PublicAccess = "1"
Und super ist das noch nicht - in der FreeTime-Anzeige fehlen Dir diese Einträge und werden Dir ggf. auch unter Drafts oder anderen unerwünschten Views angezeigt. Dass $PublicAccess = "1" die Anzeige für Public Readers bewirkt, ist klar, aber ansonsten nicht einmal die halbe Miete.
Bernhard