Додавання посилань для завдань у VSTO та Aspose.Tasks

Приклади коду

vsto

Щоб зв’язати завдання за допомогою VSTO:

  1. Створіть новий проект у Visual Studio.

  2. У Провіднику рішення клацніть правою кнопкою миші та виберіть Додати посилання.

  3. Виберіть вкладку COM Components та виберіть Microsoft Project 12.0 Об’єктна бібліотека.click Ok. Цей імпорт Використовуйте код із наступного прикладу, щоб посилити завдання.

 1Microsoft.Office.Interop.MSProject.Application projectApplication = new MSProject.Application();
 2
 3object missingValue = System.Reflection.Missing.Value;
 4
 5projectApplication.FileOpenEx("Project.mpp",
 6
 7    missingValue, missingValue, missingValue, missingValue,
 8
 9    missingValue, missingValue, missingValue, missingValue,
10
11    missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
12
13    missingValue, missingValue, missingValue, missingValue,
14
15    missingValue);
16
17Microsoft.Office.Interop.MSProject.Project project = projectApplication.ActiveProject;
18
19project.Tasks.get_UniqueID(2).TaskDependencies.Add(project.Tasks.get_UniqueID(1), PjTaskLinkType.pjFinishToStart);
20
21project.Tasks.get_UniqueID(3).TaskDependencies.Add(project.Tasks.get_UniqueID(2), PjTaskLinkType.pjFinishToStart);
22
23project.Tasks.get_UniqueID(4).TaskDependencies.Add(project.Tasks.get_UniqueID(3), PjTaskLinkType.pjFinishToStart);
24
25project.Tasks.get_UniqueID(5).TaskDependencies.Add(project.Tasks.get_UniqueID(4), PjTaskLinkType.pjFinishToStart);
26
27project.Tasks.get_UniqueID(5).TaskDependencies.Add(project.Tasks.get_UniqueID(2), PjTaskLinkType.pjFinishToStart);
28
29foreach (Task tsk in project.Tasks)
30
31{
32
33    foreach (TaskDependency dep in project.Tasks.get_UniqueID(tsk.ID).TaskDependencies)
34
35    {
36
37        Console.WriteLine("From ID = " + dep.From.ID + "=>To ID = " + dep.To.ID);
38
39    }
40
41    Console.WriteLine("____________________________________________________________");
42
43}
44
45projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

Цей код C# використовує Microsoft Project Interop, щоб відкрити наявний файл .mpp та програмно додати залежності завдань. По-перше, він ініціалізує екземпляр проекту Microsoft за допомогою Application і відкриває файл “project.mpp” в режимі басейну лише для читання. Потім він отримує активний проект і визначає кілька залежності від закінчення між завданнями на основі їх унікальних ідентифікаторів. Зокрема, завдання 2 встановлено залежати від Task 1, Task 3 у Task 2, Task 4 від Task 3 та Task 5 від Task 2, і Task 4. Після налаштування цих залежностей код повторює через усі завдання в проекті та роздрукує визначені відносини залежності з консолі, показуючи, які завдання є попередниками та спадкоємцями. Нарешті, він зберігає і закриває файл проекту. Цей код демонструє, як розробники можуть автоматизувати конфігурацію взаємозв’язків завдань у Microsoft Project за допомогою COM Interop, який вимагає встановлення проекту Microsoft в системі.

Aspose.Tasks

Щоб пов’язати завдання в проекті, використовуючи Aspose.Tasks для .net:

  1. Створіть новий проект у Visual Studio.

  2. У Провіднику рішення клацніть правою кнопкою миші та виберіть Додати посилання.

  3. Виберіть вкладку .NET і виберіть Aspose.Tasks.CLICK OK.THIS IMPORTS ASPOPEY.TASKS Простір імен на початку вашого коду. Використовуйте код із наступного прикладу, щоб посилити завдання.

 1ProjectReader reader = new ProjectReader();
 2
 3FileStream St = new FileStream("Project.mpp", FileMode.Open);
 4
 5Project prj = reader.Read(St);
 6
 7St.Close();
 8
 9TaskLink taskLink = new TaskLink(prj.RootTask.Children[0] as Aspose.Tasks.Task, prj.RootTask.Children[1] as Aspose.Tasks.Task, TaskLinkType.FinishToStart);
10
11prj.AddTaskLink(taskLink);
12
13taskLink = new TaskLink(prj.RootTask.Children[1] as Aspose.Tasks.Task, prj.RootTask.Children[2] as Aspose.Tasks.Task, TaskLinkType.FinishToStart);
14
15prj.AddTaskLink(taskLink);
16
17taskLink = new TaskLink(prj.RootTask.Children[2] as Aspose.Tasks.Task, prj.RootTask.Children[3] as Aspose.Tasks.Task, TaskLinkType.FinishToStart);
18
19prj.AddTaskLink(taskLink);
20
21taskLink = new TaskLink(prj.RootTask.Children[3] as Aspose.Tasks.Task, prj.RootTask.Children[4] as Aspose.Tasks.Task, TaskLinkType.FinishToStart);
22
23prj.AddTaskLink(taskLink);
24
25taskLink = new TaskLink(prj.RootTask.Children[1] as Aspose.Tasks.Task, prj.RootTask.Children[4] as Aspose.Tasks.Task, TaskLinkType.FinishToStart);
26
27prj.AddTaskLink(taskLink);
28
29ArrayList allLinks = new ArrayList(prj.TaskLinks);
30
31foreach (TaskLink taskLink1 in allLinks)
32
33{
34
35    Console.WriteLine("From ID = " + taskLink1.PredTask.Id + "=>To ID = " + taskLink1.SuccTask.Id);
36
37    Console.WriteLine("________________________________________");
38
39}
40
41prj.Save("Project1.mpp", Aspose.Tasks.Saving.SaveFileFormat.MPP);

Цей код C# демонструє, як використовувати Aspose.Tasks для .net, щоб додати залежності завдань (посилання на завдання) до існуючого файлу проекту Microsoft ( .mpp ) та зберегти оновлений результат. Він починається з відкриття файлу " project.mpp " за допомогою fileStream’і читаючи його за допомогою projectreader . Потім код програмно створює кілька залежності до початку між послідовними завданнями (від першого до п’ятого дочірнього завдання), а також однією додатковою залежністю між другим та п’ятим завданнями. Кожна залежність представлена ​​об’єктом taskLink , який додається до проекту за допомогою addtasklink () . Після того, як всі залежності додаються, код збирає всі посилання на завдання на ArrayList і друкує кожне відношення до консолі, відображаючи ідентифікатори завдань попередника та наступника. Нарешті, проект зберігається до нового файлу " Project1.mpp " у форматі проекту Microsoft.

Завантажити зразок коду

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.