0

在我当前的应用程序中,用户需要“过滤”到特定的重复约会,并且只在调度程序控件中显示该特定约会模式的出现。我试图通过使用单独的 SchedulerControl 创建一个新表单来实现这一点,并且只添加用户试图查看的单个约会:

public OccurrenceCalcForm(Appointment appointment)

{
    InitializeComponent();

    OccurrenceSchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("Inactive", "Inactive"));
    OccurrenceSchedulerControl.Storage.Appointments.CustomFieldMappings.Add(new DevExpress.XtraScheduler.AppointmentCustomFieldMapping("StandingOrderKEY", "StandingOrderKEY"));
    OccurrenceSchedulerControl.Storage.Appointments.Add(appointment);


    OccurrenceSchedulerControl.Refresh();
}

但困难在于,如果约会有 ChangedOccurrence 类型的例外,这些个别事件的特定属性与模式不同,它们不会显示在控件中,如下面的屏幕截图所示(实际上,这个每日约会有更改的例外24 日和 26 日,开始日期不同,但不显示):

每日预约,24 日和 26 日除外

这两个异常都可以使用 GetExceptions() 方法从 Appointment 引用中正确计算和获取,但重要的是它们也要在控件中显示给用户,而不是根本不显示。是否有一种方法可以让 SchedulerControl 在其存储中显示单个重复约会的所有事件(包括异常)?

欢迎任何替代方法建议。谢谢你的帮助!

4

1 回答 1

0

您可以通过处理CustomDrawAppointmentBackgroundCustomDrawAppointment事件来显示它们。DevExpress提供了执行此操作的示例代码(忽略将删除的事件转换为更改的事件的部分)。

于 2012-07-12T22:49:51.873 回答