Остановка и возобновление задания

Дата остановки задач - это дата, когда она должна (или сделала) закончить. Иногда задача должна быть временно остановлена, а затем возобновлена ​​позже. Project Microsoft может рассчитать даты остановки или позволить пользователям вводить их вручную.

Работа с остановленными и возобновляемыми задачами

Свойства остановки и резюме, выявленные классом TSK, используются для чтения или написания даты остановки и резюме задачи:

Microsoft Project Project View of Stop and Resume даты

Чтобы увидеть даты остановки и возобновления задачи:

  1. В форме записи задачи в меню вставка выберите Столбец.
  2. Добавьте столбцы остановки и резюме.

Получение дат остановки и возобновления

Даты остановки и резюме - это, если задача никогда не остановилась. Для значений даты, равных 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}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.