Hello,
After updating my components to 14.1.4, my SchedulerDBStorage.Reminders is not working properly. SchedulerDBStorage.Reminders.HasReminders always returns FALSE when I have active reminders in the dataset. I cannot get the ReminderWindow to appear.
Help -
I have users screaming at us about this…
Thanks
Greg
Gregory,
I was not able to reproduce this behavior with the latest version of our controls (VCL 14.2.2). Attached is an example (source and executable files) that operates as expected on my side. I have also attached a short video demonstrating my efforts to reproduce the problem. The HasReminders property seems to work exactly as it is described in the "TcxSchedulerReminders.HasReminders" help topic. If my example works OK on your side, I suggest that you install VCL 14.2.2 and test your project with it. The issue may be fixed there. If your project still does not work OK with VCL 14.2.2, modify my example to demonstrate the problematic scenario and I will try to find a solution.
If the problem is critical for you, I suggest that you immediately rollback to the previous version of our controls that worked OK with your project because resolving this issue can take time.
Paulo,
Thanks for the reply… I updated my components to 14.2 and downloaded your sample. Using your compiled exe it works fine, When I compile it in my Delphi 2007 IDE, the reminder window DOES NOT POP UP…
I've included BOTH your compiled exe and mine. in my attachment.
Can you assist me here? We are in the process of migrating to Delphi XE7 - but that won't be completed for months… I need to get this resolved.
Thanks
Greg
I think I found the issue - but need verification from you…
Prior to v 14.1 of your components, you did NOT have to have a Scheduler component hooked up to a Storage component for the reminders window to show… Apparently, now you do…
Is this correct? I have a global reminder system in my application that is independent of any scheduler display using a dataset and a TcxSchedulerDBStorage component.
To fix my issue, I simply added am invisible Scheduler component to my main window and attached my Reminder TcxSchedulerDBStorage component to it… Everything works as before.
Am I missing anything?
Greg
Hello Greg,
I am happy to hear that you have found a workaround. However, the TcxScheduler control is not absolutely necessary to make a reminder window appear. Using the TcxSchedulerDBStorage component bound to a database should be sufficient. Attached is the modified project that works OK without any TcxScheduler control on a form. So, I suspect that the problem is somewhere else. Would you please modify my example so I can replicate your scenario on my side?
Paulo,
Thanks for the new project. I've attached a modified version of it back… Here's what I found: You're creating your event using a TcxSchedulerEvent.Create method. In my application, we create many events in the dataset.
I copied your created event into YOUR memdataset as a permanent record. That reminder will NOT appear in the reminder window UNLESS we hook up the scheduler component.
Hope this helps…
Thanks again -
Greg
Thanks a lot for your modified project. I have reproduced this behavior and forwarded this ticket to our developers for research.
Faced the same problem. I found simple workaround. To force triggering remindes without TScheduler component we need call GetEvents method (see sample below) after reopening data set.
…
MyStorage: TcxSchedulerDBStorage;
…
private
FEventList: TcxSchedulerCachedEventList;
…
procedure TMyReminders.RemindersDataSetAfterOpen(DataSet: TDataSet);
var
I: integer;
AStart, AFinish: TDateTime;
begin
// Initialize dates - I just take min Start and max Finish from MyStorage.Events
AStart := cxMaxDate;
AFinish := Date + 30;
for I := 0 to MyStorage.EventCount - 1 do
begin
if MyStorage.Events[I].Start < AStart then
AStart := Storage.Events[I].Start;
if MyStorage.Events[I].Finish > AFinish then
AFinish := Storage.Events[I].Finish;
end;
// next call makes remindes wirking
MyStorage.GetEvents(FEventList,AStart,AFinish);
end;