Tareas y calendarios
En Microsoft Project, es posible asociar calendarios específicos a tareas individuales. Aspose.Tasks for .NET proporciona la misma capacidad a través de Tsk.Calendar propiedad, que vincula una tarea a un calendario particular.
Tareas con calendarios
La clase
Tsk expone el Calendar
campo utilizado para establecer u obtener el calendario asociado con una tarea. Esta propiedad acepta o devuelve un objeto Aspose.Tasks.Calendar.
Para crear un calendario para una tarea en Microsoft Project:
- Abra el archivo del proyecto.
- En el Project menú, seleccione Change Working Times → Create New Calendar.
- Para asignar el calendario, haga doble clic en una tarea en el Task Entry formulario y seleccione el calendario en las propiedades de la tarea.
Ejemplo: Configurar el calendario de una tarea
El siguiente código muestra cómo crear un calendario, agregar una tarea y asignarle el calendario:
1Project project = new Project();
2
3// Add task
4Task task = project.RootTask.Children.Add("Task1");
5
6// Create calendar and assign to task
7Calendar cal = project.Calendars.Add("TaskCal1");
8task.Set(Tsk.Calendar, cal);
Ejemplo: Leer el calendario de una tarea
También puede recorrer las tareas en un proyecto y leer sus calendarios asociados:
1Project project = new Project("New Project.mpp");
2
3// Declare ChildTasksCollector class object
4ChildTasksCollector collector = new ChildTasksCollector();
5
6// Use TaskUtils to get all children tasks in RootTask
7TaskUtils.Apply(project.RootTask, collector, 0);
8
9// Parse all the recursive children
10foreach (Task task in collector.Tasks)
11{
12 Calendar cal = task.Get(Tsk.Calendar);
13 Console.WriteLine("Task calendar name: {0}", cal == null ? "None" : cal.Name);
14}
Notas clave
- Los calendarios de tarea anulan el calendario del proyecto para la programación de esa tarea específica.
- Si una tarea no tiene su propio calendario, hereda el calendario predeterminado del proyecto.
- Los calendarios pueden incluir horas laborables, excepciones y días festivos, ofreciendo un control detallado sobre la programación de las tareas.
- Funciona de manera consistente tanto en los formatos MPP y XML .
Preguntas frecuentes
P: ¿Puede una tarea tener más de un calendario?
- No. A cada tarea solo se le puede asignar un único calendario.
P: ¿Qué sucede si el calendario de una tarea entra en conflicto con el calendario del proyecto?
- El calendario de la tarea tiene prioridad para esa tarea.
P: ¿Cómo puedo eliminar un calendario de una tarea?
- Establezca la
Calendar
propiedadnull
para que vuelva a usar el calendario del proyecto.
P: ¿Se tienen en cuenta los calendarios de recursos al asignar calendarios a tareas?
- Sí. El calendario final se calcula combinando los calendarios de tarea, los calendarios de recursos y el calendario del proyecto.