IPrjTask.PlanPeriod

Синтаксис

PlanPeriod: IPrjTaskPeriod;

Отсутствует;

Описание

Свойство PlanPeriod определяет планируемый срок выполнения задачи.

Комментарии

Если задан фактический срок выполнения задачи, то планируемый срок не учитывается.

Данное свойство актуально, если используется ручной тип планирования и определены хотя бы два параметра из трех: продолжительность срока выполнения задачи, дата начала выполнения задачи, дата окончания задачи. Для определения параметров используйте свойства интерфейса IPrjTaskPeriod. При расчёте проекта прогнозируемый срок выполнения задачи будет совпадать с планируемым.

Пример

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

Sub UserProc;
Var
    
Project: IPrjProject;
    Tasks: IPrjTaskCollection;
    Task: IPrjTask;
    Depend: IPrjTaskDependency;
    Plan, FPeriod: IPrjTaskPeriod;
    i: Integer;
Begin
    Project := 
New PrjProject.Create;
    
// Зададим дату начала проекта
    Project.StartDate := DateTime.Parse("20.02.2020");
    
// Получим коллекцию задач проекта
    Tasks := Project.Tasks;
    
// Добавим первую задачу
    Task := Tasks.Add;
    Task.WorkOutType := PrjTaskWorkOutTypes.ManualPlanning;
    Task.Key := 
1;
    Task.Name := 
"№1";
    
// Зададим планируемый срок выполнения задачи
    Plan := Task.PlanPeriod;
    Plan.StartDate := DateTime.Parse(
"22.02.2020");
    Plan.Duration := 
13;
    
// Добавим вторую задачу
    Task := Tasks.Add;
    Task.Key := 
2;
    Task.Name := 
"№2";
    Task.PlanPeriod.Duration := 
11;
    Depend := Task.Dependencies.Add;
    Depend.PredecessorTaskKey := 
1;
    Depend.Lag := 
2;
    
// Выполним расчёт
    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 с 22.02.2020 00:00:00 по 05.03.2020 00:00:00 (длительность: 13 дней)

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

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

См. также:

IPrjTask