Berechnung des Fertigstellungsdatums einer aufgeteilten Aufgabe
In Microsoft Project, können Aufgaben aufgeteilt werden, wenn der Zeitplan unterbrochen wird. Mit Aspose.Tasks for .NET, können Sie programmgesteuert das Fertigstellungsdatum von aufgeteilten Aufgaben, was Berichterstattung und Automatisierung erleichtert.
Was sind aufgeteilte Aufgaben?
Eine aufgeteilte Aufgabe ist eine Aufgabe, deren Ausführung in zwei oder mehr Abschnitte unterteilt ist, z. B. aufgrund von Unterbrechungen (z. B. Warten auf Ressourcen, externe Abhängigkeiten).
In Microsoft Project erscheinen aufgeteilte Aufgaben in der Gantt-Diagramm Ansicht als separate Balken, die durch gepunktete Linien verbunden sind:
API zur Berechnung des Fertigstellungsdatums
Die Calendar ‑Klasse stellt die Methode bereit:
- GetTaskFinishDateFromDuration
- Parameter:
- Aufgeteilte Aufgabe (Task-Objekt)
- Aufgabendauer (
Duration
)
- Gibt zurück:
- Das berechnete Fertigstellungsdatum (
DateTime
)
- Das berechnete Fertigstellungsdatum (
- Parameter:
Diese Methode berücksichtigt die Kalenderregeln und die Unterbrechungssegmente der Aufgabe.
Beispiel: Berechnung des Fertigstellungsdatums einer aufgeteilten Aufgabe in C#
Hier ein C#-Beispiel, das zeigt, wie das Fertigstellungsdatum einer aufgeteilten Aufgabe berechnet wird:
1Project project = new Project("New Project.mpp");
2
3// Find a split task
4Task splitTask = project.RootTask.Children.GetByUid(4);
5
6// Find the project calendar
7Calendar calendar = project.Get(Prj.Calendar);
8
9// Calculate task's finish date with different durations
10Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 8 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(8, 0, 0)));
11Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 16 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(16, 0, 0)));
12Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 24 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(24, 0, 0)));
13Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 28 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(28, 0, 0)));
14Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 32 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(32, 0, 0)));
15Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 46 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(46, 0, 0)));
16Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 61 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(61, 0, 0)));
17Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 75 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(75, 0, 0)));
18Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 80 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(80, 0, 0)));
19Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 120 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(120, 0, 0)));
20Console.WriteLine("Start Date: " + splitTask.Get(Tsk.Start).ToShortDateString() + "Duration 150 hours Finish Date: " + calendar.GetTaskFinishDateFromDuration(splitTask, new TimeSpan(150, 0, 0)));
Hauptvorteile
- Berechnet genau Fertigstellungsdaten aufgetrennter Aufgaben.
- Berücksichtigt Kalenderarbeitszeiten und Aufteilungen.
- Funktioniert mit MPP und XML-Projektformaten.
- Automatisiert, was ansonsten manuelle Überprüfung in Microsoft Project.
Häufig gestellte Fragen
F: Kann ich auch das Startdatum einer aufgeteilten Aufgabe berechnen?
- Ja. Sie können die
ActualStart
oderStart
Eigenschaft je nach Aufgabentyp abrufen.
F: Funktioniert das, wenn die Aufgabe mehrere Aufteilungen hat?
- Ja. Die Methode berücksichtigt alle Aufteilungssegmente.
F: Muss Microsoft Project installiert sein, um dies zu verwenden?
- Nein. Aspose.Tasks for .NET funktioniert unabhängig von Microsoft Project.