Skapa MS Project-filer i C++

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

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

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.

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.

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.

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.

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.

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.

Se även