Генерування даних про час для різних контурів роботи
Contents
[
Hide
Show
]Генерування даних про час для різних контурів роботи
Aspose.Tasks для API C ++ надає можливість генерувати дані про часовий час для різних контурів роботи призначеного ресурсу. Створені дані отримують за допомогою TimeScalEdata, який приймає дати запуску та закінчення проекту як вхідні параметри.
Наступний фрагмент коду призначає різні типи контурів роботи до призначеного ресурсу та відображає його дані про час.
1// Create project instance
2System::SharedPtr<Project> project1 = System::MakeObject<Project>(dataDir + u"ResourceAssignmentTimephasedData.mpp");
3
4// Get the first task of the Project
5System::SharedPtr<Task> task = project1->get_RootTask()->get_Children()->GetById(1);
6
7// Get the First Resource Assignment of the Project
8System::SharedPtr<ResourceAssignment> firstRA = project1->get_ResourceAssignments()->ToList()->idx_get(0);
9
10// Flat contour is default contour
11System::Console::WriteLine(u"Flat contour");
12
13auto tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
14
15{
16 auto td_enumerator = (tdList)->GetEnumerator();
17 decltype(td_enumerator->get_Current()) td;
18 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
19 {
20 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
21 }
22}
23
24// Change contour
25firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Turtle);
26System::Console::WriteLine(u"Turtle contour");
27tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
28
29{
30 auto td_enumerator = (tdList)->GetEnumerator();
31 decltype(td_enumerator->get_Current()) td;
32 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
33 {
34 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
35 }
36}
37
38// Change contour
39firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::BackLoaded);
40System::Console::WriteLine(u"BackLoaded contour");
41tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
42
43{
44 auto td_enumerator = (tdList)->GetEnumerator();
45 decltype(td_enumerator->get_Current()) td;
46 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
47 {
48 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
49 }
50}
51
52// Change contour
53firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::FrontLoaded);
54System::Console::WriteLine(u"FrontLoaded contour");
55tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
56
57{
58 auto td_enumerator = (tdList)->GetEnumerator();
59 decltype(td_enumerator->get_Current()) td;
60 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
61 {
62 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
63 }
64}
65
66// Change contour
67firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::Bell);
68System::Console::WriteLine(u"Bell contour");
69tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
70
71{
72 auto td_enumerator = (tdList)->GetEnumerator();
73 decltype(td_enumerator->get_Current()) td;
74 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
75 {
76 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
77 }
78}
79
80// Change contour
81firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::EarlyPeak);
82System::Console::WriteLine(u"EarlyPeak contour");
83tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
84
85{
86 auto td_enumerator = (tdList)->GetEnumerator();
87 decltype(td_enumerator->get_Current()) td;
88 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
89 {
90 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
91 }
92}
93
94// Change contour
95firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::LatePeak);
96System::Console::WriteLine(u"LatePeak contour");
97tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
98
99{
100 auto td_enumerator = (tdList)->GetEnumerator();
101 decltype(td_enumerator->get_Current()) td;
102 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
103 {
104 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
105 }
106}
107
108// Change contour
109firstRA->Set<WorkContourType>(Asn::WorkContour(), Aspose::Tasks::WorkContourType::DoublePeak);
110System::Console::WriteLine(u"DoublePeak contour");
111tdList = task->GetTimephasedData(project1->Get<System::DateTime>(Prj::StartDate()), project1->Get<System::DateTime>(Prj::FinishDate()));
112
113{
114 auto td_enumerator = (tdList)->GetEnumerator();
115 decltype(td_enumerator->get_Current()) td;
116 while (td_enumerator->MoveNext() && (td = td_enumerator->get_Current(), true))
117 {
118 System::Console::WriteLine(td->get_Start().ToShortDateString() + u" " + td->get_Value());
119 }
120}