Microsoft Project – це популярне програмне забезпечення для керування проектами, яке полегшує ефективне керування проектами керівникам проектів. Це дозволяє менеджерам створювати завдання та ресурси, призначати завдання ресурсам, відстежувати хід проекту, керувати бюджетом та виконувати інші операції, пов’язані з проектом. Щоб програмно створювати файли MS Project і керувати ними, корпорація Майкрософт надає автоматизацію MS Office. Однак, разом із іншими недоліками, він вимагає інсталяції MS Office. Щоб заповнити цю прогалину, Aspose надає вам рішення для автоматизації MS Project для програм .NET як Aspose.Tasks for .NET.

Aspose.Tasks for .NET — це багатофункціональний API, який дозволяє програмно створювати файли MS Project (.mpp/.xml) за допомогою C# або VB.NET. Крім того, він пропонує різні функції для роботи із завданнями, ресурсами та календарями. У цій статті я покажу вам, як використовувати Aspose.Tasks for .NET для створення файлів MS Project і роботи із завданнями та ресурсами за допомогою C#. Решта статті поділено на наступні розділи.

Створення файлів MS Project за допомогою C#

MPP — це власний формат файлів Microsoft, який використовується для файлів MS Project. Однак ви також можете зберігати дані проекту у файлах XML для спільного використання ними між різними програмами. Створення нового проекту з нуля є простим завданням, яке можна виконати за допомогою таких кроків:

У наведених нижче зразках коду показано, як створювати файли MS Project за допомогою C#.

Збережіть файли MS Project як MPP

// Створіть новий проект
Project project = new Project();

// Збережіть його як файл .mpp
project.Save("New Project.mpp", SaveFileFormat.MPP);

Збережіть файли MS Project у форматі XML

// Створіть новий проект
Project project = new Project();

// Збережіть його як файл .xml
project.Save("EmptyProjectSaveXML_out.xml", SaveFileFormat.XML);

Додайте завдання до файлів MS Project за допомогою C#

Порожній файл MS Project марний без завдань і ресурсів. Отже, давайте подивимося, як створити та додати завдання до проекту. Завдання може бути одним завданням або зведеним завданням, що містить групу підзавдань. Нижче наведено кроки для додавання завдань до файлу MS Project.

  • Створіть та ініціалізуйте об’єкт Project.
  • Додайте нове зведене завдання до колекції Tasks проекту за допомогою методу Project.RootTask.Children.Add(string).
  • Додайте підзавдання до підсумкового завдання за допомогою методу Task.Children.Add(string).
  • Збережіть проект за допомогою методу Project.Save().

У наведеному нижче прикладі коду показано, як створювати та додавати завдання до файлів MS Project за допомогою C#.

// Створіть новий проект
Project project = new Project();

// Додайте завдання та підзавдання
Task task = project.RootTask.Children.Add("Summary1");
Task subtask = task.Children.Add("Subtask1");

// Зберегти файл
project.Save("CreateTasks_out.xml", SaveFileFormat.XML);

У наведеному нижче прикладі коду показано, як налаштувати різні властивості завдань, наприклад тривалість, дату/час початку тощо.

// Створити проект
Project project = new Project();

// Додати завдання та встановити властивості завдання
Task task = project.RootTask.Children.Add("Task1");
task.Set(Tsk.Start, project.RootTask.Get(Tsk.Start).AddDays(1));
task.Set(Tsk.Name, "new name");

Додайте ресурси до файлів MS Project за допомогою C#

Ресурси — це об’єкти, які мають виконувати завдання в проекті. Отже, проект був би неможливим без ресурсів для роботи над ним. Отже, давайте перевіримо, як створити та додати ресурси до проекту. Нижче наведено кроки, щоб додати ресурси до файлу MS Project.

  • Створіть новий проект за допомогою класу Project.
  • Додайте новий ресурс до колекції Resources проекту за допомогою методу Project.Resources.Add(string).
  • Збережіть проект за допомогою методу Project.Save().

У наведеному нижче прикладі коду показано, як додати ресурси до файлу MS Project за допомогою C#.

// Створити проект
Project project = new Project();

// Додайте ресурси
Resource resource = project.Resources.Add("Rsc");

// Зберегти проект
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

У наведеному нижче прикладі коду встановлюються такі властивості ресурсу, як дата/час початку, тип тощо.

// Створити проект
Project project = new Project();

// Додайте ресурси
Resource resource = project.Resources.Add("Rsc");

// Зберегти проект
project.Save("CreateResources_out.xml", SaveFileFormat.XML);

Призначення завдань ресурсу в проекті за допомогою C#

Після того, як ви завершили додавання завдань і ресурсів у проект, ви можете вказати, яке завдання має виконуватись яким ресурсом. Таким чином, ви призначите завдання(-я) кожному ресурсу. Нижче наведено кроки для призначення завдань ресурсам у проекті.

  • Створіть або завантажте проект за допомогою класу Project.
  • Додайте нові ресурси до проекту та встановіть їхні властивості, наприклад формат дати, дату початку тощо.
  • Додайте нові завдання до проекту та встановіть їхні властивості, такі як дата/час початку, тривалість тощо.
  • Виконайте призначення завдань, додавши завдання та відповідний ресурс до колекції Project.ResourceAssignments.
  • Збережіть проект за допомогою методу Project.Save().

Нижче наведено повний зразок коду створення та призначення завдань ресурсам у файлі MS Project.

