カレンダーのプロパティの操作
Contents
[
Hide
Show
]概要
Microsoft Project のカレンダーは、プロジェクト全体および個々のタスクやリソースにおける稼働時間と非稼働時間を定義します。Aspose.Tasks for .NET は、これらのカレンダーへのプログラムによるアクセスを提供し、基本階層、名前付け、固有識別などを含みます。
この記事では、Aspose.Tasks API を使用してカレンダーの一般的なプロパティにアクセスし、変更する方法を説明します。
主なカレンダー プロパティ
Calendar
クラスは、カレンダーの識別と構造を定義するいくつかの主要なプロパティを公開します:
BaseCalendar
: 現在のカレンダーが稼働時間を継承する、別のカレンダーへの参照。このプロパティは、対象カレンダーがベースカレンダーでない場合にのみ適用されます。Name
: ユーザーインターフェイスやレポートで識別するための、人間が読みやすい名前。Uid
: プロジェクト ファイル内でカレンダーを追跡および参照するための一意の整数識別子。
これらのプロパティは、カレンダー コレクションの操作、リソースへのカレンダーの割り当て、またはプロジェクト構造の他形式へのエクスポート時に重要です。
カレンダー メタデータの読み取り
以下のコード例では、名前、UID、ベースカレンダー参照などのカレンダーの一般プロパティを読み取り、表示する方法を示します。
1// Load an existing project
2Project project = new Project("Project_GeneralCalendarProperties.xml");
3
4foreach (Calendar cal in project.Calendars)
5{
6 if (cal.Name != null)
7 {
8 Console.WriteLine("UID : " + cal.Uid.ToString() + " Name: " + cal.Name);
9
10 // Show if it is has a base calendar
11 Console.Write("Base Calendar : ");
12 if (cal.IsBaseCalendar)
13 Console.WriteLine("Self");
14 else
15 Console.WriteLine(cal.BaseCalendar.Name);
16
17 // Get Time in hours on each working day
18 foreach (WeekDay wd in cal.WeekDays)
19 {
20 TimeSpan ts = wd.GetWorkingTime();
21 Console.WriteLine("Day Type: " + wd.DayType.ToString() + " Hours: " + ts.ToString());
22 }
23 }
24}
使用例
これらのプロパティは、次のようなシナリオでよく使用されます:
- カレンダーの概要を含むドキュメントやレポートの生成
- プロジェクト構造の検証や変換
- ベースカレンダーと従属するタスク/リソース カレンダー間の継承チェーンの管理
これらの主要なプロパティを理解し操作することで、開発者はスケジュール ロジックをより効果的に管理し、Microsoft Project との互換性を確保できます。