Domino 9 und frühere Versionen > ND6: Entwicklung
[Frage]: per Script Kalendereinträge erzeugen
RalfK:
--- Zitat von: koehlerbv am 17.12.07 - 19:47:57 ---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
--- Ende Zitat ---
Hallo Bernhard,
danke für die Tipps. Ich werde mir diese Thematik zu Gemüte führen. Wie du schon erkannt hast, ist es wirklich kein Standard Mail-File. Daher auch die anderen Feld Namen.
Wie du unten schon bemerkt hast, ist der Code "geklaut" und verändert. :-\ Leider finden sich selten Workarounds für allgemeine Themen, wie zB das erzeugen von Kalendereinträgen. Zumindest sind die von mir gefundenen Beispiele immer speziell und nicht generell.
Grüße
Ralf
RalfK:
Hallo,
ich habe gestern mal etwas rumgebastelt und versucht, selbst etwas auf die Beine zu stellen, wobei sich meine Script Kenntnisse in Grenzen halten. Ich habe gerade begonnen mit dem R5 Script Buch von Addison-Wesley. Danke nochmal für den Hinweis der C & S.
Bisher klappt auch alles recht gut. Nur 1 Ding will noch nicht wie gewünscht. Doch erstmal der neue Code (Anmerkung: Ich erhebe nicht den Anspruch, einen tollen Code geschrieben zu haben ;) )
--- Code: ---Sub Click(Source As Button)
Dim db As New NotesDatabase("", "")
Dim ws As New notesuiworkspace
Dim session As New notessession
Dim uidoc As notesuidocument
Dim doc As notesdocument
Dim doc2 As notesdocument
Dim betreff As String
Dim datum As Variant
Dim beginn As Variant
Dim ende As Variant
Dim username As New NotesName(session.UserName)
Set uidoc = ws.currentdocument
Set doc = uidoc.document
betreff = uidoc.FieldGetText("Betreff")
datum1 = doc.GetItemValue("Datum")
beginn1 = doc.GetItemValue("Uhrzeit")
ende1 = doc.GetItemValue("Uhrzeit1")
datum = datum1(0)
beginn = beginn1(0)
ende = ende1(0)
Call db.OpenMail
Set doc2 = New NotesDocument(db)
doc2.ExcludeFromView = "D"
doc2.SequenceNum = 1
doc2.OrgTable = "C0"
doc2.Form = "Appointment"
doc2.AppointmentType = "0"
doc2.Principal = session.Username
doc2.Chair = session.UserName
doc2.Subject = betreff
doc2.Repeats = ""
doc2.StartDate = Cdat(datum)
doc2.EndDate = Cdat(datum)
doc2.StartDateTime = Cdat(beginn)
doc2.EndDateTime = Cdat(ende)
Dim rtitem As NotesRichTextItem
Set rtitem = New NotesRichTextItem (doc2, "body")
Call rtitem.AddNewline(1)
Call rtitem.AppendText("Bitte hier klicken, um das Dokument zu öffnen.")
Call rtitem.AddNewline(1)
Call rtitem .AppendDocLink(doc, db.Title)
Call doc2.ComputeWithForm( True, False )
Call doc2.Save(True,False)
Msgbox "Ihr Termin wurde eingetragen"
End Sub
--- Ende Code ---
Ich kann damit einen Eintrag erzeugen, leider wird dieser nicht in der normalen $Calendar Ansicht gezeigt. Die Felder für die Maske und den Typen sind korrekt belegt. Rufe ich das Dokument in der Mail DB auf, wird es auch als Termin angezeigt mit den korrekten Daten. Nur nicht in der Kalenderansicht. Speicher ich das Dokument erneut, steht es in der korrekten Ansicht. ???
Grüße
koehlerbv:
In ein kurzer Blick in die Ansicht ($Calendar) hätte Dich da schon aufgeklärt: CalendarDateTime ist ein kriegsentscheidendes Item.
Leider hilft Dir (und uns allen) ComputeWithForm bei Appointments nur sehr bedingt weiter - das meiste ist Handarbeit.
Bernhard
RalfK:
Ein ziemlich kompliziertes Thema, wirklich. Ich hab diesen Eintrag echt überlesen, wobei in der "Usage" extra steht:
The CalendarDateTime is set to the starting date and time chosen by the Chair to make it appear in the Calendar view.. ::)
Hrmpf.
Dank dir für den Hinweis. Ich hoffe mal, ich bekomm das Konstrukt langsam mal zum laufen. Mir graut es schon davor, wenn ich mich um die Start- und EndDateTime kümmere.
Grüße
Ralf
Edit: Du hattest natürlich wieder recht. Klappt bestens.
dirk_2909:
@Bernhard
--- Zitat ---Wenn _ViewIcon gesetzt wird, wird der Code gerade mal ein Prozent besser.
--- Ende Zitat ---
Aber 50% der Ausgangsfrage sind beantwortet.
Für die restlichen 99% habe ich ja auf Deine Antwort hingeiesen ;-)
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln