Зупинка та відновлення завдання
Дата зупинки завдань - це дата, коли вона повинна (або зробила) закінчити. Іноді завдання потрібно тимчасово зупинити, а потім відновити пізніше. Microsoft Project може обчислити дати зупинки або дозволити користувачам вводити їх вручну.
Робота з зупинені та відновив завдання
Властивості зупинки та резюме, викриті класом TSK, використовуються для читання або запису дати зупинки та відновлення завдання:
- Зупинка: дата, на яку зупиняється завдання (DateTime).
- Резюме: Дата та час, коли завдання перезапускається (DateTime).
Microsoft Project View про стоп і відновити дати
Щоб побачити зупинку та відновити дати: Відновити дати:
- У формі запису завдання, у меню вставити, виберіть стовпчик.
- Додайте зупинки та відновити стовпці.
Зупинка і відновити дати
Дати зупинки та відновлення є NA, якщо завдання ніколи не припинялося. Для значень дати, що дорівнюють Na, Aspose.Tasks для C ++ API приймає значення “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}