// Створити проект
Project project = new Project("New Project.mpp")
{
    CalculationMode = CalculationMode.Automatic
};

// Встановити властивості
project.Set(Prj.DateFormat, DateFormat.DateDddMmDdYy);
project.Set(Prj.StartDate, new DateTime(2019, 9, 16, 9, 0, 0));
project.Set(Prj.NewTasksAreManual, false);
project.Set(Prj.ActualsInSync, false);

// Додайте ресурси
Resource workResource = project.Resources.Add("Servente (Work)");
workResource.Set(Rsc.Name, "Servente (Work)");
workResource.Set(Rsc.Initials, "S");
workResource.Set(Rsc.Type, ResourceType.Work);
workResource.Set(Rsc.StandardRateFormat, RateFormatType.Hour);
workResource.Set(Rsc.Code, "1503");

Resource materialResource = project.Resources.Add("Tijolo (Material)");
materialResource.Set(Rsc.Name, "Tijolo (Material)");
materialResource.Set(Rsc.Initials, "T");
materialResource.Set(Rsc.Type, ResourceType.Material);
materialResource.Set(Rsc.StandardRateFormat, RateFormatType.MaterialResourceRate);
materialResource.Set(Rsc.Code, "21341");

// Додайте завдання
Task task1 = project.RootTask.Children.Add("Task - 01");
task1.Set(Tsk.IsRollup, new NullableBool(true));
task1.Set(Tsk.IsPublished, new NullableBool(false));
Task task2 = task1.Children.Add("Task - 01.01");
task2.Set(Tsk.IsRollup, new NullableBool(true));
task2.Set(Tsk.IsPublished, new NullableBool(false));
Task task3 = task2.Children.Add("Task - 01.01.001");
task3.Set(Tsk.IsEstimated, new NullableBool(false));
task3.Set(Tsk.Start, new DateTime(2019, 9, 16, 9, 0, 0));
task3.Set(Tsk.Duration, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.Work, project.GetDuration(10, TimeUnitType.Day));
task3.Set(Tsk.IsRollup, new NullableBool(true));
task3.Set(Tsk.IsPublished, new NullableBool(false));

// Призначати завдання
ResourceAssignment assignment1 = project.ResourceAssignments.Add(task3, materialResource);
assignment1.Set(Asn.Delay, project.GetDuration(40, TimeUnitType.Hour));
assignment1.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignment1.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));
ResourceAssignment assignment2 = project.ResourceAssignments.Add(task3, workResource);
assignment2.Set(Asn.Work, project.GetDuration(56, TimeUnitType.Hour));
assignment2.Set(Asn.Start, new DateTime(2019, 9, 16, 9, 0, 0));
assignment2.Set(Asn.Finish, new DateTime(2019, 9, 24, 18, 0, 0));

// щоб повністю відповідати очікуваному MPP
assignment2.Set(Asn.WorkContour, WorkContourType.Contoured);
task3.Set(Tsk.IsManual, new NullableBool(true));
task1.Set(Tsk.IsManual, new NullableBool(true));

// Зберегти проект
project.Save("Assignment_Dates.mpp", SaveFileFormat.MPP);

Додавання календаря до проекту за допомогою C#

Календарі також є однією з основних сутностей проектів, які використовуються для визначення розкладу проекту. Календар дає змогу керівникам проектів створювати графік виконання проекту. Нижче наведено кроки, щоб додати календар до проекту.

  • Створіть або завантажте проект за допомогою класу Project.
  • Додайте новий Календар до колекції Project.Calendars.
  • Створення розкладу за допомогою об’єкта Календар.
  • Збережіть проект.

У наведеному нижче прикладі коду показано, як додати календар до проекту за допомогою C#.

// Створіть екземпляр проекту
Project project = new Project();

// Визначити календар
Calendar cal = project.Calendars.Add("Calendar1");

// Додайте робочі дні з понеділка по четвер із стандартним часом
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
cal.WeekDays.Add(WeekDay.CreateDefaultWorkingDay(DayType.Thursday));
cal.WeekDays.Add(new WeekDay(DayType.Saturday));
cal.WeekDays.Add(new WeekDay(DayType.Sunday));

// Встановити п'ятницю як короткий робочий день
WeekDay myWeekDay = new WeekDay(DayType.Friday);

// Встановлює час роботи. Важливою є лише часова частина DateTime
WorkingTime wt1 = new WorkingTime();
wt1.FromTime = new DateTime(1, 1, 1, 9, 0, 0, 0);
wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
WorkingTime wt2 = new WorkingTime();
wt2.FromTime = new DateTime(1, 1, 1, 13, 0, 0, 0);
wt2.ToTime = new DateTime(1, 1, 1, 16, 0, 0, 0);
myWeekDay.WorkingTimes.Add(wt1);
myWeekDay.WorkingTimes.Add(wt2);
myWeekDay.DayWorking = true;
cal.WeekDays.Add(myWeekDay);

// Зберегти проект
project.Save("Project_DefineCalendarWeekdays_out.xml", SaveFileFormat.XML);

Завантажити або встановити

Ви можете завантажити Aspose.Tasks for .NET DLL або встановити його у свій проект за допомогою NuGet.

Спробуйте Aspose.Tasks for .NET безкоштовно

Aspose пропонує безкоштовну тимчасову ліцензію, щоб випробувати її продукти без пробних обмежень. Ви можете отримати його тут.

Дивись також