
MS Project ist eine weit verbreitete Projektmanagementsoftware, die Managern hilft, ihre Projekte effizient zu verwalten. Es ermöglicht das Erstellen von Aufgaben, das Hinzufügen von Ressourcen, das Zuweisen von Aufgaben zu Ressourcen, das Überwachen des Fortschritts und das Verwalten budgetbezogener Vorgänge. In diesem Artikel erfahren Sie, wie Sie die Projektmanagement-Aktivitäten ohne MS Project in Ihre C++ Anwendungen einbetten. Anhand von Codebeispielen lernen Sie, wie Sie MS Project Dateien (.mpp/.xml) erstellen und Aufgaben, Ressourcen und Kalender programmgesteuert mit C++ hinzufügen. Außerdem wird die Zuordnung von Aufgaben zu Ressourcen in einem Projekt demonstriert.
- C++ MS Project Dateibearbeitungs-API
- Erstellen Sie MS Project Dateien von Grund auf neu mit C++
- Fügen Sie Aufgaben mit C++ zu Project hinzu
- Hinzufügen von Ressourcen zu Project mithilfe von C++
- Weisen Sie die Aufgabe des Projekts mithilfe von C++ der Ressource zu
- Kalender in Project mit C++ hinzufügen
C++ MS Project Dateibearbeitungs-API
Aspose.Tasks for C++ ist eine C++ Projektmanagement-API, mit der Sie MS Project Dateien programmgesteuert erstellen, bearbeiten, exportieren und konvertieren können. Die API bietet Ihnen einen vollständigen Satz von Funktionen zum Erstellen von Projekten, Aufgaben, Ressourcen, Kalendern und zum Ausführen anderer Projektmanagementaktivitäten ohne MS Project. Sie können das vollständige Paket der API von hier herunterladen oder es mit NuGet installieren.
Erstellen Sie MS Project Dateien (.mpp) mit C++
Beginnen wir zunächst damit, ein leeres Projekt zu erstellen. Im Folgenden finden Sie die Schritte zum Erstellen einer MS Project Datei (.mpp) von Grund auf mit Aspose.Tasks for C++.
- Erstellen Sie ein Objekt der Klasse Projekt.
- Legen Sie die Eigenschaften des Projekts fest.
- Speichern Sie das Projekt als .mpp Datei mit der methode Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Das folgende Codebeispiel zeigt, wie Sie mit C++ eine .mpp Datei von MS Project erstellen.
// Projekt erstellen
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Projektinformationen festlegen
project->Set<System::String>(Prj::Author(), u"Author");
project->Set<System::String>(Prj::LastAuthor(), u"Last Author");
project->Set<int32_t>(Prj::Revision(), 15);
project->Set<System::String>(Prj::Keywords(), u"MSP Aspose");
project->Set<System::String>(Prj::Comments(), u"Comments");
// Projekt als .mpp Datei speichern
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Fügen Sie Aufgaben mit C++ zu Project hinzu
Sobald Sie ein Projekt erstellt haben, können Sie damit fortfahren, ihm Aufgaben hinzuzufügen. Sie können entweder ein neues Projekt erstellen oder eine vorhandene MS Project Datei laden, um die Aufgaben hinzuzufügen. Im Folgenden werden die Schritte zum Erstellen und Hinzufügen von Aufgaben oder Teilaufgaben zu einem Projekt beschrieben.
- Erstellen Sie ein neues Projekt oder laden Sie es mithilfe der Klasse Project aus einer .mpp Datei.
- Fügen Sie mithilfe der Methode Project->getRootTask()->getChildren()->Add(u"Summary1") eine Aufgabe zum Projekt hinzu und speichern Sie die neu erstellte Aufgabe in einem Task objekt.
- (Optional) Fügen Sie der neu erstellten Aufgabe eine Unteraufgabe hinzu, indem Sie die Methode Task->getChildren()->Add(u"Subtask1") verwenden.
- Speichern Sie das Projekt als .mpp Datei mit der methode Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Das folgende Codebeispiel zeigt, wie Aufgaben mithilfe von C++ erstellt und einem Projekt hinzugefügt werden.
// Projektinstanz erstellen
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");
// Aufgabe, Unteraufgabe hinzufügen und Projekt speichern
System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Summary1");
task->Set(Tsk::Start(), project->get_RootTask()->Get<System::DateTime>(Tsk::Start()).AddDays(1));
task->Set<System::String>(Tsk::Name(), u"new name");
System::SharedPtr<Task> subtask = task->get_Children()->Add(u"Subtask1");
// Projekt speichern
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Weiterlesen über erweiterte Funktionen im Zusammenhang mit Aufgaben.
Hinzufügen von Ressourcen zu Project mithilfe von C++
Ressourcen sind die Entitäten, die das Projekt abschließen sollen. Normalerweise werden Personen als Ressourcen eines Projekts bezeichnet. Im Folgenden werden die Schritte zum Erstellen und Hinzufügen von Ressourcen zu einem Projekt beschrieben.
- Erstellen Sie ein neues Projekt oder laden Sie es mithilfe der Klasse Project aus einer .mpp Datei.
- Fügen Sie eine neue Ressource mit der methode Project->getResources()->Add(u"Rsc") hinzu.
- Speichern Sie das Projekt mit der methode Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Das folgende Codebeispiel zeigt, wie Sie mithilfe von C++ eine Ressource in einem Projekt hinzufügen.
// Projektinstanz erstellen
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Ressourcen hinzufügen
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Legen Sie Ressourceneigenschaften fest. Ressourceneigenschaften werden durch die statische Klasse Rsc dargestellt
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));
// Projekt als XML speichern
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
Weiterlesen über erweiterte Funktionen im Zusammenhang mit Ressourcen.
Weisen Sie die Aufgabe des Projekts mithilfe von C++ der Ressource zu
Nachdem Sie die Aufgaben und Ressourcen erstellt haben, besteht der nächste Schritt darin, jede Aufgabe einer Ressource zuzuweisen, die für ihre Erledigung verantwortlich ist. Im Folgenden finden Sie die Schritte zum Zuweisen einer Aufgabe zu einer Ressource.
- Erstellen Sie ein neues Projekt oder laden Sie es mithilfe der Klasse Project aus einer .mpp Datei.
- Fügen Sie neue Aufgaben und Ressourcen hinzu, wenn das Projekt leer ist.
- Greifen Sie auf die gewünschte Aufgabe und Ressource im Objekt Aufgabe bzw. Ressource zu.
- Weisen Sie der Ressource mithilfe der Methode Project->getResourceAssignments()->Add(Task, Resource) eine Aufgabe zu.
- Speichern Sie das Projekt mit der methode Project.Save().
Das folgende Codebeispiel zeigt, wie Sie einer Ressource in einem Projekt mit C++ eine Aufgabe zuweisen.
// Leeres Projekt erstellen
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Neue Aufgabe und Ressource hinzufügen
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// Weisen Sie der Ressource die gewünschte Aufgabe zu
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
Kalender in Project mit C++ hinzufügen
Kalender werden verwendet, um einen Zeitplan für das Projekt innerhalb von MS Project zu erstellen. Aspose.Tasks for C++ hat es sehr einfach gemacht, einen Kalender für ein Projekt zu erstellen. Im Folgenden werden die Schritte zum Erstellen eines Kalenders, Hinzufügen von Wochentagen und Festlegen der Arbeitszeit beschrieben.
- Erstellen Sie ein neues Projekt oder laden Sie es mithilfe der Klasse Project aus einer .mpp Datei.
- Fügen Sie mit Project->getCalendars()->Add(u"Calendar1") einen Kalender zum Projekt hinzu und speichern Sie den zurückgegebenen Wert im Calendar objekt.
- Fügen Sie Arbeitstage mit der methode Calendar->getWeekDays()->Add() zum Kalender hinzu.
- Speichern Sie das Projekt.
Sie können die Arbeitszeit auch für einen Wochentag im Kalender einstellen. Dazu können Sie nach dem Hinzufügen der Arbeitstage die folgenden Schritte ausführen.
- Erstellen Sie ein Objekt der Klasse WeekDay.
- Erstellen Sie ein Objekt der Klasse WorkingTime.
- Stellen Sie das Timing mit den Methoden WorkingTime->setFromTime() und WorkingTime->setToTime() ein.
- Fügen Sie die Arbeitszeit zum Wochentag hinzu, indem Sie die Methode WeekDay->getWorkingTimes()->Add(WorkingTime) verwenden.
- Fügen Sie dem Kalender mithilfe der Methode Calendar->getWeekDays()->Add(WeekDay) einen Wochentag hinzu.
- Speichern Sie das Projekt.
Das folgende Codebeispiel zeigt, wie Sie mit C++ einen Kalender in einem Projekt erstellen.
// Erstellen Sie eine Projektinstanz
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Kalender definieren
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");
// Fügen Sie Arbeitstage von Montag bis Donnerstag mit Standardzeiten hinzu
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Monday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Tuesday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Wednesday));
cal->get_WeekDays()->Add(WeekDay::CreateDefaultWorkingDay(Aspose::Tasks::DayType::Thursday));
cal->get_WeekDays()->Add(System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Saturday));
cal->get_WeekDays()->Add(System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Sunday));
// Freitag als kurzen Arbeitstag festlegen
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// Legt die Arbeitszeit fest. Nur der Zeitteil von DateTime ist wichtig
System::SharedPtr<WorkingTime> wt1 = System::MakeObject<WorkingTime>();
wt1->set_FromTime(System::DateTime(1, 1, 1, 9, 0, 0, 0));
wt1->set_ToTime(System::DateTime(1, 1, 1, 12, 0, 0, 0));
System::SharedPtr<WorkingTime> wt2 = System::MakeObject<WorkingTime>();
wt2->set_FromTime(System::DateTime(1, 1, 1, 13, 0, 0, 0));
wt2->set_ToTime(System::DateTime(1, 1, 1, 16, 0, 0, 0));
myWeekDay->get_WorkingTimes()->Add(wt1);
myWeekDay->get_WorkingTimes()->Add(wt2);
myWeekDay->set_DayWorking(true);
cal->get_WeekDays()->Add(myWeekDay);
// Speichern Sie das Projekt
System::String dataDir = Examples::CPP::RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
project->Save(u"Project_DefineCalendarWeekdays_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Weiterlesen über erweiterte Funktionen im Zusammenhang mit Kalendern.
Fazit
In diesem Artikel haben Sie gelernt, wie Sie MS Project Dateien erstellen und diese mit C++ als .mpp oder .xml speichern. Darüber hinaus haben Sie gelernt, wie Sie Aufgaben, Ressourcen, Ressourcenzuweisungen und Kalender innerhalb eines Projekts programmgesteuert hinzufügen. Sie können auch die Dokumentation für die erweiterten Funktionen von Aspose.Tasks for C++ durchsuchen, um die Projektmanagementfunktionen in Ihren Anwendungen weiter zu verbessern.