WinSchedule の NAS2004 Volume 3 リリースには、予定のグループ化のサポートが含まれます。アクティビティ(予定やメモなど)を表示する WinSchedule コントロールを変更して、異なるオーナーに属するアクティビティを区別できるようになりました。これにより、いくつかの簡単なプロパティを設定するだけで、WinDayView、WinMonthViewSingle、および WinWeekView コントロールはエレメントの同じインスタンス内に異なるオーナーのカレンダーを並べて表示できます。
予定グループ化機能をサポートするため、Owner という新しいオブジェクトが WinSchedule アセンブリに追加されました。Owner オブジェクトは個人または部署を表すために設計され、予定やメモのグループが属しています。Owner は、異なるオーナーが互いを区別できる方法を提供するために、Name や Key などのプロパティを公開しています。既存の Appointment および Note オブジェクトは Owner や OwnerKey などの新しいプロパティを公開しています。これを使用して、Owner を予定/メモと関連付けることができます。Owner オブジェクトを作成するには、関連付けられている UltraCalendarInfo エレメントの Owners コレクションにメンバを追加します。オーナーが作成されるときに、そのオーナーを一意に識別するキーを割り当てる必要があります。
Owners コレクションには常に「未割り当てオーナー」というメンバが少なくともひとつあります。これはコレクションを消去した場合にも存在します。オーナーに明示的に割り当てられていない予定またはメモは、この特別な未割り当てオーナーに割り当てられているかのように動作します。この未割り当てオーナーへの参照は、Owners コレクションの UnassignedOwner プロパティから取得できます。
予定またはメモの所有権を設定するには、Owner オブジェクトを作成した後、そのインスタンスを Appointment/Note の Owner プロパティに割り当てるか、またはそのキーを予定/メモの OwnerKey プロパティに割り当てます。予定/メモを特定のオーナーに割り当てると、異なるオーナーのカレンダーを個別に表示するよう設定された UltraWinSchedule エレメントには、該当するオーナーのカレンダーに含まれる予定/メモのみが表示されます。Owners コレクションに比較的多くのオーナーが含まれていて、そのオーナーの一部にユーザー インターフェイスからアクセスできない場合は、オーナーの Visible プロパティを使用してオーナー(とその関連するアクティビティ)を表示または非表示にできます。Visible プロパティが True に設定されているオーナーは、関連する UltraCalendarInfo エレメントの VisibleOwners コレクションに格納されるため、現在ユーザー インターフェイスからアクセス可能なオーナーを簡単に反復処理できます。同様に、Owner オブジェクトは Locked プロパティを公開しており、ユーザー インターフェイスには表示されるものの、その予定とメモを変更できない「読み取り専用」オーナーの概念をサポートします。
Owner オブジェクトでは、動作関連プロパティのほかに、各オーナーに固有の外観を与える Appearance プロパティも公開しています。次の表に、Appearance プロパティとそれらが適用されるエレメント、および各プロパティによってエレメントのどの外観が変更されるかを示します。
UltraDayView コントロールは、異なるオーナーをコントロール内でどのように表示するかを指定するプロパティを公開しています。GroupingStyle プロパティのデフォルトは「NoGrouping」になっていますが(下位互換性を維持するため)、「OwnerWithinDate」に設定すると、1 日のカレンダーの中に表示オーナーがすべて表示され、「DateWithinOwner」に設定すると、個々のオーナーの中に、関連する UltraCalendarInfo エレメントの SelectedDateRanges コレクションの内容が表示されます。
ColumnScrolling プロパティは、エンド ユーザーが列を移動できるかどうかと、移動できる場合はその方法を決定します。次の表に、ColumnScrolling プロパティのさまざまな設定と、各設定がユーザー インターフェイスに与える影響についての簡単な説明を示します。
このほかに、開発者がユーザー インターフェイスをさらにカスタマイズするためのプロパティも公開されています。たとえば、AllowColumnResizing プロパティを False に設定すると、エンド ユーザーは列の幅を変更できません。また、MinimumColumnWidth プロパティを設定すると、列を一定の幅にすることができます。オーナー ヘッダは、ShowOwnerHeader プロパティを設定することで表示または非表示にできます。PreferredInViewColumnCount および PreferredInViewGroupCount の各プロパティを使用すると、列の初期幅(表示される列の数)を設定し、さらにアプリケーション セッション中にエンド ユーザーが列の幅を変更することを許可できます。
UltraMonthViewSingleBase 派生エレメント(UltraMonthViewSingle と UltraWeekView)は OwnerDisplayStyle プロパティを公開しています。このプロパティは、予定/メモをオーナーごとにまとめて表示するか、または混在させるかを決定します。OwnerDisplayStyle プロパティのデフォルトは(下位互換性を維持するため)「Merged」になっていますが、「Separate」に設定すると、関連する UltraCalendarInfo コンポーネントの Owners コレクションに含まれる表示オーナーごとに異なるカレンダーが表示されます。
OwnerNavigationStyle プロパティは、エンド ユーザーが別のオーナーにナビゲートできるかどうかと、ナビゲートできる場合はその方法を決定します。次の表に、OwnerNavigationStyle プロパティのさまざまな設定と、各設定がユーザー インターフェイスに与える影響についての簡単な説明を示します。
MaximumOwnersInView プロパティは、コントロールによって表示されるオーナーの数を指定する場合に使用します。UltraDayView コントロールと同様に、ShowOwnerHeader プロパティはオーナーのヘッダを表示するか非表示にするかを決定します。