'宣言 Public ReadOnly Property WorkingHours As TimeRangesCollection
public TimeRangesCollection WorkingHours {get;}
WorkingHours プロパティは、特定の日の稼働時間として連続していない範囲を複数指定することを可能にします。たとえば、2 TimeRange インスタンス (1 つを 9 AM から 12 PM まで、もう 1 つは 1 PM から 5PM まで) をリストへ追加すると、12 PM to 1 PM が不稼働時間の範囲になるよう日付の就業時間を定義します。
WorkingHours コレクションが空以外で、そのコンテンツは関連する稼働時間の日付と曜日および Owner, を完全に表示します。たとえば、WorkingHours コレクションは、稼働時間を定義する他のプロパティすべてに優先します。つまり、DayOfWeekSettings および DayOfWeek クラスの WorkDayStartTime と WorkDayEndTime プロパティです。すなわち、TimeRange がコレクションに追加されるとすぐに、TimeRange は稼働時間のみを表示して他のすべての条件と置き換えます。たとえば、過去に稼働日だと見なされた日の稼働時間を 8 AM から 5 PM として検討します。9AM から 12PM の TimeRange が、関連する曜日の WorkingHours コレクションに追加された場合、稼働時間の範囲が即座に 9AM から 12PM になり、稼働日の一部だと見なされていた時間は含まれなくなります。稼働時間がこの方法で定義されると、開発者は稼働時間を定義をする必要があります。
Appearance オブジェクトは、稼働時間または非稼働時間用にこのクラスによって特別に定義されることに注意してください。外観を公開する UltraDayView コントロールや Owner オブジェクト、また TimeSlot の表示属性を介してメカニズムを提供する外観をカスタマイズできます。WorkingHours プロパティは、「稼働」時間と見なされる時間のより詳細なコントロールを拡張します。それにより時間範囲の制限や展開が適用されます。特定の外観は、TimeRangeAppearances コレクションを使用する稼働時間内かどうかにかかわらず、任意の時間範囲に適用されます。
IsWorkday プロパティは、複数のクラスによって公開されるため、稼働日をさまざまなレベルに定義することが可能です。つまり、特定の日、曜日、または定期的な日付パターンなどに基づきます。以下のテーブルは、WorkingHours コレクションのプロパティ解決プロセスでの優先順位の詳細を表します。
優先順序 | 解決された値 |
---|---|
1) OwnerDateSettings | Owner の DateSettings コレクションが解決する日のエントリーを含む場合は、そのエントリーが評価されます。評価されない場合、解決プロセスは次のレベルへ続行します。明示的に生成された場合、このコレクションのコンテンツはプロパティの解決階層の他のレベルすべてに優先されます。WorkingHours コレクションは、TimeRanges を 1 つ以上含みます。対応する日に表示される TimeSlot が、いずれかの TimeRanges と交差する場合は稼働時間の外観を表示します。それ以外の場合は、非稼働時間の外観を表示します。 |
2) CalendarDateSettings | CalendarInfo の DateSettings コレクションが解決する日のエントリーを含む場合は、そのエントリーが評価されます。評価されない場合、解決プロセスは次のレベルへ続行します。明示的に生成された場合、このコレクションのコンテンツはプロパティの解決階層の残りのすべてのレベルに優先されます。WorkingHours コレクションは、TimeRanges を 1 つ以上含みます。対応する日に表示される TimeSlot が、いずれかの TimeRanges と交差する場合は稼働時間の外観を表示します。それ以外の場合は、非稼働時間の外観を表示します。このレベルはオーナーに固有に適用されることに注意してください。つまり、オーナー固有の項目をに表示しないコントロールでは、選択した日付の稼動時間を定義するために UltraCalendarInfo の DateSettings コレクションを使用できます。 |
3) OwnerRecurringDateSettings |
Owner の RecurringDateSettings コレクションがメンバーを 1 つ以上含む場合、各メンバーは、Recurrence プロパティで定義された定期的なパターンと一致する日付が解決されるかどうかを決定するために検証されます。評価されない場合、解決プロセスは次のレベルへ続行します。明示的に生成された場合、このコレクションのコンテンツはプロパティの解決階層の残りのレベルに優先されます。WorkingHours コレクションは、TimeRanges を 1 つ以上含みます。対応する日に表示される TimeSlot が、いずれかの TimeRanges と交差する場合は稼働時間の外観を表示します。それ以外の場合は、非稼働時間の外観を表示します。
注: 複数の繰り返しが同じ日付の出来事を生成する場合は、コレクションの最初に一番近いインスタンスに指定された日付に優先します。このため、稼働時間を定義するのに複数の定期的なアイテムを使用する場合は、最低頻度の出来事を生成する定期的なアイテムをコレクションの開始の一番近くに配置をお勧めします。下記の例は 2 つの定期的なイベントのシナリオです。1 つ (月単位) は、「毎月、最初の月曜日」に発生し、稼働時間は 10AM から 2PM に定義されています。もう 1 つの定期的なアイテム (日単位) は、「全ての平日」に発生し、稼働時間は 9 AM - 3 PM に定義されています。月単位の定期的なアイテムは、コレクションの開始に挿入をする必要があります。日単位の定期的なアイテムはその後に挿入します。そうしない場合、月の最初の月曜日は非単位の定期的アイテムに解決されます (月の最初の月曜日は平日であるため)。挿入は稼働時間を 10AM - 2PM に解決されましたが、9AM - 3PM に解決されます。 |
4) DayOfWeekSettings |
解決される日付に対応する DayOfWeekSettings コレクションのメンバーが参照されます。WorkingHours コレクションが明示的に生成された場合は、コンテンツはプロパティの解決階層の残りレベルに優先します。対応する日に表示される TimeSlot が、いずれかの TimeRanges と交差する場合は稼働時間の外観を表示します。それ以外の場合は、非稼働時間の外観を表示します。 WorkingHours コレクションが空の場合、WorkDayStartTime や WorkDayEndTime プロパティは、明示的に設定されているかどうかを決定するために評価されます。設定されている場合、対応する日に表示される TimeSlot が、いずれかの WorkDayStartTime や WorkDayEndTime プロパティに定義された時間の範囲と交差する場合に、稼働時間の外観を表示します。 |
5) DayOfWeek (UltraCalendarInfo) | プロパティの解決階層の最終レベルです。解決チェインに特定の設定があるプレーヤーが他にいない場合は、このオブジェクトが最終決定を下します。対応する日に表示される TimeSlot が、WorkDayStartTime や WorkDayEndTime プロパティに定義された時間の範囲と交差する場合に、稼働時間の外観を表示します。 |
TimeSlotSettings クラス
TimeSlotSettings メンバ
WorkDayStartTime プロパティ (DayOfWeekSettings クラス)
WorkDayEndTime プロパティ (DayOfWeekSettings クラス)
IsWorkDay プロパティ (DayOfWeekSettings クラス)
WorkingHours コレクション (DayOfWeekSettings クラス)
WorkDayStartTime プロパティ (DayOfWeek クラス)
WorkDayEndTime プロパティ (DayOfWeek クラス)
IsWorkDay プロパティ (DayOfWeek クラス)
TimeRange クラス
TimeSlot クラス
UltraDayView コントロール