Lire les données de la tâche

Dans le projet Microsoft, les données timinées sont affichées sur le côté droit de l’utilisation des tâches et des vues d’utilisation des ressources. Vous pouvez rédiger ces données manuellement et programmatiques, il peut être écrit avec Aspose.Tasks pour l’API C ++ ou les obtenir d’un projet dans votre application.

Travailler avec des données timides

Aspose.Tasks pour l’API C ++ prend en charge la lecture des données en phase de temps d’une tâche à partir des fichiers Microsoft Project (MPP). Les données phasées dans le temps sont récupérées à l’aide de la méthode GettimePheledData de l’objet Task.

Le morceau de code suivant montre comment lire les données timides d’une tâche.

 1// Create project instance
 2System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName());
 3System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ReadWriteTimephasedData.mpp");
 4    
 5// Set project properties
 6project1->Set(Prj::StartDate(), System::DateTime(2013, 10, 30, 9, 0, 0));
 7project1->Set<NullableBool>(Prj::NewTasksAreManual(), NullableBool::to_NullableBool(false));
 8    
 9// Add task and resources
10System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->Add(u"Task");
11System::SharedPtr<Resource> rsc = project1->get_Resources()->Add(u"Rsc");
12    
13// Set resource rates and task duration
14rsc->Set<System::Decimal>(Rsc::StandardRate(), static_cast<System::Decimal>(10));
15rsc->Set<System::Decimal>(Rsc::OvertimeRate(), static_cast<System::Decimal>(15));
16task->Set<Duration>(Tsk::Duration(), project1->GetDuration(6));
17    
18// Create resource assignment
19System::SharedPtr<ResourceAssignment> assn = project1->get_ResourceAssignments()->Add(task, rsc);
20assn->Set(Asn::Stop(), System::DateTime::MinValue);
21assn->Set(Asn::Resume(), System::DateTime::MinValue);
22    
23// Set Backloaded contour, it increases task duration from 6 to 10 days
24assn->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::BackLoaded);
25    
26project1->SetBaseline(Aspose::Tasks::BaselineType::Baseline);
27task->Set<int32_t>(Tsk::PercentComplete(), 50);
28    
29// Read timephased data
30System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<TimephasedData>>> td = assn->GetTimephasedData(assn->Get<System::DateTime>(Asn::Start()), assn->Get<System::DateTime>(Asn::Finish()), Aspose::Tasks::TimephasedDataType::AssignmentRemainingWork)->ToList();
31System::Console::WriteLine(td->get_Count());
32    
33{
34    auto timePhasedValue_enumerator = (td)->GetEnumerator();
35    decltype(timePhasedValue_enumerator->get_Current()) timePhasedValue;
36    while (timePhasedValue_enumerator->MoveNext() && (timePhasedValue = timePhasedValue_enumerator->get_Current(), true))
37    {
38        System::Console::WriteLine(timePhasedValue->get_Value());
39    }
40}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.