Создать ресурсы и ссылка с задачами

Работая с файлами MPP, вам может потребоваться создать ресурсы и связать их с задачами из вашего проекта. Эта статья демонстрирует, как загружать файлы MPP в ваши приложения .NET и назначать ресурсы для задач, используя как VSTO, так и Aspose.Tasks для .NET.

Введение

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

Эта статья показывает, как программно:

Функциональность демонстрируется с использованием как устаревшего VSTO Interop, так и современного Aspose.tasks для .NET API.

Создайте ресурсы и ссылку на задачи с использованием VSTO

Чтобы создать ресурсы и связать их с задачами, используя Interop Microsoft Office:

  1. Создайте проект Visual Studio.
  2. Добавьте ссылку на Microsoft Project 12.0 Библиотека объектов с вкладки com.
  3. Импорт microsoft.office.interop.msproject.
  4. Используйте пример кода ниже.

До и после скриншотов показывают структуру проекта в просмотров Gantt и ресурсах.

📎 Входной файл: представление диаграммы Gantt

Показать представление в диаграмме Gantt

📎 Входной файл: просмотр листа ресурсов

Показать входные ресурсы просмотр листа ресурсов

Пример кода 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);

Основные моменты

Сравнительная таблица

FeatureVSTO / InteropAspose.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 для .NET предоставляет высокоуровневый API, который обеспечивает эффективное управление ресурсами в файлах MPP — и все это без необходимости установки Microsoft Project. Это делает его идеальным решением для веб-приложений, служб и кроссплатформенных рабочих нагрузок .NET.

Для связанных сценариев ознакомьтесь с:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.