Resource割り当ての作成

Resource割り当ては、タスクとResourceの間の関連を表します。これにより、特定のタスクに対してResourceの時間や労力がどの程度費やされるかを定義します。Aspose.Tasks for .NETはResource割り当てを作成するための複数の方法を提供しており、開発者がMicrosoft Projectに依存せずにプロジェクトデータをプログラムで柔軟に管理できるようにします。

Resource割り当ての作成

この Resource class は割り当てを2通りの方法で作成できます:

  1. デフォルトコンストラクターを使用することによって。
  2. タスクとResourceを渡してインスタンス化することで ResourceAssignment

プログラミング例:デフォルトコンストラクター

この例では、 ResourceAssignment パラメーターを渡さずにインスタンスを作成します。この方法は、まず割り当てを初期化してから後でそのプロパティを設定したい場合に便利です。

1// Create empty project
2Project project = new Project();
3
4// Add new task and resource
5Task task = project.RootTask.Children.Add("Task");
6Resource resource = project.Resources.Add("Rsc");
7
8// Assign the resource desired task
9ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);

複数のResource割り当ての作成

1つのタスクに複数のResourceを割り当てることもできます。以下の例では、1つのタスクに対して複数のResourceAssignmentを作成し、各Resourceの開始日と終了日を個別に指定する方法を示します。

 1Project project = new Project("New Project.mpp")
 2{
 3    CalculationMode = CalculationMode.Automatic
 4};
 5
 6project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
 7project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
 8project.Set(Prj.NewTasksAreManual, false);
 9project.Set(Prj.ActualsInSync, false);
10
11Resource workResource = project.Resources.Add("Servente (Work)");
12workResource.Set(Rsc.Name, "Servente (Work)");
13workResource.Set(Rsc.Initials, "S");
14workResource.Set(Rsc.Type, ResourceType.Work);
15workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
16workResource.Set(Rsc.Code, "1503");
17
18Resource materialResource = project.Resources.Add("Tijolo (Material)");
19materialResource.Set(Rsc.Name, "Tijolo (Material)");
20materialResource.Set(Rsc.Initials, "T");
21materialResource.Set(Rsc.Type, ResourceType.Material);
22materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
23materialResource.Set(Rsc.Code, "21341");
24
25Task task1 = project.RootTask.Children.Add("Task - 01");
26task1.Set(Tsk.IsRollup, new NullableBool(true));
27task1.Set(Tsk.IsPublished, new NullableBool(false));
28Task task2 = task1.Children.Add("Task - 01.01");
29task2.Set(Tsk.IsRollup, new NullableBool(true));
30task2.Set(Tsk.IsPublished, new NullableBool(false));
31Task task3 = task2.Children.Add("Task - 01.01.001");
32task3.Set(Tsk.IsEstimated, new NullableBool(false));
33task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
34task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
35task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
36task3.Set(Tsk.IsRollup, new NullableBool(true));
37task3.Set(Tsk.IsPublished, new NullableBool(false));
38
39ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
40assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
41assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
42assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
43ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
44assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
45assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
46assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));
47
48// to match expected MPP fully
49assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
50task3.Set(Tsk.IsManual, new NullableBool(true));
51task1.Set(Tsk.IsManual, new NullableBool(true));
52
53project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

よくある質問

Q: Resource割り当てを作成するためにMicrosoft Projectをインストールする必要がありますか?

Q: 同じタスクに複数のResourceを割り当てられますか?

Q: Aspose.Tasksで作成したResource割り当てはMicrosoft Projectで表示されますか?

結論

Aspose.Tasks for .NETを使用してResource割り当てを作成することで、開発者はタスクとResourceをプログラムで連携させ、作業負荷を管理し、柔軟な割り当てパラメーターを定義できます。単純な割り当てを初期化する場合でも、単一のタスクに対して複数のResourceを構成する場合でも、Aspose.TasksはMicrosoft Projectに依存せずにC#でこれらの操作を円滑に処理するためのツールを提供します。

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.