Остановка и возобновление задания
Дата остановки задач - это дата, когда она должна (или сделала) закончить. Иногда задача должна быть временно остановлена, а затем возобновлена позже. Project Microsoft может рассчитать даты остановки или позволить пользователям вводить их вручную.
Работа с остановленными и возобновляемыми задачами
Свойства остановки и резюме, выявленные классом TSK, используются для чтения или написания даты остановки и резюме задачи:
- Остановка: дата, когда задача останавливается (DateTime).
- Резюме: дата и время, когда задача перезапускается (DateTime).
Microsoft Project Project View of Stop and Resume даты
Чтобы увидеть даты остановки и возобновления задачи:
- В форме записи задачи в меню вставка выберите Столбец.
- Добавьте столбцы остановки и резюме.
Получение дат остановки и возобновления
Даты остановки и резюме - это, если задача никогда не остановилась. Для значений даты, равных Na, Aspose.Tasks для API C ++ принимает значение «1/1/2000», если вы используете оценку версию. При полной лицензии Aspose.Tasks для C ++ API использует DateTime.minValue для значений NA. Следующий пример кода демонстрирует даты остановки и резюме для всех задач в проекте.
1// Read project from file stream
2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
3System::SharedPtr<System::IO::FileStream> fs = System::MakeObject<System::IO::FileStream>(dataDir + u"StopResumeDates.mpp", System::IO::FileMode::Open);
4System::SharedPtr<Project> prj = System::MakeObject<Project>(fs);
5fs->Close();
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(prj->get_RootTask(), collector, 0);
12
13// Check Stop and Resume dates for all tasks
14
15{
16 auto tsk1_enumerator = (collector->get_Tasks())->GetEnumerator();
17 decltype(tsk1_enumerator->get_Current()) tsk1;
18 while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
19 {
20 if (tsk1->Get<System::DateTime>(Tsk::Stop()).ToShortDateString() == u"1/1/2000")
21 {
22 System::Console::WriteLine(u"Stop: NA");
23 }
24 else
25 {
26 System::Console::WriteLine(System::String(u"Stop: ") + tsk1->Get<System::DateTime>(Tsk::Stop()).ToShortDateString());
27 }
28
29 if (tsk1->Get<System::DateTime>(Tsk::Resume()).ToShortDateString() == u"1/1/2000")
30 {
31 System::Console::WriteLine(u"Resume: NA");
32 }
33 else
34 {
35 System::Console::WriteLine(System::String(u"Resume: ") + tsk1->Get<System::DateTime>(Tsk::Resume()).ToShortDateString());
36 }
37 }
38}