Работа с задачами в .NET

Управление фактическими свойствами задач является неотъемлемой частью планирования и отчётности проекта. В Aspose.Tasks for .NET, вы можете легко узнать фактическую стоимость, продолжительность, даты начала/завершения, сверхурочную работу, и многое другое. Это позволяет разработчикам анализировать ход проекта программно, не полагаясь на Microsoft Project.

Что такое фактические свойства?

Фактические свойства помогают узнать сколько работы, времени или средств уже было потрачено на задачу. Эти значения особенно полезны для сравнения планового и фактического прогресса.

Основные фактические свойства

Статический класс Tsk предоставляет следующие поля:

Просмотр фактических свойств в Microsoft Project

Если вы хотите сравнить значения внутри MS Project:

  1. Откройте Вид меню → выберите Другие представления → выберите Ввод задачи.
  2. На Вставка меню → выберите Столбец → добавьте поля, такие как 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 для чтения фактических свойств?

В: Могу ли я обновлять фактические свойства программно?

В: Работает ли это с Primavera или только с MS Project?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.