Lire les données de la tâche
Contents
[
Hide
Show
]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.
- Pour récupérer les données en phase de temps du travail des tâches, la méthode GettimePheaseData prend les dates de démarrage et de fin du projet en tant que paramètres d’entrée.
- Pour récupérer les données en phase de temps du coût de la tâche, il faut un paramètre d’entrée supplémentaire qui spécifie le type de données de phase de temps en tant que TaskCost.
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}