// Create project instance System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName()); System::String newProject = u"UpdateTaskData.mpp"; System::SharedPtr project = System::MakeObject(dataDir + newProject); // Set project start date project->Set(Prj::StartDate(), System::DateTime(2012, 7, 29, 8, 0, 0)); // Add summary task and set its properties System::SharedPtr summary = project->get_RootTask()->get_Children()->Add(u"Summary task"); System::SharedPtr task1 = summary->get_Children()->Add(u"First task"); task1->Set(Tsk::Duration(), project->GetDuration(3)); task1->Set(Tsk::Deadline(), task1->Get(Tsk::Start()).AddDays(10)); task1->Set(Tsk::NotesText(), u"The first task."); task1->Set(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::MinuteEstimated); task1->Set(Tsk::ConstraintType(), Aspose::Tasks::ConstraintType::FinishNoLaterThan); task1->Set(Tsk::ConstraintDate(), task1->Get(Tsk::Deadline()).AddDays(-1)); // Create 10 new sub tasks for summary task for (int32_t i = 0; i < 10; i++) { System::SharedPtr subTask = summary->get_Children()->Add(System::String::Format(u"Task{0}",i + 2)); subTask->Set(Tsk::Duration(), task1->Get(Tsk::Duration()).Add(project->GetDuration(i + 1))); subTask->Set(Tsk::DurationFormat(), Aspose::Tasks::TimeUnitType::Day); subTask->Set(Tsk::Deadline(), task1->Get(Tsk::Deadline()).AddDays(i + 1)); } // Save the Project project->Save(dataDir + u"project_UpdateTaskData_updated_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);