Lire les tâches et les ressources

En travaillant avec des fichiers MPP, vous devrez peut-être lire des tâches et des ressources de votre projet. Cet article donne un aperçu pratique de la façon de lire les données du projet à l’aide de VSTO et Aspose.Tasks pour .NET.

Introduction

La lecture des tâches et des ressources est souvent la première étape de la création d’analyses de projets, de générer des rapports ou de valider l’intégrité du projet. Avec Microsoft Project Files (MPP), cela peut être réalisé en utilisant soit:

Cet article décrit comment extraire les informations sur les tâches et les ressources dans les deux approches.


Lire des tâches et des ressources à l’aide de VSTO

Pour accéder aux données des tâches et des ressources à l’aide de VSTO:

  1. Créez un nouveau projet dans Visual Studio.
  2. Ajoutez une référence à Microsoft Project 12.0 Bibliothèque d’objets de l’onglet com.
  3. Importez l’espace de noms `Microsoft.office.interop.msproject.
  4. Utilisez l’exemple de code suivant.
 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}

Points forts

Table de comparaison

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

Résumé

L’extraction des tâches et des ressources est une capacité de base lors de la travail avec des fichiers de projet Microsoft. Bien que VSTO offre un moyen de travailler avec les fichiers de projet via COM Interop, il souffre de scénarios de déploiement limités et de restrictions de plate-forme.

Aspose.Tasks for .NET offre une alternative légère, multiplateforme et maintenable pour la lecture et le traitement des données du projet - ce qui la rend idéale pour les applications d’entreprise modernes et les pipelines d’automatisation.

Pour continuer à explorer l’accès aux données du projet avec Aspose.Tasks, voir:

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.