Управление коллекцией атрибутов MS Project в Aspose.Tasks
Введение
Вы хотите эффективно управлять расширенными атрибутами MS Project с помощью Aspose.Tasks для .NET? В этом уроке мы шаг за шагом проведем вас через этот процесс. Давайте погрузимся!
Предварительные условия
Прежде чем мы начнем, убедитесь, что у вас есть следующее:
- Visual Studio: установите Visual Studio в свою систему.
- Aspose.Tasks для .NET: Загрузите и установите Aspose.Tasks для .NET с сайтаздесь.
- Базовые знания C#: ознакомьтесь с основами языка программирования C#.
Импортировать пространства имен
Начните с импорта необходимых пространств имен в ваш проект:
using Aspose.Tasks;
using System;
Шаг 1. Загрузите файл проекта
Сначала загрузите файл MS Project, используя следующий фрагмент кода:
String DataDir = "Your Document Directory";
var project = new Project(DataDir + "ReadTaskExtendedAttributes.mpp");
Шаг 2. Доступ к задаче и расширенным атрибутам
Доступ к конкретной задаче и ее расширенным атрибутам:
var task = project.RootTask.Children.GetById(1);
Шаг 3. Очистите расширенные атрибуты
При необходимости очистите существующие расширенные атрибуты:
if (!task.ExtendedAttributes.IsReadOnly && task.ExtendedAttributes.Count > 0)
{
task.ExtendedAttributes.Clear();
}
Шаг 4. Создайте расширенные определения атрибутов
Создайте определения для новых расширенных атрибутов:
var taskDefinition1 = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Start, ExtendedAttributeTask.Start7, "Start 7");
var taskDefinition2 = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Finish, ExtendedAttributeTask.Finish7, "Finish 7");
project.ExtendedAttributes.Add(taskDefinition1);
project.ExtendedAttributes.Add(taskDefinition2);
Шаг 5. Перебор расширенных атрибутов задачи
Перебрать расширенные атрибуты задачи:
Console.WriteLine("Iterate over task extended attributes of " + task.Get(Tsk.Name) + " task: ");
foreach (var attribute in task.ExtendedAttributes)
{
Console.WriteLine("Attribute FieldId: " + attribute.FieldId);
Console.WriteLine("Attribute Value: " + attribute.DateValue);
Console.WriteLine();
}
Шаг 6. Добавьте расширенные атрибуты
Добавьте в задачу новые расширенные атрибуты:
var extendedAttribute1 = taskDefinition1.CreateExtendedAttribute();
extendedAttribute1.DateValue = new DateTime(2020, 4, 14, 8, 0, 0);
if (task.ExtendedAttributes.IndexOf(extendedAttribute1) < 0)
{
task.ExtendedAttributes.Insert(0, extendedAttribute1);
}
var extendedAttribute2 = taskDefinition2.CreateExtendedAttribute();
extendedAttribute2.DateValue = new DateTime(2020, 4, 14, 17, 0, 0);
task.ExtendedAttributes.Add(extendedAttribute2);
Шаг 7. Работа с расширенными атрибутами
При необходимости выполните операции с расширенными атрибутами.
Шаг 8. Удаление расширенных атрибутов
Удалить расширенные атрибуты по индексу или условно:
task.ExtendedAttributes.RemoveAt(0);
task.ExtendedAttributes.Remove(extendedAttribute2);
Шаг 9. Скопируйте атрибуты в другую задачу
Скопируйте атрибуты в другую задачу в том же или другом проекте:
var otherProject = new Project();
var otherTask = otherProject.RootTask.Children.Add("Other task");
foreach (var attribute in attributes)
{
otherTask.ExtendedAttributes.Add(attribute);
}
Заключение
Управление расширенными коллекциями атрибутов MS Project становится проще с помощью Aspose.Tasks для .NET. Следуя шагам, описанным в этом руководстве, вы сможете эффективно обрабатывать расширенные атрибуты, расширяя свои возможности управления проектами.
Часто задаваемые вопросы
Вопрос: Могу ли я управлять расширенными атрибутами в нескольких проектах?
О: Да, вы можете копировать расширенные атрибуты между задачами в разных проектах, используя Aspose.Tasks for .NET.
Вопрос: Существуют ли ограничения на количество расширенных атрибутов для каждой задачи?
О: Aspose.Tasks for .NET не накладывает никаких ограничений на количество расширенных атрибутов для каждой задачи.
Вопрос: Могу ли я создавать собственные поля расширенных атрибутов?
А: Абсолютно! Aspose.Tasks для .NET позволяет вам определять собственные расширенные поля атрибутов, адаптированные к требованиям вашего проекта.
Вопрос: Поддерживает ли Aspose.Tasks для .NET чтение и запись в файлы MS Project различных версий?
О: Да, Aspose.Tasks для .NET поддерживает форматы файлов MS Project в разных версиях.
Вопрос: Доступна ли пробная версия Aspose.Tasks для .NET?
О: Да, вы можете загрузить бесплатную пробную версию с сайтаздесь.