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:
- Detener: la fecha en que se detiene una tarea (DateTime).
- Reanudación: la fecha y hora que se reinicia una tarea (DateTime).
Vista del proyecto de Microsoft de fechas de parada y currículum
Para ver las fechas de parada y reanudar una tarea:
- En el formulario de entrada de tarea, en el menú Insertar, seleccione Columna.
- 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}