タスクの操作
Contents
[
Hide
Show
]予定どおりにタスクを完了できない場合があり、そのタスクを二つ以上の部分に分割する必要が生じることがあります。Microsoft Project はタスクの分割をサポートしており、Aspose.Tasks for .NET はプログラムによって同様の機能を提供します。
タスクの分割
この SplitParts によって公開されるプロパティは Task クラスはタスクの分割部分を判定するために使用されますが、 SplitTask によって公開されるメソッドは ResourceAssignment クラスは単一のタスクを複数の部分に分割するために使用されます。SplitParts は分割部分のコレクションを返し、SplitTask メソッドはタスクを分割するために開始日、終了日、およびカレンダーの引数を受け取ります。
Microsoft Project におけるタスクの分割と表示
Microsoft Project では、次のようにタスクを分割できます。
- 分割したい長いタスクを選択します。
- の Task タブの スケジュール グループで、 タスクの分割。
- 分割を行いたいタスク バー上の位置をクリックします。
分割されたタスクは ガントチャート ビューに表示され、点線で結ばれます。
例: タスクの作成と分割
次の例は、プロジェクトを作成し、タスクを追加し、リソースを割り当て、プログラムでタスクを分割する方法を示します。
1// Create new project
2Project splitTaskProject = new Project();
3
4// Get a standard calendar
5Calendar calendar = splitTaskProject.Get(Prj.Calendar);
6
7// Set project's calendar settings
8splitTaskProject.Set(Prj.StartDate, new DateTime(2000, 3, 15, 8, 0, 0));
9splitTaskProject.Set(Prj.FinishDate, new DateTime(2000, 4, 21, 17, 0, 0));
10
11// Add a new task to root task
12Task rootTask = splitTaskProject.RootTask;
13rootTask.Set(Tsk.Name, "Root");
14Task taskToSplit = rootTask.Children.Add("Task1");
15taskToSplit.Set(Tsk.Duration, splitTaskProject.GetDuration(3));
16
17// Create a new resource assignment and generate timephased data
18ResourceAssignment splitResourceAssignment = splitTaskProject.ResourceAssignments.Add(taskToSplit, null);
19splitResourceAssignment.TimephasedDataFromTaskDuration(calendar);
20
21// Split the task into 3 parts.
22// Provide start date and finish date arguments to SplitTask method which will be used for split
23splitResourceAssignment.SplitTask(new DateTime(2000, 3, 16, 8, 0, 0), new DateTime(2000, 3, 16, 17, 0, 0), calendar);
24splitResourceAssignment.SplitTask(new DateTime(2000, 3, 18, 8, 0, 0), new DateTime(2000, 3, 18, 17, 0, 0), calendar);
25splitResourceAssignment.Set(Asn.WorkContour, WorkContourType.Contoured);
26
27splitTaskProject.Save("CreateSplitTasks_out.xml", SaveFileFormat.XML);例: 分割タスクの表示
次の例は、プロジェクト内の分割タスクを特定し、その詳細をコンソールに出力する方法を示します。
1Project project = new Project("New Project.mpp");
2
3// Access task
4Task splitTask = project.RootTask.Children.GetById(4);
5
6// Display split parts of task
7SplitPartCollection collection = splitTask.SplitParts;
8foreach (SplitPart splitPart in collection)
9{
10 Console.WriteLine("Index: " + splitPart.Index + " Start: " + splitPart.Start + " Finish: " + splitPart.Finish);
11}要点
- タスクの分割は、プロジェクトのスケジュールにおける現実の中断をモデル化するのに役立ちます。
- その
SplitTaskメソッドは作業を削除せず、既存の作業を別々の間隔に再配分します。 - その
SplitPartsプロパティにより、開発者は各セグメントを個別に解析および処理できます。 - 両形式で一貫して動作します: MPP および XML のプロジェクト形式。
よくある質問
Q: タスクは2回以上に分割できますか?
- はい。タスクは複数のセグメントに分割できます。
Q: 分割はタスクの期間に影響しますか?
- 分割間隔の配置によって総期間は変わることがありますが、総作業量は変わりません。
Q: 分割されたタスクを再び結合できますか?
- Microsoft Project では、バーを手動で調整して分割を解除できます。Aspose.Tasks では、タスク割当をリセットするかタスクを再作成することでこれを管理できます。
Q: この機能は繰り返しタスクに対応していますか?
- いいえ。分割は通常のタスクを対象としており、繰り返しタスクの定義には適していません。