Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Kaljamam am 28.04.16 - 08:20:02
-
Schönen guten Morgen,
dieser Code(Quelle Internet) ermöglicht es mir aus der Ansicht "Geburtstage und Jahrestage" in der Kontakte DB per Auswahl Termine in meinen Kalender zu importieren. Klappt perfekt.
Mit dem Parameter .OrgConfidential="1" konnte ich auch erreichen, dass diese als "privat" eingetragen werden. Jetzt würde ich das ganze noch gerne um eine weitere Sache pimpen und benötige dazu Hilfe! ;)
ZIEL: es soll automatisch eine Erinnerung mit 1 Stunde vor Ereignis eingetragen werden
WAS ICH SCHON WEIß: über den Parameter .dispAlarms="1" kann ich die Erinnerung aktivieren
Problem: er zieht aber den Standard Parameter von 1 Tag vorher erinnern und nicht 1 Stunde, wie kann ich das beeinflussen oder geht das gar nicht?
Sub Initialize
Dim db As notesdatabase
Dim s As New notessession
Set db = s.currentdatabase
Dim col As notesdocumentcollection
Dim doc As notesdocument
Dim caldoc As notesdocument
Dim geburtsdatum As Variant
Dim dates(9) As Variant
Dim i As Integer
Dim dummystr As String
Dim excludeFromView(1) As String
excludeFromView(0)="D"
excludeFromView(1)="S"
Dim subject As String
Dim searchcol As notesdocument
Dim erg As Variant
erg=Evaluate("@MailDbName")
Dim caldb As New NotesDatabase( "", "" )
Call caldb.Open( erg(0), erg(1) )
Set col = db.UnprocessedDocuments
Set doc = col.getfirstdocument
Do While Not doc Is Nothing
geburtsdatum = Cdat(doc.GetItemValue("birthday")(0))
dummystr= Cstr(Day(geburtsdatum))+"."+Cstr(Month(geburtsdatum))
subject="Geburtstag "+doc.Fullname(0)
Set caldoc = caldb.CreateDocument
With caldoc
.form = "Appointment"
.AltChair=s.UserName
.AppointmentType="1"
.OrgConfidential="1"
For i = Year(Now) To Year(Now)+9
dates(i-Year(Now)) = Cdat(dummystr+"."+Cstr(i))
Next
.CalendarDateTime=dates
.EndDateTime=dates
.ExcludeFromView=excludeFromView
.MeetingType="1"
.OrgTable="A0"
.RepeatInstanceDates=dates
.Repeats="1"
.SchedulerSwitcher="1"
.SequenceNum=1
.Startdatetime=dates
.txtNum="10"
.subject=subject
.body=Cstr(geburtsdatum)
Call .ComputewithForm(False,False)
Call .save(False,False)
End With
Set doc = col.GetNextDocument(doc)
Loop
End Sub
-
Du musst die Alarm-Felder im Kalenderdokument setzen und anschließend das Dokument in den Ordner "$Alarms" ablegen.
-
...super, danke für den Hinweis.
Da ist das Script Kiddi in mir gefordert. ;D
Also was ich als "Keine Ahnung Lotus Scriptler" hinbekommen habe
(ich bitte um Würdigung meiner Anstrengungen :love: :) )
Wenn der User z.B. in der Dialogbox 7 Stunden danach einstellt, dann greift der voreingestellte Code(Default Hotspot):
If BeforeMeeting = "1" Then
Call note.ReplaceItemValue("$AlarmOffset",offset * -60)
Else
Call note.ReplaceItemValue("$AlarmOffset",offset * 60)
End If
und setzt 7*60 und befüllt $Alarms mit 420
Wenn dieses Feld einen Wert hat, kann in der Ansicht die Spalte $AlarmTime berechnet werden??? :
@If(@IsAvailable($AlarmTime); $AlarmTime;
Form = "Task"; @Adjust(DueDateTime; 0; 0; 0; 0; $AlarmOffset; 0);
@Adjust(CalendarDateTime; 0; 0; 0; 0; $AlarmOffset; 0))
Also hab ich mal den Wert im Quell Code gesetzt:
Call caldoc.ReplaceItemValue("$AlarmOffset", 420)
Zu meinen Erstaunen setzt er diesen auch im Dokument, aber in dem Ordner ($Alarms) legt er keine Alarme an.
Wäre das der Schritt "und anschließend das Dokument in den Ordner ($Alarms) ablegen? Aber wie?
Wer erbarmt sich meiner? :'(
-
NotesDocument.PutInFolder
-
Moin zusammen,
vielen Dank für die Unterstützung. Der Code ist fertig und funktioniert einwandfrei.
Termin wird bei Import:
als privat gekennzeichnet
und mit einer Erinnerung versehen, die um 7:00 Uhr aufpoppt.
In diesem Sinne schönes Wochenende! :)
Sub Initialize
Dim db As notesdatabase
Dim s As New notessession
Set db = s.currentdatabase
Dim col As notesdocumentcollection
Dim doc As notesdocument
Dim caldoc As notesdocument
Dim geburtsdatum As Variant
Dim dates(9) As Variant
Dim i As Integer
Dim dummystr As String
Dim excludeFromView(1) As String
excludeFromView(0)="D"
excludeFromView(1)="S"
Dim subject As String
Dim searchcol As notesdocument
Dim erg As Variant
erg=Evaluate("@MailDbName")
Dim caldb As New NotesDatabase( "", "" )
Call caldb.Open( erg(0), erg(1) )
Set col = db.UnprocessedDocuments
Set doc = col.getfirstdocument
Do While Not doc Is Nothing
geburtsdatum = Cdat(doc.GetItemValue("birthday")(0))
dummystr= Cstr(Day(geburtsdatum))+"."+Cstr(Month(geburtsdatum))
subject="Geburtstag "+doc.Fullname(0)
Set caldoc = caldb.CreateDocument
With caldoc
.form = "Appointment"
.AltChair=s.UserName
.AppointmentType="1"
.OrgConfidential="1"
.dispAlarms="1"
For i = Year(Now) To Year(Now)+9
dates(i-Year(Now)) = Cdat(dummystr+"."+Cstr(i))
Next
.CalendarDateTime=dates
.EndDateTime=dates
.ExcludeFromView=excludeFromView
.MeetingType="1"
.OrgTable="A0"
.RepeatInstanceDates=dates
.Repeats="1"
.SchedulerSwitcher="1"
.SequenceNum=1
.Startdatetime=dates
.txtNum="10"
.subject=subject
.body=Cstr(geburtsdatum)
Call caldoc.ReplaceItemValue("$AlarmOffset", 420)
Call .ComputewithForm(False,False)
Call .save(False,False)
End With
Set doc = col.GetNextDocument(doc)
Call caldoc.PUTINFOLDER ("$Alarms", False)
Loop
End Sub