CalendarEvnt.CustomProperties doesnt work
Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Calendar
Forum Description: Topics Related to Codejock Calendar
URL: http://forum.codejock.com/forum_posts.asp?TID=2576
Printed Date: 17 December 2024 at 8:40pm Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com
Topic: CalendarEvnt.CustomProperties doesnt work
Posted By: dajv
Subject: CalendarEvnt.CustomProperties doesnt work
Date Posted: 14 July 2005 at 4:51pm
(This was previously posted in the ActiveX Suite foruim but SuperMario suggested I post it here.)
The CalendarEvent.CustomProperties collection only seems to work when the event has been added via DataProvider.AddEvent. When an event is added on the calendar ("in place" event creation) I need to save it to the database. I have this code:
Private Sub xtmCalendar_EventAdded(ByVal EventID As Long)
Dim CalEvent As XtremeCalendarControl.CalendarEvent
Set CalEvent = xtmCalendar.DataProvider.GetEvent(EventID)
If Len(CalEvent.CustomProperties("ID")) = 0 Then
CalEvent.CustomProperties("ID") = 999
End If
MsgBox xtmCalendar.DataProvider.GetEvent(EventID).CustomProperties( "ID")
End Sub
Where 999 is assigned would normally be a call to a function to create the event (appointment) in the application database, returning the new id of the appointment.
The CustomProperties collection is updated for the CalEvent object but not for the object in the DataProvider. The last line shows a message box with the "Empty" value of CustomProperties("ID").
This means that Events that are added when the calendar control is initially set up (see below) have a CustomProperties("ID") value, but new events do not.
Here is a small project reproducing it: uploads/dajv/2005-07-13_170056_CustomProperties.zip - 2005-07-13_170056_CustomProperties.zip
Am I using the DataProvider incorrectly?
Here is the code snippet that sets up the calendar:
frmMyForm.xtmCalendar.DataProvider.RemoveAllEvents
Set rs = GetRecordSet("SELECT SQL THAT GETS APPOINTMENT RECORDS")
Do While Not rs.EOF
Calendar_AddEvent Val(rs!ID), IIf(Len(NoNull(rs![Subject])) > 0, rs![Subject], "Untitled"), NoNull(rs![Notes]), rs![begin], rs![End], rs!Private, blnMeeting
Records = Records + 1
rs.MoveNext
Loop
frmMyForm.xtmCalendar.Populate
frmMyForm.xtmCalendar.RedrawControl
And the Calendar_AddEvent() Function:
Public Function Calendar_AddEvent(ID As Long, Subject As String, Description As String, StartDateTime As Date, EndDateTime As Date, _
Optional PrivateFlag As Boolean = False, Optional MeetingFlag As Boolean = False, _
Optional RecurrenceType As Integer, Optional RecurrenceEndDate As Date) As XtremeCalendarControl.CalendarEvent
Dim CalEvent As XtremeCalendarControl.CalendarEvent
Dim CalRecurrence As CalendarRecurrencePattern
Set CalEvent = frmMyForm.xtmCalendar.DataProvider.CreateEvent()
If CalEvent Is Nothing Then Exit Function
CalEvent.StartTime = StartDateTime
CalEvent.EndTime = EndDateTime
CalEvent.Subject = Subject
CalEvent.PrivateFlag = PrivateFlag
CalEvent.MeetingFlag = MeetingFlag
CalEvent.BusyStatus = CalendarEventBusyStatus.xtpCalendarBusyStatusBusy
CalEvent.CustomProperties("ID") = ID
frmMyForm.xtmCalendar.DataProv ider.A ddEvent CalEvent
Set Calendar_AddEvent = CalEvent
End Function
This is quite important to get resolved, so any prompt advice is appreciated.
Thanks
|
Replies:
Posted By: sserge
Date Posted: 15 July 2005 at 2:04am
Hi,
Thanks -- the problem description is quite complete :)
Thre are 3 basic methods in the data provider to work with events:
AddEvent()
ChangeEvent()
DeleteEvent()
You have just to call ChangeEvent() and event will be updated in the data provider storage.
If Len(CalEvent.CustomProperties("ID")) = 0 Then
CalEvent.CustomProperties("ID") = 999
xtmCalendar.DataProvider.ChangeEvent(CalEvent)
End If
|
--
WBR,
Serge
|
Posted By: dajv
Date Posted: 17 July 2005 at 4:50pm
Ah, that makes sense! Thanks alot.
|
|