在我当前的应用程序中,需要用户“过滤”到特定的重复约会,并且仅在调度程序控件中显示该特定约会模式的出现。我试图通过使用单独的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日有不同的开始日期,但没有显示):
可以使用GetExceptions()方法从约会引用中正确计算和获取这两个异常,但重要的是它们也会在控件中显示给用户,而不是根本不显示。是否有方法让SchedulerControl显示其存储中单个定期约会的所有事件(包括例外)?
欢迎任何其他方法建议。谢谢你的帮助!
答案 0 :(得分:0)
您可以通过处理CustomDrawAppointmentBackground和CustomDrawAppointment事件来显示它们。执行此操作的DevExpress provides sample code(忽略将已删除的事件转换为更改的事件的那部分)。