Робота з завданнями

Іноді неможливо виконати завдання згідно з графіком, і його потрібно розбити на дві або більше частин. Microsoft Project підтримує розбиття завдань, а Aspose.Tasks для .NET забезпечує ту саму функціональність програмно.

Розбиття завдань

Властивість SplitParts властивість, що надається Task клас використовується для визначення розбитих частин завдання, тоді як SplitTask метод, що надається ResourceAssignment клас використовується для розбиття одного завдання на кілька частин. SplitParts повертає колекцію розбитих частин, тоді як метод SplitTask приймає аргументи дати початку, дати завершення та календаря для розбиття завдання.

Розбиття та перегляд завдань у Microsoft Project

У Microsoft Project ви можете розбити завдання таким чином:

  1. Виберіть довге завдання, яке потрібно розділити.
  2. На вкладці Task вкладці, у Schedule групі, натисніть Split Task.
  3. Клацніть у тому місці на панелі завдання, де ви хочете створити розрив.

Розбиті завдання відображаються у Gantt Chart вигляді і з’єднані пунктирною лінією.

Приклад: Створення та розбиття завдання

Наступний приклад показує, як створити проєкт, додати завдання, призначити ресурс і програмно розбити завдання:

 1// Create new project
 2Project splitTaskProject = new Project();
 3
 4// Get a standard calendar
 5Calendar calendar = splitTaskProject.Get(Prj.Calendar);
 6
 7// Set project's calendar settings
 8splitTaskProject.Set(Prj.StartDate, new DateTime(2000, 3, 15, 8, 0, 0));
 9splitTaskProject.Set(Prj.FinishDate, new DateTime(2000, 4, 21, 17, 0, 0));
10
11// Add a new task to root task
12Task rootTask = splitTaskProject.RootTask;
13rootTask.Set(Tsk.Name, "Root");
14Task taskToSplit = rootTask.Children.Add("Task1");
15taskToSplit.Set(Tsk.Duration, splitTaskProject.GetDuration(3));
16
17// Create a new resource assignment and generate timephased data
18ResourceAssignment splitResourceAssignment = splitTaskProject.ResourceAssignments.Add(taskToSplit, null);
19splitResourceAssignment.TimephasedDataFromTaskDuration(calendar);
20
21// Split the task into 3 parts.
22// Provide start date and finish date arguments to SplitTask method which will be used for split
23splitResourceAssignment.SplitTask(new DateTime(2000, 3, 16, 8, 0, 0), new DateTime(2000, 3, 16, 17, 0, 0), calendar);
24splitResourceAssignment.SplitTask(new DateTime(2000, 3, 18, 8, 0, 0), new DateTime(2000, 3, 18, 17, 0, 0), calendar);
25splitResourceAssignment.Set(Asn.WorkContour, WorkContourType.Contoured);
26
27splitTaskProject.Save("CreateSplitTasks_out.xml", SaveFileFormat.XML);

Приклад: Перегляд розбитих завдань

Наступний приклад показує, як виявити розбиті завдання в проєкті та вивести їхні деталі в консоль:

 1Project project = new Project("New Project.mpp");
 2
 3// Access task 
 4Task splitTask = project.RootTask.Children.GetById(4);
 5
 6// Display split parts of task
 7SplitPartCollection collection = splitTask.SplitParts;
 8foreach (SplitPart splitPart in collection)
 9{
10    Console.WriteLine("Index: " + splitPart.Index + " Start: " + splitPart.Start + " Finish: " + splitPart.Finish);
11}

Основні зауваження

Часті питання

П: Чи може завдання мати більше ніж два розбиття?

П: Чи впливає розбиття на тривалість завдання?

П: Чи можна знову об’єднати розбиті завдання?

П: Чи підтримується ця функція для повторюваних завдань?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.