Створіть ресурси та зв’язок із завданнями

Працюючи з файлами MPP, вам може знадобитися створити ресурси та пов’язати їх із завданнями з вашого проекту. Ця стаття демонструє, як завантажувати файли MPP у ваші програми .NET та призначити ресурси завданням, використовуючи як VSTO, так і aspose.tasks for .NET.

Вступ

При плануванні проектів асоціація ресурсів із завданнями дозволяє планувати навантаження, оцінку витрат та відстеження прогресу. Ресурси зазвичай представляють людей, обладнання чи матеріал, а їх належне завдання є ключовим для змістовного аналізу проектів.

У цій статті показано, як програмно:

Функціональність демонструється за допомогою Legacy VSTO Interop, і Modern Aspope.Tasks для .NET API.

Створіть ресурси та посилання на завдання за допомогою VSTO

Щоб створити ресурси та зв’язати їх із завданнями за допомогою Microsoft Office Interop:

  1. Створіть проект Visual Studio.
  2. Додайте посилання на Бібліотека об’єктів Microsoft Project 12.0 з вкладки com.
  3. Імпортувати Microsoft.office.interop.msproject.
  4. Використовуйте зразок коду нижче.

До та після скріншоти показують структуру проекту в переглядах Ганта та ресурсів.

📎 Вхідний файл: Перегляд діаграми gantt

Показати вхідну діаграму gantt View

📎 Вхідний файл: Перегляд аркуша ресурсів

Показати перегляд аркушів вхідних ресурсів

Приклад коду VSTO

 1Microsoft.Office.Interop.MSProject.Application projectApplication = new Application();
 2object missingValue = System.Reflection.Missing.Value;
 3
 4projectApplication.FileOpenEx(@"SampleProject.mpp",
 5    missingValue, missingValue, missingValue, missingValue,
 6    missingValue, missingValue, missingValue, missingValue,
 7    missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
 8    missingValue, missingValue, missingValue, missingValue,
 9    missingValue);
10
11Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
12
13int iResourceId = 1;
14
15foreach (Task tsk in project.Tasks)
16{
17    string developer = "Developer0" + iResourceId;
18    project.Resources.Add(developer, iResourceId);
19    tsk.Assignments.Add(tsk.ID, iResourceId, missingValue);
20    iResourceId++;
21}
22
23projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

Output file: Gantt chart view

show output Gantt chart view

Output file: Resource sheet view

show output resource sheet chart view

Примітки

Створення ресурсів та посилання на завдання за допомогою Aspose.Tasks для .NET

Щоб досягти того ж результату за допомогою Aspose.Tasks:

  1. Створіть проект Visual Studio.

  2. Додайте посилання на Aspose.Tasks через вкладку .NET.

  3. Імпортуйте простір імен Aspose.Tasks.

  4. Використайте наведений нижче приклад коду.

 1Project project = new Project("New Project.mpp");
 2
 3// Declare ChildTasksCollector class object
 4ChildTasksCollector collector = new ChildTasksCollector();
 5
 6// Use TaskUtils to get all children tasks in RootTask
 7TaskUtils.Apply(project.RootTask, collector, 0);
 8
 9// Define Resources
10for (int i = 0; i <= 4; i++)
11{
12    // Add resource to project
13    Resource newResource = project.Resources.Add("Developer0" + i);
14    newResource.Set(Rsc.Type, ResourceType.Work);
15
16    // Define assignment
17    ResourceAssignment newResourceAssignment = project.ResourceAssignments.Add((Task)collector.Tasks[i], newResource);
18}
19
20project.Save("CreateResourcesAndLinkToTasks_out.mpp", SaveFileFormat.MPP);

Основні моменти

Таблиця порівняння

| Функція | VSTO / Interop | Aspose.Tasks для .NET | |————————————————————————|————————————–| | Потрібен Microsoft Project | ✅ Так | ❌ Ні | | Підтримка платформи | 🖥 Тільки для Windows | ✅ Кросплатформний | | Зручний для розгортання | ❌ Потрібне середовище виконання Office | ✅ Автономний .NET | | Детальність API | ⚠ Висока | ✅ Мінімальний та інтуїтивно зрозумілий | | Метод призначення | Assignments.Add(taskID, resourceID) | ResourceAssignments.Add(task, res)| | Гнучкість формату вихідного файлу | Обмежена | ✅ MPP, XML, PDF, HTML тощо |


Підсумок

Створення та призначення ресурсів є ключовим кроком у створенні реалістичного та відстежуваного плану проекту. Хоча VSTO пропонує вбудований доступ до об’єктної моделі Microsoft Project, він має обмеження щодо портативності, масштабованості та складності коду.

Aspose.Tasks for .NET надає високорівневий API, який дозволяє ефективно керувати ресурсами у файлах MPP — і все це без необхідності встановлення Microsoft Project. Це робить його ідеальним рішенням для веб-додатків, сервісів та кросплатформних робочих навантажень .NET.

Пов’язані сценарії дивіться тут:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.