Introduction aux formules

Aspose.Tasks for .NET API prend en charge la lecture et l’écriture de formules dans les fichiers Microsoft Project (MPP).
Les formules sont utilisées pour calculer des valeurs personnalisées pour les tâches, les ressources et les champs du projet en fonction des données de projet existantes.

La Formula propriété de la ExtendedAttributeDefinition class fournit une interface pour l’affectation et la lecture des formules.
Si une chaîne de formule invalide est affectée, une FormatException est levée.

Cette page fournit une introduction à la grammaire utilisée dans les formules, aux opérateurs pris en charge, aux fonctions et aux exemples.

Grammaire des formules

Microsoft Project utilise la grammaire suivante pour les formules, que suit également Aspose.Tasks :

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 | + | -

Éléments pris en charge

1. Champs

Vous pouvez utiliser n’importe quel nom de champ valide de Microsoft Project (par ex., [Duration], [Actual Duration], [Standard Rate]).

2. Opérateurs

Les formules prennent en charge :

3. Fonctions

La plupart des fonctions standard de Microsoft Project sont prises en charge, notamment :

Exemples

Exemple 1 : arithmétique simple

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

Cette formule calcule le travail moyen par jour pour une tâche.

Exemple 2 : expression conditionnelle

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

Cette formule définit la valeur du champ personnalisé sur “Terminé” si la tâche est terminée, sinon sur “En cours”.

Gestion des erreurs

Voir aussi

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.