Twórz pliki MS Project w C++

MS Project to szeroko stosowane oprogramowanie do zarządzania projektami, które pomaga menedżerom w efektywnym zarządzaniu projektami. Pozwala tworzyć zadania, dodawać zasoby, przydzielać zadania do zasobów, monitorować postępy i zarządzać operacjami związanymi z budżetem. W tym artykule dowiesz się, jak osadzić działania związane z zarządzaniem projektami w aplikacjach C++ bez MS Project. Za pomocą przykładowych kodów dowiesz się, jak tworzyć pliki MS Project (.mpp/.xml), programowo dodawać zadania, zasoby i kalendarze przy użyciu języka C++. Ponadto zostanie zademonstrowany przydział zadań do zasobów w projekcie.

Interfejs API manipulacji plikami projektu MS C++

Aspose.Tasks for C++ to interfejs API do zarządzania projektami w języku C++, który umożliwia programowe tworzenie, modyfikowanie, eksportowanie i konwertowanie plików MS Project. Interfejs API zapewnia pełny zestaw funkcji do tworzenia projektów, zadań, zasobów, kalendarzy i wykonywania innych działań związanych z zarządzaniem projektami bez MS Project. Możesz pobrać cały pakiet API z tutaj lub zainstalować go za pomocą NuGet.

Twórz pliki projektów MS (.mpp) przy użyciu języka C++

Zacznijmy od utworzenia pustego projektu. Poniżej przedstawiono kroki tworzenia pliku MS Project (.mpp) od podstaw przy użyciu Aspose.Tasks dla języka C++.

Poniższy przykładowy kod pokazuje, jak utworzyć plik mpp programu MS Project przy użyciu języka C++.

// Utwórz projekt
System::SharedPtr<Project> project = System::MakeObject<Project>();

// Ustaw informacje o projekcie
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");

// Zapisz projekt jako plik .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Dodaj zadania do projektu przy użyciu języka C++

Po utworzeniu projektu możesz przystąpić do dodawania do niego zadań. Możesz utworzyć nowy projekt lub załadować istniejący plik MS Project, aby dodać zadania. Poniżej przedstawiono kroki tworzenia i dodawania zadań lub podzadań do projektu.

Poniższy przykładowy kod pokazuje, jak tworzyć i dodawać zadania do projektu przy użyciu języka C++.

// Utwórz instancję projektu
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");

// Dodaj zadanie, zadanie podrzędne i zapisz projekt
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");

// Zapisz Projekt
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Czytaj więcej o rozszerzonych funkcjach związanych z zadaniami.

Dodaj zasoby do projektu przy użyciu języka C++

Zasoby to podmioty, które mają zakończyć projekt. Zazwyczaj ludzie są określani jako zasoby projektu. Poniżej przedstawiono kroki tworzenia i dodawania zasobów do projektu.

Poniższy przykładowy kod pokazuje, jak dodać zasób w projekcie przy użyciu języka C++.

// Utwórz instancję projektu
System::SharedPtr<Project> project = System::MakeObject<Project>();  

// Dodaj zasoby
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");    

// Ustaw właściwości zasobów, właściwości zasobów są reprezentowane przez klasę statyczną Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));  

// Zapisz projekt jako XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);

Czytaj więcej o rozszerzonych funkcjach związanych z zasobami.

Przypisz zadanie projektu do zasobu przy użyciu języka C++

Po utworzeniu zadań i zasobów następnym krokiem jest przypisanie każdego zadania do zasobu odpowiedzialnego za jego wykonanie. Poniżej przedstawiono kroki, aby przypisać zadanie do zasobu.

Poniższy przykładowy kod pokazuje, jak przypisać zadanie do zasobu w projekcie przy użyciu języka C++.

// Utwórz pusty projekt
System::SharedPtr<Project> project1 = System::MakeObject<Project>();    

// Dodaj nowe zadanie i zasób
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");  

// Przypisz żądane zadanie do zasobu
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);

Dodaj kalendarze w programie Project przy użyciu języka C++

Kalendarze służą do tworzenia harmonogramu projektu w ramach MS Project. Aspose.Tasks for C++ bardzo ułatwiło tworzenie kalendarza dla projektu. Poniżej przedstawiono kroki tworzenia kalendarza, dodawania dni tygodnia i określania czasu pracy.

Możesz również ustawić czas pracy dla dnia tygodnia w kalendarzu. W tym celu możesz wykonać poniższe kroki po dodaniu dni roboczych.

Poniższy przykładowy kod pokazuje, jak utworzyć kalendarz w projekcie przy użyciu języka C++.

// Utwórz instancję projektu
System::SharedPtr<Project> project = System::MakeObject<Project>();    

// Zdefiniuj kalendarz
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");    

// Dodaj dni robocze od poniedziałku do czwartku z domyślnymi godzinami
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));  

// Ustaw piątek jako krótki dzień roboczy
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);  

// Ustawia czas pracy. Ważna jest tylko część czasu DateTime
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);   

// Zapisz 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);

Czytaj więcej o rozszerzonych funkcjach związanych z kalendarzami.

Wniosek

W tym artykule nauczyłeś się, jak tworzyć pliki MS Project i zapisywać je jako .mpp lub .xml przy użyciu C++. Ponadto nauczyłeś się programowo dodawać zadania, zasoby, przydziały zasobów i kalendarze w ramach projektu. Możesz także zapoznać się z dokumentacją rozszerzonych funkcji Aspose.Tasks for C++, aby jeszcze bardziej ulepszyć możliwości zarządzania projektami w swoich aplikacjach.

Zobacz też