タスクとカレンダー
Contents
[
Hide
Show
]Microsoft Projectでは、個々のタスクに特定のカレンダーを関連付けることができます。Aspose.Tasks for .NETは、 Tsk.Calendar プロパティで、タスクを特定のカレンダーにリンクします。
カレンダー付きのタスク
この
Tsk クラスは、 Calendar
フィールドは、タスクに関連付けられたカレンダーの設定や取得に使用されます。このプロパティは Aspose.Tasks.Calendar オブジェクトを受け取り、または返します。
Microsoft Projectでタスクのカレンダーを作成するには:
- プロジェクトファイルを開きます。
- Project メニューで、 Change Working Times → Create New Calendarを選択します。
- カレンダーを割り当てるには、 Task Entry フォームでタスクをダブルクリックし、タスクのプロパティでカレンダーを選択します。
例: タスクカレンダーの設定
次のコードは、カレンダーを作成し、タスクを追加し、そのタスクにカレンダーを割り当てる方法を示します:
1Project project = new Project();
2
3// Add task
4Task task = project.RootTask.Children.Add("Task1");
5
6// Create calendar and assign to task
7Calendar cal = project.Calendars.Add("TaskCal1");
8task.Set(Tsk.Calendar, cal);
例: タスクカレンダーの読み取り
プロジェクト内のタスクを走査して、それらに関連付けられたカレンダーを読み取ることもできます:
1Project project = new Project("New Project.mpp");
2
3// Declare ChildTasksCollector class object
4ChildTasksCollector collector = new ChildTasksCollector();
5
6// Use TaskUtils to get all children tasks in RootTask
7TaskUtils.Apply(project.RootTask, collector, 0);
8
9// Parse all the recursive children
10foreach (Task task in collector.Tasks)
11{
12 Calendar cal = task.Get(Tsk.Calendar);
13 Console.WriteLine("Task calendar name: {0}", cal == null ? "None" : cal.Name);
14}
主な注意点
- タスクカレンダーは、その特定のタスクのスケジュールについてプロジェクトカレンダーより優先されます。
- タスクに独自のカレンダーがない場合、デフォルトのプロジェクトカレンダーを継承します。
- カレンダーには稼働時間、例外、および休日を含めることができ、タスクのスケジューリングに対して細かな制御を提供します。
- 両方の MPP と XML 形式で一貫して動作します。
よくある質問
問: タスクは複数のカレンダーを持つことができますか?
- いいえ。各タスクには単一のカレンダーのみ割り当てられます。
問: タスクカレンダーがプロジェクトカレンダーと競合する場合はどうなりますか?
- そのタスクに関しては、タスクカレンダーが優先されます。
問: タスクからカレンダーを削除するにはどうすればよいですか?
- タスクの
Calendar
プロパティをnull
これによりプロジェクトカレンダーを再度使用するようになります。
問: タスクカレンダーを割り当てる際にリソースカレンダーは考慮されますか?
- はい。最終スケジュールは、タスクカレンダー、リソースカレンダー、およびプロジェクトカレンダーを組み合わせて計算されます。