Erstellen Sie MS Project Dateien in C++

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

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++.

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.

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.

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.

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.

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.

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.

Siehe auch