Vytvářejte soubory MS Project v C++

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

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

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.

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.

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.

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.

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

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.

Viz také