MS Project är en mycket använd programvara för projektledning som hjälper cheferna att hantera sina projekt effektivt. Det gör det möjligt att skapa uppgifterna, lägga till resurser, allokera uppgifter till resurser, övervaka framstegen och hantera budgetrelaterade operationer. I den här artikeln kommer du att lära dig hur du bäddar in projektledningsaktiviteterna i dina C++-applikationer utan MS Project. Med hjälp av kodexempel kommer du att lära dig hur du skapar MS Project-filer (.mpp/.xml), lägger till uppgifter, resurser och kalendrar programmatiskt med C++. Vidare kommer även tilldelning av uppgifter till resurser i ett projekt att demonstreras.
- C++ MS Project File Manipulation API
- Skapa MS Project-filer från grunden med C++
- Lägg till uppgifter i Project med C++
- Lägg till resurser till projekt med C++
- Tilldela projektets uppgift till resurs med C++
- Lägg till kalendrar i Project med C++
C++ MS Project File Manipulation API
Aspose.Tasks for C++ är ett C++ projekthanterings-API som låter dig skapa, manipulera, exportera och konvertera MS Project-filer programmatiskt. API:et ger dig en komplett uppsättning funktioner för att skapa projekt, uppgifter, resurser, kalendrar och utföra andra projektledningsaktiviteter utan MS Project. Du kan ladda ner hela paketet med API:t från här eller installera det med NuGet.
Skapa MS Project-filer (.mpp) med C++
Låt oss först börja med att skapa ett tomt projekt. Följande är stegen för att skapa en MS Project-fil (.mpp) från början med Aspose.Tasks för C++.
- Skapa ett objekt av klassen Project.
- Ställ in projektets egenskaper.
- Spara projektet som .mpp-fil med metoden Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Följande kodexempel visar hur man skapar en MS Projects .mpp-fil med C++.
// Skapa projekt
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Ställ in projektinformation
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");
// Spara projektet som .mpp-fil
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Lägg till uppgifter i Project med C++
När du har skapat ett projekt kan du fortsätta att lägga till uppgifter till det. Du kan antingen skapa ett nytt projekt eller ladda en befintlig MS Project-fil för att lägga till uppgifterna. Följande är stegen för att skapa och lägga till uppgifter eller deluppgifter till ett projekt.
- Skapa ett nytt projekt eller ladda det från .mpp-filen med klassen Project.
- Lägg till uppgift i projektet med metoden Project->getRootTask()->getChildren()->Add(u"Summary1") och lagra den nyskapade uppgiften i ett Task-objekt.
- (Valfritt) Lägg till en deluppgift till den nyskapade uppgiften med metoden Task->getChildren()->Add(u"Subtask1").
- Spara projektet som .mpp-fil med metoden Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Följande kodexempel visar hur du skapar och lägger till uppgifter i ett projekt med C++.
// Skapa projektinstans
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp");
// Lägg till uppgift, underuppgift och spara 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");
// Spara projekt
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Läs mer om utökade funktioner relaterade till uppgifter.
Lägg till resurser till projekt med C++
Resurser är de enheter som ska slutföra projektet. Vanligtvis hänvisas människor till som resurserna i ett projekt. Följande är stegen för att skapa och lägga till resurser till ett projekt.
- Skapa ett nytt projekt eller ladda det från en .mpp-fil med klassen Project.
- Lägg till en ny resurs med metoden Project->getResources()->Add(u"Rsc").
- Spara projektet med metoden Project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP).
Följande kodexempel visar hur man lägger till en resurs i ett projekt med C++.
// Skapa projektinstans
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Lägg till resurser
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc");
// Ange resursegenskaper, resursegenskaper representeras av statisk klass Rsc
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15));
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20));
// Spara projektet som XML
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML);
Läs mer om utökade funktioner relaterade till resurser.
Tilldela projektets uppgift till resurs med C++
När du har skapat uppgifterna och resurserna är nästa steg att tilldela varje uppgift till en resurs som är ansvarig för att den slutförs. Följande är stegen för att tilldela en uppgift till en resurs.
- Skapa ett nytt projekt eller ladda det från en .mpp-fil med klassen Project.
- Lägg till nya uppgifter och resurser om projektet är tomt.
- Åtkomst till önskad uppgift och resurs till objektet Task respektive Resource.
- Tilldela uppgift till resurs med metoden Project->getResourceAssignments()->Add(Task, Resource).
- Spara projektet med metoden Project.Save().
Följande kodexempel visar hur man tilldelar en uppgift till en resurs i ett projekt med C++.
// Skapa tomt projekt
System::SharedPtr<Project> project1 = System::MakeObject<Project>();
// Lägg till ny uppgift och resurs
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task");
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc");
// Tilldela resursen önskad uppgift
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1);
Lägg till kalendrar i Project med C++
Kalendrar används för att skapa ett schema för projektet inom MS-projektet. Aspose.Tasks för C++ har gjort det väldigt enkelt att skapa en kalender för ett projekt. Följande är stegen för att skapa en kalender, lägga till veckodagar och ange arbetstiden.
- Skapa ett nytt projekt eller ladda det från en .mpp-fil med klassen Project.
- Lägg till en kalender till projektet med Project->getCalendars()->Add(u"Calendar1") och lagra det returnerade värdet i objektet Calendar.
- Lägg till arbetsdagar i kalendern med metoden Calendar->getWeekDays()->Add().
- Spara projektet.
Du kan också ställa in arbetstiden för en vardag i kalendern. För detta kan du följa stegen nedan efter att ha lagt till arbetsdagarna.
- Skapa ett objekt av klassen WeekDay.
- Skapa ett objekt av klassen WorkingTime.
- Ställ in timing med metoderna WorkingTime->setFromTime() och WorkingTime->setToTime().
- Lägg till arbetstid till veckodagen med metoden WeekDay->getWorkingTimes()->Add(WorkingTime).
- Lägg till veckodag i kalendern med metoden Calendar->getWeekDays()->Add(WeekDay).
- Spara projektet.
Följande kodexempel visar hur man skapar en kalender i ett projekt med C++.
// Skapa en projektinstans
System::SharedPtr<Project> project = System::MakeObject<Project>();
// Definiera kalender
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1");
// Lägg till arbetsdagar måndag till torsdag med standardtider
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));
// Ange fredag som kort arbetsdag
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday);
// Ställer in arbetstid. Endast tidsdelen av DateTime är viktig
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);
// Spara projektet
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);
Läs mer om utökade funktioner relaterade till kalendrar.
Slutsats
I den här artikeln har du lärt dig hur du skapar MS Project-filer och sparar dem som .mpp eller .xml med C++. Dessutom har du lärt dig hur du lägger till uppgifter, resurser, resurstilldelningar och kalendrar inom ett projekt programmatiskt. Du kan också utforska dokumentationen för de utökade funktionerna i Aspose.Tasks för C++ för att ytterligare förbättra projektledningskapaciteten i dina applikationer.