움직이는 작업

Microsoft Project를 사용하면 다른 작업 하에서 하나의 작업을 이동할 수 있습니다. 이 경우 선택된 작업의 자식 작업도 이동합니다. C ++ API 용 Tasks는 다른 작업 하에서 작업을 이동시켜 동일한 기능을 제공합니다. 이 기사에서 볼 수 있듯이 새 부모의 자녀에게 선택된 작업을 추가하여이를 달성 할 수 있습니다. 작업은 다른 부모 또는 동일한 부모로 이동할 수 있습니다.

다른 부모 아래에서 작업 이동

 1// The path to the documents directory.
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3        
 4// Loading project file
 5System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
 6        
 7// Set CalculationMode
 8project->set_CalculationMode(Aspose::Tasks::CalculationMode::Automatic);
 9        
10// Get Tasks by Ids
11System::SharedPtr<Task> t6 = project->get_RootTask()->get_Children()->GetByUid(6);
12System::SharedPtr<Task> t3 = project->get_RootTask()->get_Children()->GetByUid(3);
13        
14// Adding Task 6 to another parent
15t3->get_Children()->Add(t6);
16        
17// Saving File To Disk
18project->Save(dataDir + u"MoveTaskUnderAnotherParent_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Moving Task Under the Same Parent

The MoveToSibling method allows moving a task under the same parent to a specific position.

 1// The path to the documents directory.
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3        
 4// Loading project file
 5System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
 6        
 7// Move tasks with id 5 before task with id 3
 8System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(5);
 9task->MoveToSibling(3);
10        
11// Saving File To Disk
12project->Save(dataDir + u"MoveTaskUnderSameParent_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Add Task To The End

To add a task to the end of the collection use -1.

 1// The path to the documents directory.
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3        
 4// Loading project file
 5System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"MoveTask.mpp");
 6        
 7// Move tasks with id 2 to the end of the collection
 8System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(2);
 9task->MoveToSibling(-1);
10        
11// Saving File To Disk
12project->Save(dataDir + u"MoveTaskAtTheEnd_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);

Setting a Task to a SubProject

 1// Create project instance
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"SubProjectTask.mpp");
 4        
 5// Add task
 6System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task 1");
 7        
 8// Setting new subproject link
 9task->Set<System::String>(Tsk::SubprojectName(), dataDir + u"subProject.mpp");
10        
11// Save project
12project->Save(dataDir + u"SubProjectTask_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.