Работа с фактическими свойствами задачи
Contents
[
Hide
Show
]Фактические свойства используются, чтобы выяснить, сколько времени или денег было отправлено на задачу на сегодняшний день.
Работа с реальными свойствами
Статический класс TSK раскрывает ряд свойств для определения фактических свойств задачи:
- Фактическая кост: фактическая стоимость задачи (двойная).
- ActualOvertimeCost: фактическая стоимость сверхурочной работы задачи (двойная).
- ActualOvertimework: фактическое сверхурочное время сработало над задачей (TimesPan).
- Фактическое проведение: фактическая продолжительность задачи (времена).
- Фактическое произведение: дата и время, когда задача фактически началась (DateTime).
- Фактическая финиш: дата и время, когда задача фактически завершилась (DateTime).
- ACWP: фактическая стоимость работы, выполненной на задаче (двойной).
Класс DhistSkScollector собирает все детские задачи из данной ротты при использовании TaskUtils.
Фактические свойства в Microsoft Project
Чтобы получить доступ к этим свойствам в Microsoft Project:
- В меню View выберите Больше представлений, а затем запись задачи.
- В меню Вставка выберите Столбец и добавьте нужные столбцы в форму ввода задачи.
Получение фактических свойств с Aspose.tasks
Фактические свойства задач могут быть получены путем пересечения задач в проекте. Приведенный ниже образец кода записывает фактические свойства для всех задач, найденных в проекте в окно консоли.
1// The path to the documents directory.
2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
3
4// Create Project instance
5System::SharedPtr<Project> project = System::MakeObject<Project>(dataDir + u"ActualTaskProperties.mpp");
6
7// Create a ChildTasksCollector instance
8System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
9
10// Collect all the tasks from RootTask using TaskUtils
11TaskUtils::Apply(project->get_RootTask(), collector, 0);
12
13// Parse through all the collected tasks
14
15{
16 auto task_enumerator = (collector->get_Tasks())->GetEnumerator();
17 decltype(task_enumerator->get_Current()) task;
18 while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true))
19 {
20 System::Console::WriteLine(System::String(u"Task Name : ") + task->Get(Tsk::Name()));
21 System::Console::WriteLine(System::String(u"Actual Start: ") + task->Get<System::DateTime>(Tsk::ActualStart()).ToLongDateString());
22 System::Console::WriteLine(System::String(u"Actual Finish: ") + task->Get<System::DateTime>(Tsk::ActualFinish()).ToLongDateString());
23 System::Console::WriteLine(System::String(u"Actual Duration: ") + System::Convert::ToString(task->Get<Duration>(Tsk::ActualDuration()).get_TimeSpan().get_Hours()));
24 System::Console::WriteLine(System::String(u"Actual Cost: ") + System::Convert::ToString(task->Get<System::Decimal>(Tsk::ActualCost())));
25 System::Console::WriteLine(u"---------------------------------------------");
26 }
27}