Arbeiten mit Formeln
Aspose.Tasks for .NET API unterstützt das Lesen/Schreiben von Formeln in MPP-Projektdateien. Die Formula-Eigenschaft der ExtendedAttributeDefinition bietet die Schnittstelle zum Lesen des Formelwerts. Dieser Artikel beschreibt, wie man Formeln aus lokalen sowie aus Enterprise Extended Attributes in der MPP-Datei liest. Er zeigt auch, wie man Formeln in die MPP-Datei schreibt.
Formeln in Extended Attributes für MPP-Dateiformate schreiben
Sie können benutzerdefinierte Formeln definieren und diese Extended Attributes in einem Projekt zuweisen. Aspose.Tasks schreibt diese Formeln in MPP-Dateien und wahrt dabei die Kompatibilität mit Microsoft Project.
1Project project = new Project("New Project.mpp");
2project.Set(Prj.NewTasksAreManual, false);
3
4// Create new custom field (Task Text1) with formula which will double task cost
5ExtendedAttributeDefinition attr = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Text, ExtendedAttributeTask.Text1, "Custom");
6attr.Alias = "Double Costs";
7attr.Formula = "[Cost]*2";
8project.ExtendedAttributes.Add(attr);
9
10// Add a task
11Task task = project.RootTask.Children.Add("Task");
12
13// Set task cost
14task.Set(Tsk.Cost, 100);
15
16project.Save("WriteFormulasInExtendedAttributesToMPP_out.mpp", SaveFileFormat.MPP);
Lesen von Formeln in Local und Enterprise Extended Attributes aus der MPP-Datei
Aspose.Tasks bietet Zugriff auf Formeln, die sowohl in Local als auch in Enterprise Extended Attributes definiert sind. Dadurch ist es möglich, programmatisch benutzerdefinierte Geschäftslogik zu extrahieren und zu analysieren, die in MPP-Dateien eingebettet ist.
1Project project = new Project("New Project.mpp"); // Attached test mpp
2// Read extended attribute formula
3ExtendedAttributeDefinition attr = project.ExtendedAttributes[0];
4Console.WriteLine("Attribute Formula: " + attr.Formula);
Schreibgeschützter Zugriff auf Werte benutzerdefinierter Felder bei Verwendung von Formeln
Wenn auf Extended Attributes Formeln angewendet werden, sind die resultierenden Werte der benutzerdefinierten Felder schreibgeschützt. Aspose.Tasks stellt sicher, dass berechnete Werte mit den in der MPP-Datei definierten Formeln konsistent bleiben.
1// Create new project and extended attribute definition
2Project project = new Project();
3
4ExtendedAttributeDefinition attribute = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Cost, ExtendedAttributeTask.Cost1, "");
5attribute.Formula = "[Cost]-[Actual Cost]";
6
7project.ExtendedAttributes.Add(attribute);
8
9// Add task
10Task task = project.RootTask.Children.Add("Task");
11
12// Create extended attribute
13ExtendedAttribute extendedAttribute = attribute.CreateExtendedAttribute();
14task.ExtendedAttributes.Add(extendedAttribute);
15
16// Display if extended attributes are read only or not
17Console.WriteLine(extendedAttribute.ValueReadOnly == true ? "Value is Read only" : "Value is not read only");
18extendedAttribute.NumericValue = -1000000M;
19Console.WriteLine(extendedAttribute.NumericValue == -1000000M ? "Formula values are read-only" : "Values are not read-only");