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

CustomDrawAppointmentBackgroundイベントとCustomDrawAppointmentイベントを処理することでそれらを表示できます。DevExpressは、これを行うサンプルコードを提供します(削除されたオカレンスを変更されたオカレンスに変換する部分は無視してください)。

于 2012-07-12T22:49:51.873 に答える