Процент полных расчетов
Microsoft Project показывает процент задачи, которая была выполнена. Процент может быть добавлен вручную с помощью менеджера проекта или автоматически рассчитан приложением. Aspose.Tasks для C ++ поддерживает несколько процентных расчетов, связанных с задачами.
проценты
Класс TSK раскрывает ряд свойств, используемых для расчета процентов:
- Проценткомпирация представляет собой завершенный процент продолжительности задачи (целое число).
- Процент) представляет собой завершенный процент работы задачи (целое число).
- PhysicalPercentComplete представляет завершенный процент, введенный менеджером проекта (целое число).
Чтобы увидеть физический процент в проекте Microsoft:
- В форме записи задачи в меню вставка выберите Столбец.
- Добавьте столбец.
Чтобы увидеть завершенный процент в проекте Microsoft:
- В форме записи задачи дважды щелкните желаемый столбец.
Получение процента
В следующем примере кода демонстрируется, как получить процент работы, связанную с задачами.
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"TaskPercentageCompletion.mpp");
4
5// Access tasks and display percentage completion
6auto tasks = project1->get_RootTask()->get_Children();
7
8{
9 auto tsk1_enumerator = (tasks)->GetEnumerator();
10 decltype(tsk1_enumerator->get_Current()) tsk1;
11 while (tsk1_enumerator->MoveNext() && (tsk1 = tsk1_enumerator->get_Current(), true))
12 {
13 System::Console::WriteLine(tsk1->Get<int32_t>(Tsk::PercentComplete()));
14 System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PercentWorkComplete())));
15 System::Console::WriteLine(System::Convert::ToString(tsk1->Get<int32_t>(Tsk::PhysicalPercentComplete())));
16 }
17}
Changing Task Progress
Aspose.Tasks for C++ API supports changing a task’s progress in terms of its percentage completion through the Task class’ SetPercentComplete() method. This method takes an integer argument as input for the percentage work completed.
The following piece of code shows how to change the progress of a task.
1System::SharedPtr<Project> project = System::MakeObject<Project>();
2System::Console::WriteLine(u"Project Calculation mode is Automatic: {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(project->get_CalculationMode(), Aspose::Tasks::CalculationMode::Automatic)));
3
4System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->Add(u"Task");
5task->Set<Duration>(Tsk::Duration(), project->GetDuration(2));
6task->Set<int32_t>(Tsk::PercentComplete(), 50);