30. november 2004 - 12:29
Der er
3 kommentarer og
1 løsning
Kopiere dokument ind som aftale i min kalender.
Hej Eksperter
Jeg har en form som indeholder 4 felter, som jeg skal have kopierte ind i min kalender ved hjælp af en knap.
Felterne:
Installation
start dato
start tid
slut tid
Jeg har fundet et lotusscript på nettet, men kan ikke få det det til at fungere, og jeg forstår ikke noget af det alligvel. Kan man gøre det med formula sproget?
07. januar 2005 - 12:10
#3
- sku' lige se om der var liv i spørgsmålet :-)
Du kan lave en agent, der opretter en kalenderaftale med
@command([compose];"Appointment")- og derefter udfylder respektive felter med
@Command([EditGoToField];"Felt_1");
@Command( [EditInsertText] ; Hentet_Tekst_1 );
@Command([EditGoToField];"Felt_2");
@Command( [EditInsertText] ; Hentet_Tekst_2 );
..osv.
Variablen Hentet_Tekst_#, skulle så være en @dbLookup der hentede det feltindhold du ønsker overført til kalenderaftalen.
Absolut ikke elegant, men dog muligt. Desværre kan jeg ikke få EditInsertText til at fungere, så jeg kan ikke teste det. Lotusscript vil helt klart være at foretrække.
01. februar 2005 - 09:53
#4
Jeg kan under ingen omstændigheder få det til fungere... har prøvet mangte ting nu. Hvordan ville det evt. se ud i lotusscript? Jeg har et eksempel som jeg har fundet på nettet, men jeg kan ikke finde hoved eller hale i det .
Sub Click(Source As Button)
Dim db As Notesdatabase
Dim session As New NotesSession
Dim workspace As New notesuiworkspace
Dim uidoc As notesuidocument
Dim note As notesdocument
Dim item As NotesItem
Dim startdttm As NotesDateTime
Dim enddttm As NotesDateTime
Dim window As NotesDateRange
Dim names As String
Dim dur As Integer
Dim username As String
Set uidoc = workspace.currentdocument
Set note = uidoc.Document
Set item = note.GetFirstItem("Servicetid_accept")
Set startdttm = item.DateTimeValue
Set item = note.GetFirstItem("service_varighed")
Set enddttm = item.DateTimeValue
Set window = session.CreateDateRange()
Set window.StartDateTime = startdttm
Set window.EndDateTime = enddttm
names = session.CommonUserName
dur = ((enddttm.TimeDifference(startdttm))+86400)/60
freeTime = session.FreeTimeSearch(window, dur, names, True)
' If there is no value for freeTime(0) then that time is already booked - messagebox constants 0=okonly, 4=yesno, 32=question mark icon, 7=no
' If (freeTime(0) Is Nothing) Then
' If Messagebox ("This time is already booked - do you want to double book?", 4 + 32) = 7 Then
' Messagebox "This document has NOT been added to your calendar. ", 0, "Add Canceled"
' Exit Sub
' End If
' End If
Set db = New notesdatabase("", "")
Call db.openmail
Dim cEntry As New NotesDocument(db)
Dim rtitem As Variant
Dim itemIcon As NotesItem
username = session.UserName
cEntry.From = note.From(0)
cEntry.Subject = note.EventDescription
Set rtitem = note.GetFirstItem("Body")
Call rtitem.CopyItemToDocument(cEntry, "kundenr")
cEntry.Form = "Appointment"
cEntry.AppointmentType = "2"
cEntry.tmpWasMailed = "1"
cEntry.ExcludeFromView = "D"
cEntry.OrgTable = "P0"
cEntry.Location = note.Location
cEntry.calendarDateTime = note.datelist
Set itemIcon = New NotesItem(cEntry, "_ViewIcon", 9)
itemIcon.IsSummary = True
cEntry.Logo = "stdNotesLtr0"
cEntry.StartDate = note.EventStartDate
cEntry.EndDate = note.EventEndDate
Call cEntry.save(True, True)
Messagebox "This document has been added to your calendar. ", 0, "Add Complete"
End Sub