Travailler avec les calendriers de tâches

Il est possible d’associer des calendriers à des tâches particulières dans Microsoft Project. Aspose.task prend en charge cette fonctionnalité.

Tâches avec calendriers

La classe TSK expose le champ de calendrier utilisé pour définir ou obtenir le calendrier associé à une tâche. Cette propriété accepte ou renvoie un objet Aspose.Tasks.Calendar.

Pour créer un calendrier pour une tâche dans le projet Microsoft:

  1. Ouvrez un projet dans Microsoft Project.
  2. Dans le menu Projet, sélectionnez Changer les temps de travail, puis Créez un nouveau calendrier.
  3. Pour attribuer le calendrier à une tâche, double-cliquez sur la tâche dans le formulaire d’entrée de tâche.
  4. Sélectionnez l’onglet Advanced.

Réglage du calendrier des tâches

Créez un calendrier standard et créez une tâche. Attribuez le calendrier à la tâche.

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}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.