Как записать обновлённые данные задач в MPP
Aspose.Tasks for .NET позволяет разработчикам обновлять информацию о задачах (например, сроки, заметки, идентификаторы и структуру) а затем записывать эти изменения обратно в файлы Microsoft Project в MPP или XML формат. Это позволяет программно изменять существующие проекты без ручного редактирования их в Microsoft Project.
Обновление данных задач в Aspose.Tasks
При работе с расписаниями проектов часто требуется обновлять задачи после планирования — например, корректировать сроки, изменять заметки задач или добавлять новые элементы. Aspose.Tasks предоставляет простой рабочий процесс для этого:
- Создайте экземпляр Project класса.
- Загрузите исходный файл MPP.
- Получите доступ к объекту Task и измените его свойства.
- Обновите параметры, такие как Deadline, NotesText, Start/Finish dates, или идентификаторы.
- При необходимости добавьте новые задачи в корневую задачу или в подзадачи.
- Сохраните обновлённый проект обратно в MPP/XML.
Пример: обновление данных задачи и сохранение в MPP
Следующий пример демонстрирует, как обновить срок задачи, добавить заметки и найти идентификаторы задач перед записью обновлённого проекта на диск:
1Project project = new Project("New Project.mpp");
2
3// Set project start date
4project.Set(Prj.StartDate, new DateTime(2012, 07, 29, 8, 0, 0));
5
6// Add summary task and set its properties
7Task summary = project.RootTask.Children.Add("Summary task");
8Task task = summary.Children.Add("First task");
9task.Set(Tsk.Duration, project.GetDuration(3));
10task.Set(Tsk.Deadline, task.Get(Tsk.Start).AddDays(10));
11task.Set(Tsk.NotesText, "The first task.");
12task.Set(Tsk.DurationFormat, TimeUnitType.MinuteEstimated);
13task.Set(Tsk.ConstraintType, ConstraintType.FinishNoLaterThan);
14task.Set(Tsk.ConstraintDate, task.Get(Tsk.Deadline).AddDays(-1));
15
16
17// Create 10 new sub tasks for summary task
18for (int i = 0; i < 10; i++)
19{
20 Task subTask = summary.Children.Add(string.Format("Task{0}", i + 2));
21 subTask.Set(Tsk.Duration, task.Get(Tsk.Duration).Add(project.GetDuration(i + 1)));
22 subTask.Set(Tsk.DurationFormat, TimeUnitType.Day);
23 subTask.Set(Tsk.Deadline, task.Get(Tsk.Deadline).AddDays(i + 1));
24}
25
26project.Save("UpdateTaskData_out.mpp", SaveFileFormat.MPP);
Этот фрагмент показывает, как разработчики могут программно изменять существующие задачи и сохранять обновления в файлах MPP. Это особенно полезно при синхронизации внешних систем с данными Microsoft Project.
Ключевые заметки
- Вы можете обновлять большинство свойств задач, включая Deadlines, Notes, Start/Finish dates, and custom fields.
- Задачи могут быть добавлены, изменены или удалены программно перед сохранением.
- Обновлённые проекты можно сохранять в MPP и XML форматах без необходимости устанавливать Microsoft Project.
- Идентификаторы задач (Original ID, External ID) можно получить для межпроектных ссылок.
- Aspose.Tasks обеспечивает целостность данных при записи обратно в файлы проектов.
Часто задаваемые вопросы
В: Могу ли я добавлять новые задачи при обновлении существующего проекта?
- Да. Вы можете вставлять новые задачи в корневую задачу или как подзадачи перед сохранением.
В: Сохраняются ли пользовательские поля при записи обновлённых данных?
- Да. Aspose.Tasks сохраняет значения пользовательских полей при сохранении обновлённых файлов MPP/XML.
В: Нужно ли устанавливать Microsoft Project, чтобы сохранить изменения?
- Нет. Aspose.Tasks работает автономно и не требует Microsoft Project.
В: Могу ли я обновлять ресурсы задач вместе с данными задач?
- Да. Вы можете программно изменять как детали задач, так и назначенные ресурсы.
В: Как отслеживать межпроектные ссылки задач?
- Используйте свойства Original ID и External ID чтобы идентифицировать связанные задачи в нескольких проектах.