Trabajar con calendarios de tareas
Contents
[
Hide
Show
]Es posible asociar calendarios con tareas particulares en el proyecto Microsoft. Aspose.Task admite esta funcionalidad.
Tareas con calendarios
La clase TSK expone el campo de calendario utilizado para establecer o hacer que el calendario se asocie con una tarea. Esta propiedad acepta o devuelve un objeto Aspose.Tasks.calendar.
Para crear un calendario para una tarea en el proyecto Microsoft:
- Abra un proyecto en Microsoft Project.
- En el menú del proyecto, seleccione Cambiar los tiempos de trabajo, luego Crear nuevo calendario.
- Para asignar el calendario a una tarea, haga doble clic en la tarea en el formulario de entrada de tarea.
- Seleccione la pestaña Avanzada.
Configuración del calendario de tareas
Cree un calendario estándar y cree una tarea. Asigne el calendario a la tarea.
1// Create project instance
2System::SharedPtr<Project> project = System::MakeObject<Project>();
3
4// Add task
5System::SharedPtr<Task> tsk1 = project->get_RootTask()->get_Children()->Add(u"Task1");
6
7// Create calendar and assign to task
8System::SharedPtr<Aspose::Tasks::Calendar> cal = project->get_Calendars()->Add(u"TaskCal1");
9tsk1->Set<System::SharedPtr<Calendar>>(Tsk::Calendar(), cal);
Getting Task Calendar
Get task calendar by traversing the tasks in a project.
1// The path to the documents directory.
2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
3
4// Create project instance
5System::SharedPtr<Project> prj = System::MakeObject<Project>(dataDir + u"ReadTaskCalendar.mpp");
6
7// Declare ChildTasksCollector class object
8System::SharedPtr<ChildTasksCollector> collector = System::MakeObject<ChildTasksCollector>();
9
10// Use TaskUtils to get all children tasks in RootTask
11TaskUtils::Apply(prj->get_RootTask(), collector, 0);
12
13// Parse all the recursive children
14
15{
16 auto tsk_enumerator = (collector->get_Tasks())->GetEnumerator();
17 decltype(tsk_enumerator->get_Current()) tsk;
18 while (tsk_enumerator->MoveNext() && (tsk = tsk_enumerator->get_Current(), true))
19 {
20 System::SharedPtr<Calendar> tskCal = tsk->Get<System::SharedPtr<Calendar>>(Tsk::Calendar());
21 System::Console::WriteLine(u"Task calendar name: {0}", System::ObjectExt::Box<System::String>(tskCal == nullptr ? u"None" : tskCal->get_Name()));
22 }
23}