Last active
September 9, 2020 07:10
-
-
Save aspose-com-gists/6a638b84f0305b6f20f1e5c176774bf8 to your computer and use it in GitHub Desktop.
Create MS Project Files in C++
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create a project instance | |
System::SharedPtr<Project> project = System::MakeObject<Project>(); | |
// Define Calendar | |
System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"Calendar1"); | |
// Add working days monday through thursday with default timings | |
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)); | |
// Set friday as short working day | |
System::SharedPtr<WeekDay> myWeekDay = System::MakeObject<WeekDay>(Aspose::Tasks::DayType::Friday); | |
// Sets working time. Only time part of DateTime is important | |
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); | |
// Save the Project | |
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); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create project instance | |
System::SharedPtr<Project> project = System::MakeObject<Project>(); | |
// Add resources | |
System::SharedPtr<Resource> rsc1 = project->get_Resources()->Add(u"Rsc"); | |
// Set resource properties, Resource properties are represented by static class Rsc | |
rsc1->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(15)); | |
rsc1->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(20)); | |
// Save project as XML | |
project->Save(u"CreateResources_out.xml", Aspose::Tasks::Saving::SaveFileFormat::XML); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create project instance | |
System::SharedPtr<Project> project = System::MakeObject<Project>(u"project.mpp"); | |
// Add task, sub task and save project | |
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"); | |
// Save project | |
project->Save(dataDir + u"CreateTasks_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create empty project | |
System::SharedPtr<Project> project1 = System::MakeObject<Project>(); | |
// Add new task and resource | |
System::SharedPtr<Task> task1 = project1->get_RootTask()->get_Children()->Add(u"Task"); | |
System::SharedPtr<Resource> rsc1 = project1->get_Resources()->Add(u"Rsc"); | |
// Assign the resource desired task | |
System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task1, rsc1); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create project | |
System::SharedPtr<Project> project = System::MakeObject<Project>(); | |
// Set project information | |
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"); | |
// Save project as .mpp file | |
project->Save(u"project.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment