// The path to the documents directory. System::String dataDir = RunExamples::GetDataDir(System::Reflection::MethodBase::GetCurrentMethod(ASPOSE_CURRENT_FUNCTION)->get_DeclaringType().get_FullName()); // Create Project instance System::SharedPtr project = System::MakeObject(dataDir + u"ActualTaskProperties.mpp"); // Create a ChildTasksCollector instance System::SharedPtr collector = System::MakeObject(); // Collect all the tasks from RootTask using TaskUtils TaskUtils::Apply(project->get_RootTask(), collector, 0); // Parse through all the collected tasks { auto task_enumerator = (collector->get_Tasks())->GetEnumerator(); decltype(task_enumerator->get_Current()) task; while (task_enumerator->MoveNext() && (task = task_enumerator->get_Current(), true)) { System::Console::WriteLine(System::String(u"Task Name : ") + task->Get(Tsk::Name())); System::Console::WriteLine(System::String(u"Actual Start: ") + task->Get(Tsk::ActualStart()).ToLongDateString()); System::Console::WriteLine(System::String(u"Actual Finish: ") + task->Get(Tsk::ActualFinish()).ToLongDateString()); System::Console::WriteLine(System::String(u"Actual Duration: ") + System::Convert::ToString(task->Get(Tsk::ActualDuration()).get_TimeSpan().get_Hours())); System::Console::WriteLine(System::String(u"Actual Cost: ") + System::Convert::ToString(task->Get(Tsk::ActualCost()))); System::Console::WriteLine(u"---------------------------------------------"); } }