Autor Thema: Kalendereintrag mit VBA anlegen  (Gelesen 2437 mal)

Offline lalo

  • Frischling
  • *
  • Beiträge: 9
  • Ich liebe dieses Forum!
Kalendereintrag mit VBA anlegen
« am: 25.08.04 - 08:55:11 »
Hallo,
bin kein Notes-Experte soll aber mit VBA Kalendereinträge in Lotus Notes (R5) generieren. Mails und Kontakte kann ich anlegen, aber Kalendereinträge landen bei mir immer als mail unter "Entwürfe".
Ich mache folgende Schritte:
Öffnen Mail-DB
Create Document
Felder füllen (u.a. .form = "Appointment")
save

Bin um jeden Tipp dankbar.
Gruß, Lalo

Offline pedsola

  • Aktives Mitglied
  • ***
  • Beiträge: 128
  • Geschlecht: Männlich
    • anders und sehr GmbH - Internetagentur und eCollaboration
Re:Kalendereintrag mit VBA anlegen
« Antwort #1 am: 25.08.04 - 09:32:20 »

es gibt ein Systemfeld "ExcludeFromView" welches du noch setzen solltes

Bsp:
Dim excludearray (1 To 2) As String
excludearray(1) = "D"   'steht für Drafts-View
excludearray(2) = "A"   'steht dür AllDocuments-View
Call doc.AppendItemValue("ExcludeFromView", excludearray)
...
Call doc.save

Es gibt noch die Optionen "S" für Sent-View
Gruß
Pedro

Marinero Atlántico

  • Gast
Re:Kalendereintrag mit VBA anlegen
« Antwort #2 am: 25.08.04 - 09:44:53 »
Kalendereinträge der Notes-Mail.nsf sind auch ein gutes Beispiel dafür, warum die Trennung von View und Model eben doch eigentlich ziemlich wichtig ist (find ich jedenfalls).

Da sind eine Menge in diesen Kalenderdokumenten Felder, die nach irgendwelchen Regeln automatisch gesetzt werden, wenn du ein solches Kalenderdokument im Notes-Frontend bearbeitest.
Am besten du erstellst einen Kalendereintrag im Notes-Frontend, speicherst diesen ab und schaust in der Eigenschaftenbox welche Felder wie gesetzt sind.
Diese Felder musst du alle in deiner VBA Anwendung auch setzen.
Ich hatte mal ein ähnliches Projekt, allerdings für Arbeitsumgebungen und Verbindungsdokumente und ich fand das gar nicht lustig.

y20frank

  • Gast
Re:Kalendereintrag mit VBA anlegen
« Antwort #3 am: 25.08.04 - 09:56:03 »
Hallo!
Mit dem nachstehenden Script(-auszug) habe ich das mal realisiert. Grundsätzlich würde ich da aber vom Kalendereintrag die Finger von lassen... viel zu kompliziert - wie meine Vorredner schon gesagt haben, werden viele Felder durch das Speichern des Kalendereintrages automatisch gefüllt. Und wenn der Termin geändert werden soll, hapert's auch noch (zumindest glaube ich bei dem u.a. Script)... kannste ja mal trotzdem so ausprobieren.
Viel Erfolg! :-)


Dim ws As New NotesUIWorkspace
Dim s As New NotesSession
Dim dbReminder As New NotesDatabase ("","")
Dim view As NotesView
Dim doc, doc2 As NotesDocument
Dim rtItem As NotesRichTextItem
Dim uidoc As NotesUIDocument
Set db = s.CurrentDatabase   
Set uidoc = ws.CurrentDocument
UNID = uidoc.Document.UniversalID    ' --- UNID merken
Set view = db.GetView ("($UNID)")
Set doc2 = view.GetDocumentByKey( UNID )
frist = uidoc.FieldGetText("Frist")
zeit = uidoc.FieldGetText("Zeit")
subject = uidoc.FieldGetText("Nachname") & " " & uidoc.FieldGetText("Vorname") & " " & db.Title
Call dbReminder.OpenMail
dbfilename=dbReminder.filepath
dbserver = dbReminder.server
Print "Kalender von " & dbReminder.Title & " wird kontaktiert..."
Set doc = New NotesDocument( dbReminder )
doc.Form = "Appointment"
Set dateTime = New NotesDateTime( frist + " " + zeit)
With doc      
                .Form = "Appointment"
   .ReplaceItemValue   "$Alarm",    1
   .ReplaceItemValue "$AlarmDescription",  subject
   .ReplaceItemValue "$AlarmMemoOptions", ""
   .ReplaceItemValue "$AlarmOffset", 0
   .ReplaceItemValue "$AlarmSound", "tada"
   .ReplaceItemValue "$AlarmUnit", "M"
   .ReplaceItemValue  "ViewIcon",    "67"
   .ReplaceItemValue  "ExcludeFromView", "D"
   .ReplaceItemValue   "NoticeType", "R"
   .ReplaceItemValue   "tmpDoNotProcess",   "1"   
   .Subject         = subject
   .Alarms         = "1"
   .CalendarDateTime = dateTime.lsLocalTime
   .StartDate   = dateTime.lsLocaltime
   .StartTime    = dateTime.lsLocaltime
   .StartDateTime = dateTime.lsLocaltime
   .EndDate    = dateTime.lsLocaltime
   .EndTime   = dateTime.lsLocaltime
   .EndDateTime = dateTime.lsLocaltime      .AppointmentType = "4"
End With
Set rtitem = New NotesRichTextItem( doc, "Body" )      
Call rtitem.AddNewLine( 1 )      
Call rtitem.AppendText("Die Frist für die Rückgabe der Erklärung läuft heute ab!" & Chr(10) & subject )
Call rtitem.AddNewLine( 3 )
Call rtitem.AppendText( "Bitte klicken Sie hier, um das Dokument zu öffnen -->  " )      
Call rtitem.AddTab( 1 )
Call rtitem.AppendDocLink( doc2, db.Title )
doc.ComputeWithForm True,True
doc.Save True,False
doc.PutInFolder( "$Alarms" ) ' --- Damit's auch bimmelt!!!

Print "Wiedervorlage erstellt"   

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz