MS Project je široce používaný software pro řízení projektů, který pomáhá manažerům efektivně řídit jejich projekty. Umožňuje vytvářet úkoly, přidávat zdroje, přidělovat úkoly zdrojům, sledovat průběh a řídit operace související s rozpočtem. V tomto článku se dozvíte, jak vložit aktivity projektového řízení do vašich C++ aplikací bez MS Project. Pomocí ukázek kódu se naučíte vytvářet soubory MS Project (.mpp/.xml), přidávat úkoly, zdroje a kalendáře programově pomocí C++. Dále bude ukázáno přiřazení úkolů ke zdrojům v projektu.
- C++ MS Project File Manipulation API
- Vytvářejte soubory MS Project od nuly pomocí C++
- Přidejte úkoly do projektu pomocí C++
- Přidejte zdroje do projektu pomocí C++
- Přiřaďte úkol projektu ke zdroji pomocí C++
- Přidejte kalendáře do Project pomocí C++
C++ MS Project File Manipulation API
Aspose.Tasks for C++ je rozhraní API pro správu projektů C++, které umožňuje vytvářet, manipulovat, exportovat a převádět soubory MS Project programově. API vám poskytuje kompletní sadu funkcí pro vytváření projektů, úkolů, zdrojů, kalendářů a provádění dalších činností projektového řízení bez MS Project. Kompletní balíček API si můžete stáhnout zde nebo jej nainstalovat pomocí NuGet.
Vytvářejte soubory MS Project (.mpp) pomocí C++
Začněme vytvořením prázdného projektu. Následují kroky k vytvoření souboru MS Project (.mpp) od začátku pomocí Aspose.Tasks for C++.
- Vytvořte objekt třídy Project.
- Nastavte vlastnosti projektu.
- Uložte projekt jako soubor .mpp pomocí metody Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Následující ukázka kódu ukazuje, jak vytvořit soubor .mpp aplikace MS Project pomocí C++.
// Vytvořit projekt
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Nastavte informace o projektu
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");
// Uložte projekt jako soubor .mpp
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Přidejte úkoly do projektu pomocí C++
Jakmile vytvoříte projekt, můžete do něj přidávat úkoly. Můžete buď vytvořit nový projekt, nebo načíst existující soubor MS Project a přidat úkoly. Následují kroky k vytvoření a přidání úkolů nebo dílčích úkolů do projektu.
- Vytvořte nový projekt nebo jej načtěte ze souboru .mpp pomocí třídy Project.
- Přidejte úkol do projektu pomocí metody Project->getRootTask()->getChildren()->Add(u"Summary1") a uložte nově vytvořený úkol do objektu Task.
- (Volitelné) Přidejte dílčí úkol k nově vytvořenému úkolu pomocí metody Task->getChildren()->Add(u"Subtask1").
- Uložte projekt jako soubor .mpp pomocí metody Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Následující ukázka kódu ukazuje, jak vytvořit a přidat úkoly do projektu pomocí C++.
// Vytvořte instanci projektu
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");
// Přidejte úkol, dílčí úkol a uložte 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");
// Uložit projekt
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Přečtěte si více o rozšířených funkcích souvisejících s úkoly.
Přidejte zdroje do projektu pomocí C++
Zdroje jsou entity, které mají dokončit projekt. Lidé jsou obvykle označováni jako zdroje projektu. Následují kroky k vytvoření a přidání zdrojů do projektu.
- Vytvořte nový projekt nebo jej načtěte ze souboru .mpp pomocí třídy Project.
- Přidejte nový zdroj pomocí metody Project->getResources()->Add(u"Rsc").
- Uložte projekt pomocí metody Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Následující ukázka kódu ukazuje, jak přidat zdroj do projektu pomocí C++.
// Vytvořte instanci projektu
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Přidejte zdroje
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Nastavte vlastnosti zdroje, vlastnosti zdroje jsou reprezentovány statickou třídou Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));
// Uložit projekt jako XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
Přečtěte si více o rozšířených funkcích souvisejících se zdroji.
Přiřaďte úkol projektu ke zdroji pomocí C++
Jakmile vytvoříte úkoly a zdroje, dalším krokem je přiřadit každý úkol ke zdroji, který je zodpovědný za jeho dokončení. Následují kroky k přiřazení úkolu ke zdroji.
- Vytvořte nový projekt nebo jej načtěte ze souboru .mpp pomocí třídy Project.
- Pokud je projekt prázdný, přidejte nové úkoly a zdroje.
- Přístup k požadovanému úkolu a zdroji do objektu Task a Resource.
- Přiřaďte úkol ke zdroji pomocí metody Project->getResourceAssignments()->Add(Task, Resource).
- Uložte projekt pomocí metody Project.Save().
Následující ukázka kódu ukazuje, jak přiřadit úkol ke zdroji v projektu pomocí C++.
// Vytvořte prázdný projekt
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Přidat nový úkol a zdroj
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// Přidělte zdroj požadovaný úkol
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
Přidejte kalendáře do Project pomocí C++
Kalendáře slouží k vytvoření harmonogramu projektu v rámci MS Project. Aspose.Tasks for C++ velmi zjednodušil vytváření kalendáře pro projekt. Následují kroky k vytvoření kalendáře, přidání dnů v týdnu a zadání pracovní doby.
- Vytvořte nový projekt nebo jej načtěte ze souboru .mpp pomocí třídy Project.
- Přidejte kalendář do projektu pomocí Project->getCalendars()->Add(u"Calendar1") a uložte vrácenou hodnotu do objektu Calendar.
- Přidejte pracovní dny do kalendáře pomocí metody Calendar->getWeekDays()->Add().
- Uložte projekt.
V kalendáři si také můžete nastavit pracovní dobu na pracovní den. Za tímto účelem můžete po přidání pracovních dnů postupovat podle níže uvedených kroků.
- Vytvořte objekt třídy WeekDay.
- Vytvořte objekt třídy WorkingTime.
- Nastavte časování pomocí metod WorkingTime->setFromTime() a WorkingTime->setToTime().
- Přidejte pracovní čas ke dni v týdnu pomocí metody WeekDay->getWorkingTimes()->Add(WorkingTime).
- Přidejte den v týdnu do kalendáře pomocí metody Calendar->getWeekDays()->Add(WeekDay).
- Uložte projekt.
Následující ukázka kódu ukazuje, jak vytvořit kalendář v projektu pomocí C++.
// Vytvořte instanci projektu
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Definujte kalendář
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");
// Přidejte pracovní dny pondělí až čtvrtek s výchozím načasováním
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));
// Nastavte pátek jako krátký pracovní den
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// Nastavuje pracovní dobu. Důležitá je pouze časová část 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);
// Uložte 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);
Přečtěte si více o rozšířených funkcích souvisejících s kalendáři.
Závěr
V tomto článku jste se naučili vytvářet soubory MS Project a ukládat je jako .mpp nebo .xml pomocí C++. Dále jste se naučili, jak programově přidávat úkoly, zdroje, přiřazení zdrojů a kalendáře v rámci projektu. Můžete také prozkoumat dokumentaci pro rozšířené funkce Aspose.Tasks for C++, abyste dále zlepšili možnosti řízení projektů ve vašich aplikacích.