리소스 할당 생성

리소스 할당은 작업과 리소스 간의 연결을 나타냅니다. 이는 리소스의 시간 또는 노력이 특정 작업에 얼마나 투입될지를 정의합니다. Aspose.Tasks for .NET은 리소스 할당을 생성하는 여러 방법을 제공하여 개발자가 Microsoft Project 없이도 프로그램적으로 프로젝트 데이터를 유연하게 관리할 수 있도록 합니다.

리소스 할당 생성

해당 Resource 클래스는 두 가지 방식으로 할당을 생성할 수 있습니다:

  1. 기본 생성자를 사용하여.
  2. 인스턴스화할 때 작업과 리소스를 전달하여 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);

여러 리소스 할당 생성

하나의 작업에 여러 리소스를 할당할 수도 있습니다. 다음 예제에서는 하나의 작업에 대해 여러 리소스 할당을 생성하고 각 리소스에 대해 사용자 지정 시작 및 종료 날짜를 정의하는 방법을 보여줍니다.

 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);

자주 묻는 질문

질문: 리소스 할당을 생성하려면 Microsoft Project를 설치해야 하나요?

질문: 동일한 작업에 여러 리소스를 할당할 수 있나요?

질문: Aspose.Tasks로 생성된 리소스 할당이 Microsoft Project에서 보이나요?

결론

Aspose.Tasks for .NET을 사용하여 리소스 할당을 생성하면 개발자는 프로그램으로 작업과 리소스를 연결하고 작업량을 관리하며 유연한 할당 매개변수를 정의할 수 있습니다. 단순한 할당을 초기화하든 하나의 작업에 대해 여러 리소스를 구성하든, Aspose.Tasks는 Microsoft Project에 의존하지 않고 C#에서 이러한 작업을 원활하게 처리할 수 있는 도구를 제공합니다.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.