Arbeiten mit Ausdrücken
Contents
[
Hide
Show
]ASSONE.TASSS FÜR JAVA -API kann Aufgaben-, Ressourcen- und Projektfelder als Formel in Ausdrücken verwenden. Felder wie Arbeit, Kosten, Zahlenfelder, DateTime, Boolesche und Projektfelder wie die Anzahl der Aufgaben und die Anzahl der Ressourcen können in Formelausdrücken in einem erweiterten Attribut verwendet werden.
Verwenden von Aufgaben und Ressourcenfeldern in Formelberechnungen
1// Create new project instance
2 Project project = new Project();
3
4java.util.Calendar cal = java.util.Calendar.getInstance();
5cal.set(2015, 26, 3, 8,0,0);
6
7project.set(Prj.START_DATE, cal.getTime());
8
9 // Add new task with extended attribute
10 Task task = project.getRootTask().getChildren().add("Task");
11 ExtendedAttributeDefinition extendedAttributeDefinition = ExtendedAttributeDefinition.createTaskDefinition(CustomFieldType.Text, ExtendedAttributeTask.Text5, "My Ext Attr");
12 project.getExtendedAttributes().add(extendedAttributeDefinition);
13 ExtendedAttribute extendedAttribute = extendedAttributeDefinition.createExtendedAttribute();
14 task.getExtendedAttributes().add(extendedAttribute);
15
16 // Add resource and resource assignment
17 Resource rsc = project.getResources().add("Rsc");
18 ResourceAssignment assn = project.getResourceAssignments().add(task, rsc);
19 return project;
1// see this helper method below
2Project project = CreateTestProjectWithCustomField();
3
4ExtendedAttributeDefinition attr = project.getExtendedAttributes().get(0);
5attr.setAlias("Days from finish to deadline");
6attr.setFormula("[Deadline] - [Finish]");
7
8java.util.Calendar cal = java.util.Calendar.getInstance();
9cal.set(2015, 26, 3, 8,0,0);
10
11Task task = project.getRootTask().getChildren().getById(1);
12task.set(Tsk.DEADLINE, cal.getTime());
13
14project.save("SaveFile.mpp", SaveFileFormat.MPP);
Using Arithmetic Expression
1Project project = CreateTestProjectWithCustomField();
2
3// Set arithmetic formula for extended attribute
4ExtendedAttributeDefinition attr = project.getExtendedAttributes().get(0);
5attr.setAlias("Arithmetic Expression");
6attr.setFormula("(1+3*(2+ -5)+8/2)^3");
7
8// Display extended attribute value
9Task task = project.getRootTask().getChildren().getById(1);
10System.out.println(task.getExtendedAttributes().get(0).getNumericValue());
Using Task Number Fields
1Project project = CreateTestProjectWithCustomField();
2
3// Set Formula
4ExtendedAttributeDefinition attr = project.getExtendedAttributes().get(0);
5attr.setAlias("Task number fields");
6attr.setFormula("(([Outline Level] + [Priority] + [% Complete])/2");
7
8Task task = project.getRootTask().getChildren().getById(1);
9
10// Print extended attribute value before and after updating task percent complete
11System.out.println(task.getExtendedAttributes().get(0).getNumericValue());
12
13task.set(Tsk.PERCENT_COMPLETE, 50);
14System.out.println(task.getExtendedAttributes().get(0).getNumericValue());
Formula With Boolean Values
1Project project = CreateTestProjectWithCustomField();
2
3// Set formula for extended attribute
4project.getExtendedAttributes().get(0).setFormula("[Critical]-[Marked]+4+[Active]-Not [Active]");
5
6// Print value of extened attribute
7Task task = project.getRootTask().getChildren().getById(1);
8System.out.println("Formula with boolean values" + task.getExtendedAttributes().get(0).getTextValue());
Formula With Project Fields
1Project project = CreateTestProjectWithCustomField();
2
3// Set formula for extended attribute
4project.getExtendedAttributes().get(0).setFormula("\"Total tasks: \" & [Task Count] & \" Total resources: \" & [Resource Count]");
5
6// Print value of extened attribute
7Task task = project.getRootTask().getChildren().getById(1);
8System.out.println("Formula with boolean values" + task.getExtendedAttributes().get(0).getTextValue());