Expressions de formule
Contents
[
Hide
Show
]Aspose.Tasks pour l’API C ++ peut utiliser les champs de tâche, de ressources et de projet comme formule dans les expressions. Des champs tels que le travail, le coût, les champs de nombres, la datetime, le booléen et les champs de projet tels que le nombre de tâches et le nombre de ressources peuvent être utilisés dans les expressions de formule dans un attribut étendu.
Utilisation d’expression arithmétique
1System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
2
3// Set arithmetic formula for extended attribute
4System::SharedPtr<ExtendedAttributeDefinition> attr = project->get_ExtendedAttributes()->idx_get(0);
5attr->set_Alias(u"Arithmetic Expression");
6attr->set_Formula(u"(1+3*(2+ -5)+8/2)^3");
7
8// Display extended attribute value
9System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
10System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
Using Task Number Fields
1System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
2
3// Set formula
4System::SharedPtr<ExtendedAttributeDefinition> attr = project->get_ExtendedAttributes()->idx_get(0);
5attr->set_Alias(u"Task number fields");
6attr->set_Formula(u"([Outline Level] + [Priority] + [% Complete])/2");
7
8System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
9
10// Print extended attribute value before and after updating task percent complete
11System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
12task->Set<int32_t>(Tsk::PercentComplete(), 50);
13System::Console::WriteLine(task->get_ExtendedAttributes()->idx_get(0)->get_NumericValue());
Formula With Boolean Values
1System::SharedPtr<Project> project = CreateTestProjectWithCustomField();
2
3// Set formula for extended attribute
4project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"[Critical]-[Marked]+4+[Active]-Not [Active]");
5
6// Print value of extened attribute
7System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
8System::Console::WriteLine(System::String(u"Formula with boolean values: ") + task->get_ExtendedAttributes()->idx_get(0)->get_TextValue());
Formula With Project Fields
1System::SharedPtr<Project> project = CreateTestProjectWithCustomFieldWithoutResource();
2
3// Set formula
4project->get_ExtendedAttributes()->idx_get(0)->set_Formula(u"\"Total tasks: \" & [Task Count] & \" Total resources: \" & [Resource Count]");
5
6// Print if formula value is computed correctly
7System::SharedPtr<Task> task = project->get_RootTask()->get_Children()->GetById(1);
8System::Console::WriteLine(u"Check Total tasks: 1 Total resources: 0 - {0}", System::ObjectExt::Box<bool>(System::ObjectExt::Equals(task->get_ExtendedAttributes()->idx_get(0)->get_TextValue(), u"Total tasks: 1 Total resources: 0")));