Створення призначень ресурсів

Призначення ресурсів відображають зв’язок між завданнями та ресурсами. Вони визначають, скільки часу або зусиль ресурсу буде витрачено на певне завдання. Aspose.Tasks for .NET надає кілька способів створення призначень ресурсів, даючи розробникам гнучкість у програмному керуванні даними про проєкт без Microsoft Project.

Створення призначень ресурсів

Клас Resource class дозволяє створювати призначення двома способами:

  1. Використовуючи default constructor.
  2. Передаючи завдання та ресурс під час створення екземпляра ResourceAssignment.

Приклад програмування: Default Constructor

У цьому прикладі ми створюємо 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 надає інструменти для плавного виконання цих операцій у C# без покладання на Microsoft Project.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.