Autor Thema: Pimp the Quell Code ;)  (Gelesen 2210 mal)

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Pimp the Quell Code ;)
« 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

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Pimp the Quell Code ;)
« Antwort #1 am: 28.04.16 - 08:55:39 »
Du musst die Alarm-Felder im Kalenderdokument setzen und anschließend das Dokument in den Ordner "$Alarms" ablegen.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: Pimp the Quell Code ;)
« Antwort #2 am: 28.04.16 - 11:46:16 »
...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?    :'(


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Pimp the Quell Code ;)
« Antwort #3 am: 28.04.16 - 11:50:43 »
NotesDocument.PutInFolder

Offline Kaljamam

  • Aktives Mitglied
  • ***
  • Beiträge: 234
  • Geschlecht: Männlich
Re: Pimp the Quell Code ;)
« Antwort #4 am: 29.04.16 - 08:19:08 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz