IPrjProject.Tasks

Синтаксис

Tasks: IPrjTaskCollection;

Описание

Свойство Tasks возвращает коллекцию задач.

Пример

Для выполнения примера добавьте ссылку на системную сборку ProjectPlanning.

Sub UserProc;
Var
    Project: IPrjProject;
    Calendar: IPrjCalendarOptions;
    DTar: Array 
Of DateTime;
    Tasks: IPrjTaskCollection;
    Task: IPrjTask;
    Depend: IPrjTaskDependency;
    FPeriod: IPrjTaskPeriod;
    i: Integer;
Begin
    Project := 
New PrjProject.Create;
    
// Зададим дату начала проекта
    Project.StartDate := DateTime.Parse("20.02.2020");
    Project.UseStartDate := 
True;
    
// Получим настройки календаря
    Calendar := Project.CalendarOptions;
    Calendar.IncludeWeekend := 
False;
    // Зададим два праздничных дня
    DTar := New DateTime[2];
    DTar[
0] := DateTime.Parse("23.02.2020");
    DTar[
1] := DateTime.Parse("08.03.2020");
    Calendar.ExcludedDates := DTar;
    
// Получим коллекцию задач проекта
    Tasks := Project.Tasks;
    
// Добавим первую задачу
    Task := Tasks.Add;
    Task.Key := 
1;
    Task.Name := 
"№1";
    Task.PlanPeriod.Duration := 
8;
    // Добавим вторую задачу
    Task := Tasks.Add;
    Task.Key := 
2;
    Task.Name := 
"№2";
    Task.PlanPeriod.Duration := 
10;
    Depend := Task.Dependencies.Add;
    Depend.PredecessorTaskKey := 
3;
    Depend.Type := PrjTaskDependencyType.FinishToFinish;
    
// Добавим третью задачу
    Task := Tasks.Add;
    Task.Key := 
3;
    Task.Name := 
"№3";
    Task.PlanPeriod.Duration := 
12;
    Depend := Task.Dependencies.Add;
    Depend.PredecessorTaskKey := 
1;
    Depend.Type := PrjTaskDependencyType.FinishToStart;
    
// Выполним расчёт
    Project.Plan;
    Debug.WriteLine(
"Дата начала проекта: " + Project.StartDate.ToString);
    
For i := 0 To Tasks.Count - 1 Do
        Task := Tasks.Item(i);
        FPeriod := Task.ForecastPeriod;
        Debug.WriteLine(" Выполнение задачи " + Task.Name + " с " + 
        FPeriod.StartDate.ToString + 
" по " + FPeriod.FinishDate.ToString + 
        
" (длительность: " + FPeriod.Duration.ToString + " дней)");
    
End For;
    Debug.WriteLine(
"Прогнозируемая дата окончания проекта: " + Project.EndDate.ToString);
End Sub UserProc;

В результате выполнения примера будет выполнен расчёт проекта с учётом заданных условий:

В консоль будет выведен результат расчёта:

Дата начала проекта: 20.02.2020 00:00:00

  Выполнение задачи №1 с 20.02.2020 00:00:00 по 02.03.2020 00:00:00 (длительность: 8 дней)

  Выполнение задачи №2 с 05.03.2020 00:00:00 по 18.03.2020 00:00:00 (длительность: 10 дней)

  Выполнение задачи №3 с 03.03.2020 00:00:00 по 18.03.2020 00:00:00 (длительность: 12 дней)

Прогнозируемая дата окончания проекта: 18.03.2020 00:00:00

См. также:

IPrjProject