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++
- Twórz pliki MS Project od podstaw przy użyciu C++
- Dodaj zadania do projektu przy użyciu języka C++
- Dodaj zasoby do projektu przy użyciu języka C++
- Przypisz zadanie projektu do zasobu przy użyciu języka C++
- Dodaj kalendarze w programie Project przy użyciu języka C++
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++.
- Utwórz obiekt klasy Projekt.
- Ustaw właściwości projektu.
- Zapisz projekt jako plik .mpp za pomocą metody Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Stwórz nowy projekt lub załaduj go z pliku .mpp używając klasy Project.
- Dodaj zadanie do projektu za pomocą metody Project->getRootTask()->getChildren()->Add(u"Summary1") i zapisz nowo utworzone zadanie w obiekcie Task.
- (Opcjonalnie) Dodaj podzadanie do nowo utworzonego zadania za pomocą metody Task->getChildren()->Add(u"Subtask1").
- Zapisz projekt jako plik .mpp za pomocą metody Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Utwórz nowy projekt lub załaduj go z pliku .mpp przy użyciu klasy Project.
- Dodaj nowy zasób za pomocą metody Project->getResources()->Add(u"Rsc").
- Zapisz projekt metodą Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
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.
- Utwórz nowy projekt lub załaduj go z pliku .mpp przy użyciu klasy Project.
- Dodaj nowe zadania i zasoby, jeśli projekt jest pusty.
- Uzyskaj dostęp do żądanego zadania i zasobu odpowiednio w obiekcie Zadanie i Zasób.
- Przypisz zadanie do zasobu za pomocą metody Project->getResourceAssignments()->Add(Task, Resource).
- Zapisz projekt metodą Project.Save().
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.
- Utwórz nowy projekt lub załaduj go z pliku .mpp przy użyciu klasy Project.
- Dodaj kalendarz do projektu za pomocą Project->getCalendars()->Add(u"Calendar1") i zapisz zwróconą wartość w obiekcie Calendar.
- Dodaj dni robocze do kalendarza metodą Calendar->getWeekDays()->Add().
- Zapisz projekt.
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.
- Utwórz obiekt klasy DzieńTygodnia.
- Utwórz obiekt klasy WorkingTime.
- Ustaw taktowanie za pomocą metod WorkingTime->setFromTime() i WorkingTime->setToTime().
- Dodaj czas pracy do dnia tygodnia za pomocą metody WeekDay->getWorkingTimes()->Add(WorkingTime).
- Dodaj dzień tygodnia do kalendarza metodą Calendar->getWeekDays()->Add(WeekDay).
- Zapisz projekt.
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.