Завдання та календарі
У Microsoft Project можна пов’язувати певні календарі з окремими завданнями. Aspose.Tasks for .NET надає ту саму можливість через Tsk.Calendar властивість, яка пов’язує завдання з певним календарем.
Завдання з календарями
Клас
Tsk має Calendar
поле, яке використовується для встановлення або отримання календаря, пов’язаного із завданням. Це поле приймає або повертає об’єкт Aspose.Tasks.Calendar.
Щоб створити календар для завдання в Microsoft Project:
- Відкрийте файл проекту.
- У меню Project виберіть Change Working Times → Create New Calendar.
- Щоб призначити календар, двічі клацніть завдання у Task Entry формі та виберіть календар у властивостях завдання.
Приклад: Встановлення календаря завдання
Наведений код показує, як створити календар, додати завдання та призначити йому календар:
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);
Приклад: Зчитування календаря завдання
Також можна пройтися по завданнях у проєкті та зчитати їхні пов’язані календарі:
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}
Ключові моменти
- Календарі завдання мають пріоритет над календарем проєкту при плануванні цього конкретного завдання.
- Якщо завдання не має власного календаря, воно успадковує календар проєкту за замовчуванням.
- Календарі можуть містити робочі години, винятки та святкові дні, забезпечуючи детальний контроль над плануванням завдань.
- Працює послідовно у обох MPP та XML форматах.
Поширені запитання
П: Чи може завдання мати більше ніж один календар?
- Ні. Кожному завданню можна призначити лише один календар.
П: Що відбувається, якщо календар завдання конфліктує з календарем проєкту?
- Календар завдання має пріоритет для цього завдання.
П: Як видалити календар з завдання?
- Встановіть
Calendar
властивість наnull
щоб знову використовувати календар проєкту.
П: Чи враховуються календарі ресурсів при призначенні календарів завдань?
- Так. Остаточний графік обчислюється шляхом поєднання календарів завдань, календарів ресурсів та календаря проєкту.