Task Timefased Data lesen
Contents
[
Hide
Show
]In Microsoft Project werden Timephased -Daten auf der rechten Seite der Aufgabenverwendung und der Ressourcenverbrauchsansichten angezeigt. Sie können diese Daten manuell und programmgesteuert schreiben. Sie kann mit Aspose.Tasks für C ++ - API geschrieben oder von einem Projekt in Ihre Anwendung einbezogen werden.
Mit Timephased -Daten arbeiten
Aspose.Tasks FÜR C ++ API unterstützt das Lesen der zeitphasenen Daten einer Aufgabe aus Microsoft Project (MPP) -Dateien. Die zeitphasenen Daten werden mit der GetTimephasedData-Methode des Aufgabenobjekts abgerufen.
- Um die zeitphasenen Daten der Aufgabenarbeit abzurufen, nimmt die GetTimePhasedData-Methode die Start- und Fertigstellungstermine des Projekts als Eingabeparameter vor.
- Um die zeitphasenen Daten der Aufgabenkosten abzurufen, nimmt ein zusätzlicher Eingabeparameter vor, der die Art von Zeitphasendaten als Task-Cost angibt.
Der folgende Code zeigt, wie die Zeitdaten einer Aufgabe gelesen werden.
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}