Перемещение задач
В Microsoft Project задачи можно перемещать внутри иерархии задач, чтобы отразить изменения в структуре проекта.
- Перемещение задачи под нового родителя также перемещает все её дочерние задачи.
- Aspose.Tasks for .NET предоставляет APIs для программного воспроизведения этого поведения.
Перемещение задачи под другого родителя
Aspose.Tasks позволяет переназначать задачу новому родителю. Это полезно при реорганизации иерархий проекта.
Для повышения производительности при перемещении нескольких задач установите режим расчёта проекта в
CalculationMode.None
и вызовите Recalculate только один раз после завершения всех перемещений.
Пример:
1Project project = new Project("New Project.mpp");
2project.CalculationMode = CalculationMode.Automatic;
3// Get Tasks by Ids
4Task task1 = project.RootTask.Children.GetByUid(6);
5Task task2 = project.RootTask.Children.GetByUid(3);
6// Adding Task 6 to another parent
7task2.Children.Add(task1);
8project.Save("MoveTaskUnderAnotherParent_out.mpp", SaveFileFormat.MPP);
Этот пример демонстрирует, как переместить задачу под другого родителя.
Перемещение задачи в пределах одного родителя
Если нужно изменить порядок задач у того же родителя, используйте MoveToSibling метод.
Пример:
1Project project = new Project("New Project.mpp");
2// Move tasks with id 5 before task with id 3
3Task task = project.RootTask.Children.GetById(5);
4task.MoveToSibling(3);
5project.Save("MoveTaskUnderSameParent_out.mpp", SaveFileFormat.MPP);
В этом примере показано, как переместить задачу на новую позицию в рамках того же родителя.
Добавление задачи в конец
При добавлении или перемещении задач вы можете добавлять их в конец коллекции, используя -1
в качестве целевого индекса.
Пример:
1Project project = new Project("New Project.mpp");
2// Move tasks with id 2 to the end of the collection
3Task task = project.RootTask.Children.GetById(2);
4task.MoveToSibling(-1);
5project.Save("MoveTaskAtTheEnd_out.mpp", SaveFileFormat.MPP);
Этот пример перемещает задачу в конец списка задач её родителя.
Основные замечания
- Реорганизация иерархии часто встречается при обновлениях проекта и реструктуризации.
- Оптимизация производительности рекомендуется при перемещении нескольких задач — отключайте автоматический пересчёт, пока все изменения не применены.
- Дочерние задачи всегда перемещаются вместе со своей родительской задачей при переназначении.
- Работает безупречно с обоими MPP and XML formats.
Часто задаваемые вопросы
В: Когда я перемещаю задачу под другого родителя, переместятся ли её дочерние задачи?
- Да. Все дочерние задачи автоматически перемещаются вместе с родительской задачей.
В: Как эффективно переместить несколько задач?
- Используйте
CalculationMode.None
перед перемещением задач, затем вызовитеRecalculate()
один раз после завершения всех операций.
В: Могу ли я изменить порядок задач без смены их родителя?
- Да. Используйте
MoveToSibling
метод, чтобы изменить положение задачи в рамках того же родителя.
В: Работает ли эта функциональность с форматами проектов MPP и XML?
- Да. Операции с иерархией задач последовательно поддерживаются во всех форматах, обрабатываемых Aspose.Tasks.