Читання завдань та ресурсів

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

Вступ

Читання завдань та ресурсів часто є першим кроком у створенні аналітики проектів, створення звітів або перевірки цілісності проекту. За допомогою файлів Microsoft Project (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();

Примітки

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

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

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

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

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

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

 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

Резюме

Видалення завдань та ресурсів - це основоположна здатність під час роботи з файлами проектів Microsoft. Хоча VSTO надає спосіб роботи з файлами проектів за допомогою COM Interop, він страждає від обмежених сценаріїв розгортання та обмежень платформи.

Aspose.tasks for .NET пропонує легку, перехресну платформу та реконструйовану альтернативу для читання та обробки даних проекту-що робить їх ідеальними для сучасних підприємств та автоматизаційних трубопроводів.

Для продовження вивчення доступу до даних проекту за допомогою Aspose.tasks див.:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.