Einführung in Formeln

Aspose.Tasks for .NET API unterstützt das Lesen und Schreiben von Formeln in Microsoft Project (MPP)-Dateien.
Formeln werden verwendet, um benutzerdefinierte Werte für Vorgänge, Ressourcen und Projektfelder basierend auf vorhandenen Projektdaten zu berechnen.

Die Formula property of the ExtendedAttributeDefinition class stellt eine Schnittstelle zum Zuweisen und Lesen von Formeln bereit.
Wenn eine ungültige Formelzeichenfolge zugewiesen wird, wird eine FormatException ausgelöst.

Diese Seite bietet eine Einführung in die in Formeln verwendete Grammatik, unterstützte Operatoren, Funktionen und Beispiele.

Formelgrammatik

Microsoft Project verwendet die folgende Grammatik für Formeln, der auch Aspose.Tasks folgt:

1    Formula -> Formula Binary_Op Primary | Primary
2    Primary -> (Formula) | Unary_Op Primary | Function | ValidFieldName | ValidDoubleValue | "StringLiteral"
3    Function -> ValidFunctionName(Args)
4    Args -> Args Delimiter Formula | Formula | |
5    Delimiter -> , | ;   // Note: Delimiter is culture-specific in XML format ( , or ; ) and persistent in MPP ( , )
6    Binary_Op -> + | - | * | / | & | MOD | ^ | = | <> | < | > | AND | OR
7    Unary_Op -> NOT | + | -

Unterstützte Elemente

1. Felder

Sie können jeden gültigen Microsoft Project-Feldnamen verwenden (z. B., [Duration], [Actual Duration], [Standard Rate]).

2. Operatoren

Formeln unterstützen:

3. Funktionen

Die meisten standardmäßigen Microsoft Project-Funktionen werden unterstützt, einschließlich:

Beispiele

Beispiel 1: Einfache Arithmetik

1var attr = ExtendedAttributeDefinition.CreateTaskDefinition(
2    CustomFieldType.Number,
3    ExtendedAttributeTask.Number1,
4    "WorkPerDay");
5
6attr.Formula = "[Work] / [Duration]";

Diese Formel berechnet die durchschnittliche Arbeit pro Tag für einen Vorgang.

Beispiel 2: Bedingter Ausdruck

1var attr = ExtendedAttributeDefinition.CreateTaskDefinition(
2    CustomFieldType.Text,
3    ExtendedAttributeTask.Text1,
4    "TaskStatus");
5
6attr.Formula = "IIf([% Complete] = 100, \"Done\", \"In Progress\")";

Diese Formel setzt den Wert des benutzerdefinierten Feldes auf “Fertig” wenn der Vorgang abgeschlossen ist, andernfalls auf “In Bearbeitung”.

Fehlerbehandlung

Siehe auch

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.