Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bille am 06.03.07 - 11:50:47

Titel: Eintrag im Feld CalendarDateTime ändern
Beitrag von: Bille am 06.03.07 - 11:50:47
Hallo!

Ich hab gerade festgestellt, dass in unserem Kalender heuer "Fronleichnam" und "Christi Himmelfahrt" auf den gleichen Tag fallen.  :o
Den falschen Eintrag der Feiertage im Adressbuch habe ich bereits berichtigt.

Bei den Kollegen, die die Feiertage bereits importiert haben, muss ich diesen Fehler natürlich ebenfalls korrigieren.

Dazu möchte ich ein Mail mit einem Button verschicken:

Code
	Dim Selektion As String
	Selektion = {FIELD form="Appointment" & FIELD Subject = "Fronleichnam"}
	Set col = db.FTSearch (Selektion, 0)        
	
	Set Datum1 = New NotesDateTime( "07/06/2007 00:00:01 AM" )

	Set doc = col.GetFirstDocument 
	While Not doc Is Nothing
		Dim x As Integer
		For x = 0 To 5
			If doc.CalendarDateTime(x) = "17.05.2007 0:00:01" Then	
				doc.CalendarDateTime(x) = Datum1   ' hier hakt es
			End If		
				Next
		
		Set doc = col.GetNextDocument(doc)
	Wend
	

Bei dem Versuch das Feld "CalenderDateTime" zu ändern, kommt der Fehler "Illegal use of property". Im Debugger wird dieses Feld bzw. die Liste der Einträge als Variant anzeigt. Also habe ich versucht einfach einen String ( "07.06.2007 0:00:01") zu übergeben, das hat leider auch nicht funktioniert.

Wie muss ich vorgehen, damit der Eintrag berichtigt wird?

Bille

PS: Das C&S Schema hab ich mir angesehen, konnte mein Problem allerdings nicht lösen.
Titel: Re: Eintrag im Feld CalendarDateTime ändern
Beitrag von: koehlerbv am 06.03.07 - 12:11:52
Du kannst Items zwar als Array auslesen, aber nicht wieder so setzen.

Hole Dir CalendarDateTime in ein Variant.
Die Werte dort sind Variants vom Typ Date / Time - keine Strings.
Bilde mit Cdat oder Datenumber ein DT-Variant Deines Vergleichswertes.
Vergleiche die ganzzahligen (!) Teile des Arrays mit dem Vergleichswert.
Schreibe ggf. den zu ändernden Wert wieder ins Array.
Weise CalendarDateTime abschliessend wieder das Array zu, falls erforderlich.

Bernhard
Titel: Re: Eintrag im Feld CalendarDateTime ändern
Beitrag von: Glombi am 06.03.07 - 12:35:56
Mal eine andere Frage: Wird das denn nicht korrigiert, wenn die User die Feiertage ein weiteres Mal einlesen. Ich meine dass ein Abgleich stattfindet.

Wenn es so ist, kannst Du ja eine Mail mit der Bitte um erneutes Einlesen der Feiertage senden - oder Du tust den Code aus dem Agenten in einen Button.

Andreas
Titel: Re: Eintrag im Feld CalendarDateTime ändern
Beitrag von: Bille am 06.03.07 - 13:25:27
Auf die Idee, die Feiertage erneut einzulesen, bin ich gar nicht gekommen. Wobei das eigentlich doch sehr nahe liegt. Werde ich auf jeden Fall gleich mal testen.

Ansonsten werde ich mir Bernhard's Vorschlag ansehen.

Vielen Dank Euch beiden schon mal für die Tipps!
Bille
Titel: Re: Eintrag im Feld CalendarDateTime ändern
Beitrag von: Bille am 06.03.07 - 14:34:39
Andreas, Du hattest recht.
Das erneute Importieren der Feiertage hat die fehlerhaften Einträge berichtigt.

Bille
 :D