Ressourcenzuweisungen erstellen
Ressourcenzuweisungen stellen die Verbindung zwischen Aufgaben und Ressourcen dar. Sie legen fest, wie viel Zeit oder Aufwand einer Ressource für eine bestimmte Aufgabe aufgewendet wird. Aspose.Tasks for .NET bietet mehrere Möglichkeiten, Ressourcenzuweisungen zu erstellen und geben Entwicklern die Flexibilität, Projektdaten programmgesteuert zu verwalten, ohne Microsoft Project.
Ressourcenzuweisungen erstellen
Die Resource class ermöglicht das Erstellen von Zuweisungen auf zwei Arten:
- Durch Verwendung des Standardkonstruktors.
- Durch Übergeben einer Aufgabe und einer Resource beim Instanziieren eines ResourceAssignment.
Programmierbeispiel: Standardkonstruktor
In diesem Beispiel erstellen wir eine ResourceAssignment
Instanz, ohne Parameter zu übergeben. Dieser Ansatz ist nützlich, wenn Sie eine Zuweisung zuerst initialisieren und ihre Eigenschaften später festlegen möchten.
1// Create empty project
2Project project = new Project();
3
4// Add new task and resource
5Task task = project.RootTask.Children.Add("Task");
6Resource resource = project.Resources.Add("Rsc");
7
8// Assign the resource desired task
9ResourceAssignment assignment = project.ResourceAssignments.Add(task, resource);
Mehrere Ressourcenzuweisungen erstellen
Sie können außerdem mehrere Ressourcen einer einzigen Aufgabe zuweisen. Im folgenden Beispiel zeigen wir, wie man mehrere Ressourcenzuweisungen für eine Aufgabe erstellt und für jede Resource benutzerdefinierte Anfangs- und Enddaten festlegt.
1Project project = new Project("New Project.mpp")
2{
3 CalculationMode = CalculationMode.Automatic
4};
5
6project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
7project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
8project.Set(Prj.NewTasksAreManual, false);
9project.Set(Prj.ActualsInSync, false);
10
11Resource workResource = project.Resources.Add("Servente (Work)");
12workResource.Set(Rsc.Name, "Servente (Work)");
13workResource.Set(Rsc.Initials, "S");
14workResource.Set(Rsc.Type, ResourceType.Work);
15workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
16workResource.Set(Rsc.Code, "1503");
17
18Resource materialResource = project.Resources.Add("Tijolo (Material)");
19materialResource.Set(Rsc.Name, "Tijolo (Material)");
20materialResource.Set(Rsc.Initials, "T");
21materialResource.Set(Rsc.Type, ResourceType.Material);
22materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
23materialResource.Set(Rsc.Code, "21341");
24
25Task task1 = project.RootTask.Children.Add("Task - 01");
26task1.Set(Tsk.IsRollup, new NullableBool(true));
27task1.Set(Tsk.IsPublished, new NullableBool(false));
28Task task2 = task1.Children.Add("Task - 01.01");
29task2.Set(Tsk.IsRollup, new NullableBool(true));
30task2.Set(Tsk.IsPublished, new NullableBool(false));
31Task task3 = task2.Children.Add("Task - 01.01.001");
32task3.Set(Tsk.IsEstimated, new NullableBool(false));
33task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
34task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
35task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
36task3.Set(Tsk.IsRollup, new NullableBool(true));
37task3.Set(Tsk.IsPublished, new NullableBool(false));
38
39ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
40assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
41assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
42assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
43ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
44assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
45assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
46assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));
47
48// to match expected MPP fully
49assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
50task3.Set(Tsk.IsManual, new NullableBool(true));
51task1.Set(Tsk.IsManual, new NullableBool(true));
52
53project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);
Häufig gestellte Fragen
F: Muss Microsoft Project installiert sein, um Ressourcenzuweisungen zu erstellen?
- Nein. Aspose.Tasks for .NET funktioniert vollständig unabhängig von Microsoft Project.
F: Kann ich mehrere Ressourcen derselben Aufgabe zuweisen?
- Ja. Sie können beliebig viele Ressourcen mit einer einzelnen Aufgabe verknüpfen, jeweils mit individuellen Parametern wie Anfangs- und Enddaten.
F: Werden mit Aspose.Tasks erstellte Ressourcenzuweisungen in Microsoft Project sichtbar?
- Ja. Alle programmgesteuert erstellten Ressourcenzuweisungen werden angezeigt, wenn das Projekt in Microsoft Project geöffnet wird.
Fazit
Das Erstellen von Ressourcenzuweisungen mit Aspose.Tasks for .NET ermöglicht Entwicklern, Aufgaben und Ressourcen programmgesteuert zu verknüpfen, Arbeitsbelastungen zu verwalten und flexible Zuweisungsparameter zu definieren. Egal, ob Sie eine einfache Zuweisung initialisieren oder mehrere Ressourcen für eine einzelne Aufgabe konfigurieren, Aspose.Tasks stellt die Werkzeuge bereit, um diese Vorgänge nahtlos in C# zu verarbeiten, ohne auf Microsoft Project angewiesen zu sein.