Работа с задачами в .NET
Управление фактическими свойствами задач является неотъемлемой частью планирования и отчётности проекта. В Aspose.Tasks for .NET, вы можете легко узнать фактическую стоимость, продолжительность, даты начала/завершения, сверхурочную работу, и многое другое. Это позволяет разработчикам анализировать ход проекта программно, не полагаясь на Microsoft Project.
Что такое фактические свойства?
Фактические свойства помогают узнать сколько работы, времени или средств уже было потрачено на задачу. Эти значения особенно полезны для сравнения планового и фактического прогресса.
Основные фактические свойства
Статический класс Tsk предоставляет следующие поля:
- ActualCost → фактическая стоимость задачи (
double
) - ActualOvertimeCost → стоимость сверхурочных (
double
) - ActualOvertimeWork → сверхурочная работа (
TimeSpan
) - ActualDuration → фактическая продолжительность (
TimeSpan
) - ActualStart → фактическое время начала задачи (
DateTime
) - ActualFinish → фактическое время завершения задачи (
DateTime
) - ACWP → фактическая стоимость выполненных работ (
double
)
Просмотр фактических свойств в Microsoft Project
Если вы хотите сравнить значения внутри MS Project:
- Откройте Вид меню → выберите Другие представления → выберите Ввод задачи.
- На Вставка меню → выберите Столбец → добавьте поля, такие как Actual Start, Actual Finish, Actual Work, и т.д.
Таким образом вы можете визуально проверить те же данные, которые Aspose.Tasks API предоставляет программно.
Чтение фактических свойств в C#
Ниже приведён пример, который загружает файл проекта (.mpp
) и выводит фактические свойства задачи в консоль.
1// Create Project instance
2Project project = new Project("New Project.mpp");
3
4// Create a ChildTasksCollector instance
5ChildTasksCollector collector = new ChildTasksCollector();
6
7// Collect all the tasks from RootTask using TaskUtils
8TaskUtils.Apply(project.RootTask, collector, 0);
9
10// Parse through all the collected tasks
11foreach (Task task in collector.Tasks)
12{
13 Console.WriteLine("Task Name : " + task.Get(Tsk.Name));
14 Console.WriteLine("Actual Start: " + task.Get(Tsk.ActualStart).ToLongDateString());
15 Console.WriteLine("Actual Finish: " + task.Get(Tsk.ActualFinish).ToLongDateString());
16 Console.WriteLine("Actual Duration: " + task.Get(Tsk.ActualDuration).TimeSpan.Hours.ToString());
17 Console.WriteLine("Actual Cost: " + task.Get(Tsk.ActualCost).ToString());
18 Console.WriteLine("---------------------------------------------");
19}
Совет: вы можете использовать
ChildTasksCollector
с
TaskUtils
для рекурсивного извлечения всех задач из корневой задачи.
Ключевые преимущества
- Автоматизирует отчётность по проекту без открытия Microsoft Project.
- Позволяет экспортировать значения фактических показателей в информационные панели, Excel или базы данных.
- Работает с
.mpp
и другими поддерживаемыми форматами.
Часто задаваемые вопросы
В: Нужно ли устанавливать Microsoft Project для чтения фактических свойств?
- Нет. Aspose.Tasks for .NET работает независимо от Microsoft Project.
В: Могу ли я обновлять фактические свойства программно?
- Да. Вы можете задать значения для
ActualStart
,ActualFinish
, и других перед сохранением проекта.
В: Работает ли это с Primavera или только с MS Project?
- Aspose.Tasks поддерживает несколько форматов, но фактические свойства в первую очередь соответствуют полям Microsoft Project.