WinSchedule の Ultimate UI for Windows Forms 2004 Volume 2 リリースには、繰り返し予定のサポートが含まれます。既存の Appointment は、繰り返しの概念をサポートするように修正されています。これにより、関連づけられている AppointmentRecurrence オブジェクトで指定されたパターンに基づいて、予定が周期的に発生するように設定できます。また、AppointmentRecurrence オブジェクトが NAS2004 Volume 2 リリースに新しく追加されました。このオブジェクトを(Appointment の Recurrence プロパティに割り当てることによって)Appointment に関連付けると、その Appointment が繰り返し予定の各回を生成する「テンプレート」となります。
繰り返し予定の作成を有効にするには、関連付けられた WinCalendarInfo コンポーネントの AllowRecurringAppointments プロパティを True に設定します。このプロパティは、下位互換性を維持するため、デフォルトでは False に設定されています。
繰り返し予定機能をサポートするため、AppointmentRecurrence という新しいオブジェクトが UltraWinSchedule アセンブリに追加されました。AppointmentRecurrence オブジェクトは、Appointment が発生する頻度と、繰り返しによって生成されるアクティビティを含む日付範囲を定義します。Appointment を繰り返し予定にするためには、AppointmentRecurrence オブジェクトのインスタンスを作成し、それを Appointment の Recurrence プロパティに割り当てます。AppointmentRecurrence が Appointment に割り当てられると、AppointmentRecurrence の明示的に設定されていないすべてのプロパティの値は自動的に Appointment から取得されます。たとえば、AppointmentRecurrence オブジェクトの RangeStartDate プロパティが設定されていない場合、このプロパティの値は Appointment の StartDateTime プロパティから取得されます。
AppointmentRecurrence オブジェクトのインスタンスがその Recurrence プロパティに設定されている Appointment のことを、「繰り返し予定のルート」と呼びます。繰り返し予定のルートの IsRecurringAppointmentRoot プロパティは True を返し、AppointmentRecurrence オブジェクトの RootAppointment プロパティはその Appointment への参照を返します。繰り返し予定のルートは、関連付けられた UltraCalendarInfo エレメントの Appointments コレクションに属しますが、生成される繰り返し予定の各回はこのコレクションに 属しません 。これらの予定のことを「未変更回」と呼びます。未変更回のひとつに何らかの変更を加えると、それは「バリアンス」と呼ばれるものになります。未変更回とは異なり、バリアンスは関連する UltraCalendarInfo エレメントの Appointments コレクションに追加されます。繰り返し予定のルートを Appointments コレクションから削除すると、その繰り返し予定に関連するすべての予定が、変更されているかどうかにかかわらず、同時に削除されます。
次の表に、AppointmentRecurrence オブジェクトのプロパティと、各プロパティの動作に関する簡単な説明を示します。
前のセクションで述べたように、繰り返し予定をサポートするため、既存の Appointment オブジェクトにいくつかのプロパティが追加されました。次の表に、追加された新しいプロパティと、各プロパティの動作に関する簡単な説明を示します。
UltraWinSchedule の前バージョンのユーザーは、外観と動作が MS Outlook の予定ダイアログとよく似た 予定ダイアログに慣れているかもしれません。繰り返し予定を作成および編集するためのフロントエンドを提供するため、 NAS2004 Vol 2 には繰り返し予定ダイアログが含まれています。このダイアログも MS Outlook のダイアログと非常によく似ており、予定ダイアログから直接呼び出すことができます。このダイアログを使用すれば、MS Outlook ユーザーが慣れ親しんでいるのと同じインタフェースをエンド ユーザーに提供できます。
エンド ユーザーに柔軟性を提供するために、繰り返し予定ダイアログが表示される前に、BeforeDisplayAppointmentRecurrenceDialog イベントが発生します。このイベントをキャンセルすると、デフォルトのダイアログは表示されません。代わりにカスタムのダイアログが表示されるか、ダイアログが全く表示されません。