움직이는 작업
Contents
[
Hide
Show
]Microsoft Project를 사용하면 다른 작업 하에서 하나의 작업을 이동할 수 있습니다. 이 경우 선택된 작업의 자식 작업도 이동합니다. C ++ API 용 Tasks는 다른 작업 하에서 작업을 이동시켜 동일한 기능을 제공합니다. 이 기사에서 볼 수 있듯이 새 부모의 자녀에게 선택된 작업을 추가하여이를 달성 할 수 있습니다. 작업은 다른 부모 또는 동일한 부모로 이동할 수 있습니다.
다른 부모 아래에서 작업 이동
- CalculationMode.none *을 사용하면 여러 작업을 추가하고 * Recalculate * 메소드를 한 번 호출 할 때 성능을 향상시킬 수 있습니다.
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);