Génération de données réparties dans le temps pour différents contours de travail
Lors de la gestion des calendriers de projet, il est souvent nécessaire d’analyser comment le travail est réparti dans le temps pour les différentes affectations de ressources. Aspose.Tasks for .NET rend cela possible en générant données réparties dans le temps pour les affectations de ressources en fonction de différents contours de travail. Cela permet aux développeurs de simuler, suivre et rapporter l’utilisation des ressources de manière plus précise.
Génération de données réparties dans le temps pour les contours de travail
Un contour de travail définit comment le travail est réparti sur la durée d’une tâche. Aspose.Tasks for .NET vous permet d’appliquer différents contours (tels que Flat, Back Loaded, Front Loaded, Turtle, Bell, etc.) et de générer les données réparties dans le temps correspondantes. Les données générées sont récupérées en utilisant la TimeScaleData
méthode, qui nécessite les dates de début et de fin du projet comme paramètres d’entrée.
Exemple de code
L’exemple suivant assigne différents types de contours de travail à une ressource et récupère ses données réparties dans le temps pour analyse :
1Project project = new Project("New Project.mpp");
2
3// Get the first task of the Project
4Task task = project.RootTask.Children.GetById(1);
5
6// Get the First Resource Assignment of the Project
7ResourceAssignment firstRA = project.ResourceAssignments.ToList()[0];
8
9// Flat contour is default contour
10Console.WriteLine("Flat contour");
11
12var tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
13foreach (TimephasedData td in tdList)
14{
15 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
16}
17
18// Change contour
19firstRA.Set(Asn.WorkContour, WorkContourType.Turtle);
20Console.WriteLine("Turtle contour");
21tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
22foreach (TimephasedData td in tdList)
23{
24 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
25}
26
27// Change contour
28firstRA.Set(Asn.WorkContour, WorkContourType.BackLoaded);
29Console.WriteLine("BackLoaded contour");
30tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
31foreach (TimephasedData td in tdList)
32{
33 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
34}
35
36// Change contour
37firstRA.Set(Asn.WorkContour, WorkContourType.FrontLoaded);
38Console.WriteLine("FrontLoaded contour");
39tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
40foreach (TimephasedData td in tdList)
41{
42 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
43}
44
45// Change contour
46firstRA.Set(Asn.WorkContour, WorkContourType.Bell);
47Console.WriteLine("Bell contour");
48tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
49foreach (TimephasedData td in tdList)
50{
51 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
52}
53
54// Change contour
55firstRA.Set(Asn.WorkContour, WorkContourType.EarlyPeak);
56Console.WriteLine("EarlyPeak contour");
57tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
58foreach (TimephasedData td in tdList)
59{
60 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
61}
62
63// Change contour
64firstRA.Set(Asn.WorkContour, WorkContourType.LatePeak);
65Console.WriteLine("LatePeak contour");
66tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
67foreach (TimephasedData td in tdList)
68{
69 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
70}
71
72// Change contour
73firstRA.Set(Asn.WorkContour, WorkContourType.DoublePeak);
74Console.WriteLine("DoublePeak contour");
75tdList = task.GetTimephasedData(project.Get(Prj.StartDate), project.Get(Prj.FinishDate));
76foreach (TimephasedData td in tdList)
77{
78 Console.WriteLine(td.Start.ToShortDateString() + " " + td.Value);
79}
Dans ce code, chaque contour de travail est appliqué à l’affectation de ressources, et les données réparties dans le temps générées sont affichées. Cela permet de voir facilement comment le travail est réparti sur la durée de l’affectation selon le type de contour.
Foire aux questions
Q : Qu’est-ce qu’un contour de travail dans Microsoft Project ?
- Un contour de travail définit comment l’effort d’une ressource est réparti sur la durée d’une tâche. Par exemple, Flat applique un travail uniforme, tandis que Bell répartit l’effort plus intensément au milieu.
Q : Comment Aspose.Tasks génère-t-il des données réparties dans le temps ?
- Il utilise la
TimeScaleData
méthode, qui prend les dates de début et de fin du projet pour calculer la répartition du travail pour chaque affectation.
Q : Puis-je générer des données réparties dans le temps pour plusieurs affectations à la fois ?
- Oui. Vous pouvez parcourir toutes les affectations de ressources d’un projet et générer des données réparties dans le temps pour chacune.
Q : Ai-je besoin d’installer Microsoft Project pour générer des données réparties dans le temps ?
- Non. Aspose.Tasks fonctionne de manière autonome et n’exige pas Microsoft Project pour lire, calculer ou exporter des données réparties dans le temps.
Conclusion
Dans cet article, nous avons examiné comment générer données réparties dans le temps pour différents contours de travail des affectations de ressources en utilisant Aspose.Tasks for .NET. En appliquant divers contours et en récupérant les données correspondantes, les développeurs peuvent mieux analyser les charges de travail des ressources, améliorer les prévisions de projet et générer des rapports d’utilisation détaillés de manière programmatique.