Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mibo11 am 04.02.05 - 21:07:45

Titel: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 04.02.05 - 21:07:45
Hallo,

wie kann man im Kalenderprofil per Script den Zeitplan ändern.

Ich möchte die eingegebenen Zeiten ändern in 09:00 - 12:00, 13:00 - 18:00.

Einzelne Werte, also 09:00 ist kein Problem aber wie stelle ich eine Zeitspanne ein?

Gruß Sascha
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: koehlerbv am 04.02.05 - 23:08:40
Entweder, du nimmst Evaluate her (siehe den Code in $Times1 des CalendarProfiles), oder Du baust Dir via DateNumber das Array selber zusammen.

Wo liegt Dein wirkliches Problem ?

Bernhard
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 05.02.05 - 09:35:12
Hallo Bernhard,

folgender Code


   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim profdoc As NotesDocument
   
   Dim ergebnis As Variant
   Dim formelmacro As String   
   
   Set db = s.CurrentDatabase
   Set profdoc = db.GetProfileDocument("CalendarProfile")   
   
   formelmacro = {@TextToTime(@Text(@Adjust([00:00:00]; 0; 0; 0; 9; 0; 0)) + " - " + @Text(@Adjust([00:00:00]; 0; 0; 0; 12; 0; 0))) : @TextToTime(@Text(@Adjust([00:00:00]; 0; 0; 0; 13; 0; 0)) + " - " + @Text(@Adjust([00:00:00]; 0; 0; 0; 18; 0; 0)))}
   ergebnis = Evaluate(formelmacro,profdoc)
   profdoc.ReplaceItemValue "$TimesDisp2",ergebnis   ' Feld für Montag
   profdoc.save True, False, True


führt zu folgendem Ergebnis (siehe MONTAG in Kalender.jpg).

Ich möchte allerdings das Ergebnis so erzeugen wie am Dienstag, also mit Trennstrich, damit es einen Zeitraum ergibt.

Interessanterweise werden im Debugger beide Feldinhalte gleich dargestellt.

(siehe Debugger.jpg)

Eine Idee?

Gruß Sascha


Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: Semeaphoros am 05.02.05 - 10:04:18
Studierst Du mal die NotesDateRange Klasse und verwendest diese
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 05.02.05 - 10:08:42
Hallo Jens,

danke für den Tip, aber leider bringt dies mein Verständnis auch nicht weiter.

Wie binde ich dann das DateRange Objekt in das Feld ein?

Gruß Sascha
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 05.02.05 - 10:14:48
Hallo Jens,

ich habs gefunden.

DateRange.Text in ein Array (vom Typ Variant) löst das Problem.

Vielen dank für den Ansatz.

Grüße aus dem Rheinland

Sascha

Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 05.02.05 - 10:28:03
Hallo Jens,

ich habe mich leider zu früh gefreut.

Der Ansatz mit der NotesDateRange hat mich doch nicht weiter gebracht.

DateRange.Text liefert mir einen Textstring, den der freihe Zeit Agent nicht interpretieren kann. Anbei ein Screenshot des Debuggers vom entsprechenden Feld. Das Feld sollte allerdings so aussehen, wie in einem meiner letzten Postings. 

Was mir nicht ganz klar wird, ist die Tatsache, dass der Zeitraum 09:00 - 12:00, 13:00 - 18:00 im Debugger als Mehrfachfeld mit 4 Einträgen (09:00, 12:00, 13:00, 18:00) dargestellt wird (Datentyp Variant).  Wodurch werden dann im Frontend die Trennstriche dargestellt?

Gruß Sascha

Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: Semeaphoros am 05.02.05 - 15:03:44
Du darfst das dem Feld natürlich nicht als Text übergeben, sondern mit ReplaceItemValue das gesamte Zeitobjekt oder einen Array von solchen Objekten übergeben.
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: mibo11 am 05.02.05 - 15:46:03
Vielen Dank Jens,

das mit dem Objekt war es.

Anbei der Code:

   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim profdoc As NotesDocument
   Dim dr As NotesDateRange
   Dim i As Integer
   
   Set db = s.CurrentDatabase
   Set profdoc = db.GetProfileDocument("CalendarProfile")   
   Set dr = s.CreateDateRange
   
   dr.Text = ("09:00:00 AM - 01:00:00 PM")   
   
   For i = 2 To 6
      profdoc.ReplaceItemValue "$TimesDisp" & Cstr(i),dr
   Next
   profdoc.save True, False, True


Gruß Sascha
Titel: Re: Zeitplan im Kalenderprofil per Script ändern
Beitrag von: Semeaphoros am 05.02.05 - 15:53:49
Fein, gut dass es jetzt tut wie es soll :)