Introducción a las fórmulas

Aspose.Tasks for .NET API admite la lectura y escritura de fórmulas en archivos de Microsoft Project (MPP).
Las fórmulas se utilizan para calcular valores personalizados para tareas, recursos y campos del proyecto basados en datos de proyecto existentes.

La Fórmula propiedad de la ExtendedAttributeDefinition class proporciona una interfaz para asignar y leer fórmulas.
Si se asigna una cadena de fórmula no válida , se lanzará una FormatException excepción.

Esta página ofrece una introducción a la gramática utilizada en las fórmulas, los operadores compatibles, las funciones y ejemplos.

Gramática de Fórmulas

Microsoft Project utiliza la siguiente gramática para las fórmulas, que también sigue 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 | + | -

Elementos admitidos

1. Campos

Puede usar cualquier nombre de campo válido de Microsoft Project (p. ej., [Duration], [Actual Duration], [Standard Rate]).

2. Operadores

Las fórmulas admiten:

3. Funciones

La mayoría de las funciones estándar de Microsoft Project son compatibles, incluyendo:

Ejemplos

Ejemplo 1: Aritmética simple

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

Esta fórmula calcula el trabajo promedio por día para una tarea.

Ejemplo 2: Expresión condicional

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

Esta fórmula establece el valor del campo personalizado en “Hecho” si la tarea está completa, de lo contrario a “En progreso”.

Manejo de errores

Véase también

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.