Kalendereintrag die 2.te

  • Hallo.....ich möchte aus einer datenbank in die Maildatenbank einen
    Kalendereintrag erzeugen.


    Mein bisheriger Code erstellt auch ein dokument in der
    gewünschten Maildatenbank, jedoch KEINEN Kalendereintrag.
    Dieses Dokument kann ich auch nicht öffnen, es scheinen
    Daten zu fehlen. Vor allem etwas wichtiges, damit es als
    Kalendereintrag angezeigt wird.
    Ausserdem scheint das computewithform nur eine Fehlermeldung zu erzeugen. Daher habe ich es auskommentiert.


    Was nun?





    Mein bisheriger Code sieht so aus:




    Sub Initialize
    Dim session As New NotesSession
    Dim userMailDb As New NotesDatabase( "","")
    Dim KalenderDoc As NotesDocument

    Call userMailDb.OpenMail
    If userMailDb.IsOpen Then
    Set KalenderDoc = New NotesDocument( userMailDb )
    Dim s As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument

    Set db = s.CurrentDatabase


    With KalenderDoc
    .Form = "Appointment"
    .Startdate = "08.05.2005"
    .Enddate = "08.05.2005"
    .Starttime = "10:00:00"
    .Endtime = "11:00:00"
    .AppointmentType = "0"
    .Subject = "Testkalender"
    .CalendarDateTime = "08.05.2005 10:00:00 CEDT"
    .StartDateTime = "08.05.2005 10:00:00 CEDT"
    .EndDateTime = "08.05.2005 11:00:00 CEDT"
    .Alarms = "1"
    .ReplaceItemValue "$Alarm", 1
    End With

    'KalenderDoc.computeWithForm True, True
    KalenderDoc.save True, False
    KalenderDoc.PutInFolder("ALERT")

    Messagebox(userMailDb.Title & " on server " & userMailDb.Server & " Kalendereintrag erstellt ")

    Else
    Print "Nicht geöffnet"
    End If

    End Sub

  • also ich glaube die werte einfach nur als strings in die felder zu schreiben könnte problematisch sein.


    solltest dir eher notesdatetime objekte für die datum/zeitfelder generieren.


    schau dir am besten ein 'richtig' erzeugtes kalenderdokument an was die felder für eigenschaften haben.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • die werte als string sind ja nur erstmal da damit überhaupt etwas drinsteht. (so als entwicklungsschritt) aber offensichtlich fehlen mir einige felder, von denen ich nichts weiß

  • Dann erstell Dir doch einen Kalender Dokument und schau Dir an welche Felder so vorhanden sind.
    Und ich denke mal, Startdate sollte schon vom Typ datum sein....denn zu welchem Tag soll Notes das Dok im Kaelnder einordnen wenn dort kein Datumswert drin steht??

  • Hi,
    soviel ich weiß muß die erste Spalte für die Kalenderansicht im Datumsformat sein und zwar mit Datum+Uhrzeit und aufsteigend sortiert sein. Die nachfolgenden Spalten können dann Text-, Rich-Text- oder Zahlen-Formate haben. Sie werden in die Kalenderansicht übernommen, soweit die Länge der Ansicht das zuläßt.

  • Ich hab das Problem so gelöst und es wird auch ein Éintrag angezeigt. vielleicht hilfts ja weiter.


    Im Vorfeld Deklaration der dbmail, etc.



    Set doc = dbmail.CreateDocument

    REM Formularart
    doc.Form = "Appointment"
    doc.Subject = "KUMAS <=> " + pDoc.firmakontakt(0)
    REM Termin:
    doc.AppointmentType = "0"
    Call doc.AppendItemValue( "_ViewIcon", Cdbl("160" ))
    Call doc.AppendItemValue( "$PublicAccess", "1")

    Set rtitem = New NotesRichTextItem( doc, "Body" )
    Call rtitem. AppendText ("Sie haben einen fälligen Termin in KUMAS. ")
    Call rtitem.AddNewLine( 1 )
    Call rtitem.AddNewLine( 1 )
    Call rtitem. AppendText ("Um zur Planung zu gelangen, klicken Sie bitte hier: ")
    Call rtitem.AddTab( 1 )
    Call rtitem.AppendDocLink( pDoc,"KUMAS",pDoc.FirmaKontakt(0))


    Set ndt = New NotesDateTime(Termin + " " + Uhr)
    Set ndt2 = New NotesDateTime(Termin + " " + Uhr)
    Call ndt2.AdjustMinute( Clng(Dauer))
    REM Datum setzten:
    doc.StartDate = ndt.LSLocalTime
    doc.CalendarDateTime = ndt.LSLocalTime
    doc.StartDateTime = ndt.LSLocalTime
    doc.EndDate = ndt2.LSLocalTime
    doc.EndDateTime = ndt2.LSLocalTime


    Call doc.ComputeWithForm(True, False)
    Call doc.Save( True, True )