Detener y reanudar una tarea

La fecha de parada de una tarea es la fecha en que debería (o hizo) terminar. A veces, una tarea debe detenerse temporalmente y luego reanudarse más tarde. Microsoft Project puede calcular las fechas de parada o permitir que los usuarios las ingresen manualmente.

Trabajar con tareas paradas y reanudadas

Las propiedades de detener y reanudar expuestas por la clase TSK se utilizan para leer o escribir la fecha de detención y reanudación de una tarea:

Vista del proyecto de Microsoft de fechas de parada y currículum

Para ver las fechas de parada y reanudar una tarea:

  1. En el formulario de entrada de tarea, en el menú Insertar, seleccione Columna.
  2. Agregue las columnas de parar y reanudar.

Obtener fechas de parada y currículum

Las fechas de parada y currículum son NA si la tarea nunca se ha detenido. Para valores de fecha iguales a NA, Aspose.Tasks for C ++ API toma el valor “1/1/2000” si está utilizando la versión de evaluación. Cuando está totalmente con licencia, Aspose.Tasks for C ++ API usa DateTime.MinValue para valores de NA. El siguiente ejemplo de código demuestra las fechas de parada y currículum para todas las tareas en un proyecto.

 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.