Прочитайте завдання TABEDASED
Contents
[
Hide
Show
]У Microsoft Project Data Timephadey відображається в правій частині використання задач та переглядів використання ресурсів. Ви можете записати ці дані вручну та програмно, вони можуть бути записані за допомогою Aspope.Tasks для C ++ API або отримати їх з проекту у свою програму.
Робота з тимифазними даними
Aspose.Tasks для C ++ API підтримує читання даних про час у часі з файлів Microsoft Project (MPP). Дані, що займаються часом, отримують за допомогою методу GetTimePhaseDData об’єкта завдання.
- Щоб отримати дані про час роботи в часі роботи, метод GetTimePhasedData приймає дати запуску та закінчення проекту як вхідні параметри.
- Щоб отримати дані про час часу, що витрачається на час, він приймає додатковий вхідний параметр, який визначає тип даних часу часу як TaskCost.
Наступний фрагмент коду показує, як прочитати дані про часовий час.
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}