Domino 9 und frühere Versionen > ND6: Entwicklung
[Frage]: per Script Kalendereinträge erzeugen
RalfK:
Hallo,
ich habe ein kleines Script umgeschrieben, welches mir aus einer Datenbank heraus per Schaltfläche einen Kalendereintrag vom Typ "Personal" erzeugt.
Dabei werden vorgegebene Felder gefüllt. Leider habe ich dabei 2 Probleme. Doch erst der Code
--- Code: ---Sub Click(Source As Button)
Dim Session As New NotesSession
Dim Workspace As New NotesUIWorkspace
Dim TheDocument As NotesDocument
Dim db As notesDatabase
Dim UserName As String
Set UIDoc = Workspace.CurrentDocument
Set TheDocument = UIDoc.Document
Set db = New NotesDatabase("", "")
'Variable für den Betreff deklarieren
Dim Subject As String
Subject = Uidoc.FieldGetText("CalEntrySubject")
'Variable für die Terminart deklarieren
Dim Terminart As String
Terminart = Uidoc.FieldGetText("termin")
' Mail-Datenbank öffnen
db.openmail
' Datumsvariable deklarieren
Dim Datum As String
Datum = Uidoc.FieldGetText("Datum")
'Kalenderfelder
Dim CalendarEntry As New NotesDocument(db)
Dim rtitem As New NotesRichTextItem(CalendarEntry, "Body")
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Klicken Sie auf die Verknüpfung, um das Originaldokument zu sehen.")
Call rtitem.AddNewline(2)
Call rtitem.AppendDocLink(TheDocument, "Dokument")
UserName = Session.CommonUserName
CalendarEntry.Form = "Appointment"
CalendarEntry.Principal = UserName
CalendarEntry.Chair = Session.UserName
'CalendarEntry.ExcludeFromView = "D"
'CalendarEntry.OrgTable = "CO"
'CalendarEntry.SequenceNum = 1
CalendarEntry.Subject = Subject
CalendarEntry.KTE_SL_ART = Terminart
'Appointment Type 4 = Reminder , 3 = meeting, 2 = event, 1 = anniversary, 0 = Personal
'Kalenderfelder füllen
CalendarEntry.AppointmentType = "0"
CalendarEntry.StartDate = Cdat(Datum)
CalendarEntry.StartDateTime = Cdat(Datum)
CalendarEntry.CalendarDateTime = Cdat(Datum)
Call CalendarEntry.save(True, True)
End Sub
--- Ende Code ---
Mein erstes Problem.
Durch die Variable "Terminart" wird ein Feld im Kalenderdoc gefüllt, welches ein Symbol in der Kalenderansicht hervorruft. Erzeugt ich nun per button den Eintrag, wird dieses Symbol nicht angezeigt. Klicke ich im Kalender aber das Dokument an und speicher es erneut, wird es angezeigt.
Mein zweites Problem.
Es gibt auch noch das Feld TimeRange, welches die Start und Endzeit bestimmt. In meiner Maske habe ich ebenfalls ein Feld "Uhrzeit", indem ich die Dauer per Schieberegler einstelle und diese dann im Feld angezeigt wird. Meines Wissens werden die Werte dann in "StartDateTime" und "EndDateTime" abgelegt. Ist doch richtig oder?
Wie kann ich das Feld TimeRange mit diesen Werten füttern?
Für einen Hinweis wäre ich sehr dankbar.
Grüße
Ralf
WildVirus:
Hallo Ralf,
erstmal fällt auf, dass das UIDocument nicht deklariert wurde.
Außerdem hat jeder Termin einen Beginn und ein Ende.
Was die Dauer betrifft, so empfehle ich in der Hilfe mal nach NotesDateRange class zu suchen.
Viel Erfolg.
WV
koehlerbv:
Folgende Anmerkungen:
- Suche hier oder bei IBM Developerwork nach "Calendaring & Scheduling Schema". Bei dem von Dir offensichtlich irgendwo gefundenen Code werden etliche Items nicht belegt.
- Den AppointmentType "Personal" gibt es gar nicht (ist aber egal, o heisst vielmehr "Appointment")
- TimeRange gibt es nicht (im Standard-Mailfile)
- KTE_SL_ART gibt es ebenfalls nicht im Standard-Mailfile.
Bernhard
dirk_2909:
--- Zitat ---Erzeugt ich nun per button den Eintrag, wird dieses Symbol nicht angezeigt. Klicke ich im Kalender aber das Dokument an und speicher es erneut, wird es angezeigt.
--- Ende Zitat ---
Ist klar. Du sett in Deinem Script das Feld "_ViewIcon" nicht. Wenn Du im UI die Maske öffnest und speicherst, wird es berechnet. Du musst es nur in deinem Code entspr. setzen.
Lese Dir das Thema , wie schon Bernhard beschrieben, genau durch. ;)
koehlerbv:
Wenn _ViewIcon gesetzt wird, wird der Code gerade mal ein Prozent besser.
Ich kann nur empfehlen, keinen Code zu verwenden, den man nicht verstanden hat. Und dieser Code ist wirklich "nichts".
Und wenn man dann noch Spezialisten (Admins) für Updates befragt, was die von solchen Appointment-Docs beim nächsten Reloease-Wechsel halten ...
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln