Mover tareas
En Microsoft Project, las tareas pueden moverse dentro de la jerarquía de tareas para reflejar cambios en la estructura del proyecto.
- Al mover una tarea bajo un nuevo padre, también se trasladan todas sus tareas secundarias.
- Aspose.Tasks para .NET proporciona APIs para replicar este comportamiento de forma programática.
Mover una tarea bajo otro padre
Aspose.Tasks permite reasignar una tarea a un nuevo padre. Esto es útil al reorganizar las jerarquías del proyecto.
Para un mejor rendimiento al mover varias tareas, establezca el modo de cálculo del proyecto en
CalculationMode.None
y llame a Recalculate solo una vez después de que se completen todos los movimientos.
Ejemplo:
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);
Este ejemplo muestra cómo mover una tarea bajo un padre diferente.
Mover una tarea bajo el mismo padre
Si necesita reordenar tareas bajo el mismo padre, utilice el MoveToSibling método.
Ejemplo:
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);
Este ejemplo muestra cómo mover una tarea a una nueva posición dentro del mismo padre.
Agregar una tarea al final
Al agregar o mover tareas, puede anexarlas al final de una colección usando -1
como índice objetivo.
Ejemplo:
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);
Este ejemplo mueve una tarea al final de la lista de tareas de su padre.
Notas clave
- Reorganización de la jerarquía es común durante las actualizaciones y reestructuraciones del proyecto.
- Optimización del rendimiento se recomienda cuando se mueven varias tareas: desactive el recálculo automático hasta que se apliquen todos los cambios.
- Las tareas secundarias siempre se mueven junto con su tarea principal cuando se reasignan.
- Funciona sin problemas con ambos formatos MPP y XML.
Preguntas frecuentes
P: Si muevo una tarea bajo otro padre, ¿se moverán también sus tareas secundarias?
- Sí. Todas las tareas secundarias se mueven automáticamente con la tarea principal.
P: ¿Cómo puedo mover varias tareas de forma eficiente?
- Utilice
CalculationMode.None
antes de mover las tareas, luego llame aRecalculate()
una vez después de todas las operaciones.
P: ¿Puedo reordenar tareas sin cambiar su padre?
- Sí. Utilice el
MoveToSibling
método para cambiar la posición de una tarea bajo el mismo padre.
P: ¿Funciona esta funcionalidad con los formatos de proyecto MPP y XML?
- Sí. Las operaciones de jerarquía de tareas son compatibles de forma consistente en todos los formatos manejados por Aspose.Tasks.