Чтение задач и ресурсов

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

Введение

Чтение задач и ресурсов часто является первым шагом в создании аналитики проекта, создании отчетов или проверке целостности проекта. С помощью файлов Project Microsoft (MPP) это может быть достигнуто с помощью либо:

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


Читать задачи и ресурсы с помощью VSTO

Чтобы получить доступ к данным задач и ресурсов с помощью VSTO:

  1. Создайте новый проект в Visual Studio.
  2. Добавьте ссылку на Microsoft Project 12.0 Библиотека объектов с вкладки com.
  3. Импортируйте microsoft.office.interop.msproject пространство имен.
  4. Используйте следующий пример кода.
 1// Create Application object
 2Application projectApplication = new ApplicationClass();
 3object missingValue = System.Reflection.Missing.Value;
 4
 5// Open MPP file
 6projectApplication.FileOpenEx(@"C:\Project1.mpp",
 7    missingValue, missingValue, missingValue, missingValue,
 8    missingValue, missingValue, missingValue, missingValue,
 9    missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
10    missingValue, missingValue, missingValue, missingValue,
11    missingValue);
12
13Project project = projectApplication.ActiveProject;
14
15// Read all tasks
16foreach (Task task in project.Tasks)
17{
18    Console.WriteLine("Reading Task: " + task.Name);
19    Console.WriteLine("ID: " + task.ID);
20    Console.WriteLine("Start: " + task.Start);
21    Console.WriteLine("Finish: " + task.Finish);
22    Console.WriteLine("===========================\n");
23}
24
25// Read all resources
26foreach (Resource resource in project.Resources)
27{
28    string resourceType = resource.Type switch
29    {
30        PjResourceTypes.pjResourceTypeCost => "Cost",
31        PjResourceTypes.pjResourceTypeMaterial => "Material",
32        PjResourceTypes.pjResourceTypeWork => "Work",
33        _ => "Unknown"
34    };
35
36    Console.WriteLine("Reading Resource: " + resource.Name);
37    Console.WriteLine("ID: " + resource.ID);
38    Console.WriteLine("Type: " + resourceType);
39    Console.WriteLine("===========================\n");
40}
41
42Console.ReadLine();

Notes

Read Tasks and Resources Using Aspose.Tasks for .NET

To achieve the same using Aspose.Tasks for .NET:

  1. Create a new Visual Studio project.
  2. Add a reference to Aspose.Tasks via the .NET tab.
  3. Import the Aspose.Tasks namespace.
  4. Use the code example below.
 1Project project = new Project("New Project.mpp");
 2
 3// Load all tasks
 4TaskCollection allTasks = project.RootTask.Children;
 5
 6// Loop through each task and read information related to tasks
 7foreach (Task task in allTasks)
 8{
 9    Console.WriteLine("Reading Task " + task.Get(Tsk.Name));
10    Console.WriteLine("ID: " + task.Get(Tsk.Id));
11    Console.WriteLine("Start: " + task.Get(Tsk.Start));
12    Console.WriteLine("Finish: " + task.Get(Tsk.Finish));
13}
14
15// Loop through each resource and read information related to resources
16foreach (Resource resource in project.Resources)
17{
18    string resourceType = null;
19    switch (resource.Get(Rsc.Type))
20    {
21        case ResourceType.Material:
22            resourceType = "Material";
23            break;
24        case ResourceType.Work:
25            resourceType = "Work";
26            break;
27        default:
28            resourceType = "Cost";
29            break;
30    }
31
32    Console.WriteLine("Reading Resource " + resource.Get(Rsc.Name));
33    Console.WriteLine("ID: " + resource.Get(Rsc.Id));
34    Console.WriteLine("Type: " + resourceType);
35}

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

Сравнение таблицы

FeatureVSTO / InteropAspose.Tasks for .NET
Requires Microsoft Project✅ Yes❌ No
Platform🖥 Windows only✅ Cross-platform
Access ModelCOM-basedPure .NET API
Ease of Deployment⚠ Limited✅ Self-contained
Reading Resourcesproject.Resourcesproject.Resources
Reading Tasksproject.Tasksproject.RootTask.Children

Краткое содержание

Извлечение задач и ресурсов является основополагающей возможностью при работе с файлами Project Microsoft. В то время как VSTO предоставляет способ работать с файлами проекта через Com Interop, он страдает от ограниченных сценариев развертывания и ограничений на платформу.

Aspose.tasks для .NET предлагает легкую, кроссплатформенную и обслуживаемую альтернативу для чтения и обработки данных проекта-что делает его идеальным для современных предприятий и трубопроводов автоматизации.

Чтобы продолжить изучение доступа к данным проекта с помощью Aspose.tasks, см.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.