タスクの操作

予定どおりにタスクを完了できない場合があり、そのタスクを二つ以上の部分に分割する必要が生じることがあります。Microsoft Project はタスクの分割をサポートしており、Aspose.Tasks for .NET はプログラムによって同様の機能を提供します。

タスクの分割

この SplitParts によって公開されるプロパティは Task クラスはタスクの分割部分を判定するために使用されますが、 SplitTask によって公開されるメソッドは ResourceAssignment クラスは単一のタスクを複数の部分に分割するために使用されます。SplitParts は分割部分のコレクションを返し、SplitTask メソッドはタスクを分割するために開始日、終了日、およびカレンダーの引数を受け取ります。

Microsoft Project におけるタスクの分割と表示

Microsoft Project では、次のようにタスクを分割できます。

  1. 分割したい長いタスクを選択します。
  2. Task タブの スケジュール グループで、 タスクの分割
  3. 分割を行いたいタスク バー上の位置をクリックします。

分割されたタスクは ガントチャート ビューに表示され、点線で結ばれます。

例: タスクの作成と分割

次の例は、プロジェクトを作成し、タスクを追加し、リソースを割り当て、プログラムでタスクを分割する方法を示します。

 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}

要点

よくある質問

Q: タスクは2回以上に分割できますか?

Q: 分割はタスクの期間に影響しますか?

Q: 分割されたタスクを再び結合できますか?

Q: この機能は繰り返しタスクに対応していますか?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.