Добавление ссылок для задач в VSTO и Aspose.tasks

Примеры кода

vsto

Чтобы связать задачу, используя VSTO:

  1. Создайте новый проект в Visual Studio.

  2. В исследователе решения, щелкните правой кнопкой мыши и выберите «Добавить ссылку».

  3. Выберите вкладку COM Components и выберите Microsoft Project 12.0 Библиотека объектов. Клике OK. Это импортирует Microsoft.office.interop.msproject Space имен в начале вашего кода. Используйте код из следующего примера, чтобы связать задачи.

 1Microsoft.office.interop.msproject.application projectapplication = new MSProject.Application ();
 2
 3Object hispalue = 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_uniquid (2) .taskDependencies.Add (project.tasks.get_uniqueid (1), pjtasklinktype.pjfinishtostart);
20
21project.tasks.get_uniquid (3) .taskDependencies.Add (project.tasks.get_uniquid (2), pjtasklinktype.pjfinishtostart);
22
23project.tasks.get_uniquid (4) .taskDependencies.Add (project.tasks.get_uniquid (3), pjtasklinktype.pjfinishtostart);
24
25project.tasks.get_uniquid (5) .taskDependencies.Add (project.tasks.get_uniqueid (4), pjtasklinktype.pjfinishtostart);
26
27project.tasks.get_uniquid (5) .taskDependencies.Add (project.tasks.get_uniqueid (2), pjtasklinktype.pjfinishtostart);
28
29Foreach (задание TSK в 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 и программно добавлять зависимости задачи. Во-первых, он инициализирует экземпляр Project Microsoft через Application и открывает файл"project.mpp"in Mode Pool только для чтения. Затем он получает активный проект и определяет несколько Finish-To-Start между задачами на основе их уникальных идентификаторов. В частности, задача 2 установлена ​​для того, чтобы зависеть от задачи 1, задачи 3 на задаче 2, задаче 4 на задаче 3 и задаче 5 как на задаче 2, так и в задаче 4. После настройки этих зависимостей код итерации проникает во все задачи в проекте и распечатывает определенные отношения зависимости к консоли, показывая, какие задачи являются предшественниками и преемниками. Наконец, он сохраняет и закрывает файл проекта. Этот код демонстрирует, как разработчики могут автоматизировать конфигурацию отношений задач в Project Microsoft с использованием Com Interop, который требует, чтобы Microsoft Project был установлен в системе.

aspose.tasks

Чтобы связать задачи в проекте, используя Aspose.Tasks для .net:

  1. Создайте новый проект в Visual Studio.

  2. В исследователе решения, щелкните правой кнопкой мыши и выберите «Добавить ссылку».

  3. Выберите вкладку .NET и выберите ASPOST.TASKS.CLICK OK. Это импортирует пространство имен Aspose.Tasks в начале вашего кода. Используйте код из следующего примера, чтобы связать задачи.

 1Projectreader reader = new Projectreader ();
 2
 3FileStream ST = new FileStream ("project.mpp", filemode.open);
 4
 5Project prj = reader.read (st);
 6
 7S.Close ();
 8
 9Tasklink tasklink = new TaskLink (prj.roottask.children [0] как assope.tasks.task, prj.roottask.children [1] как assope.tasks.task, tasklinktype.finishtostart);
10
11prj.addtasklink (tasklink);
12
13tasklink = new TaskLink (prj.roottask.children [1] как assope.tasks.task, prj.roottask.children [2] как assope.tasks.task, tasklinktype.finishtostart);
14
15prj.addtasklink (tasklink);
16tasklink = new TaskLink (prj.roottask.children [2] как assope.tasks.task, prj.roottask.children [3] как assope.tasks.task, tasklinktype.finishtostart);
17
18prj.addtasklink (tasklink);
19
20tasklink = new Tasklink (prj.roottask.children [3] как assope.tasks.task, prj.roottask.children [4] как assope.tasks.task, tasklinktype.finishtostart);
21
22prj.addtasklink (tasklink);
23
24tasklink = new TaskLink (prj.roottask.children [1] как assope.tasks.task, prj.roottask.children [4] как assope.tasks.task, tasklinktype.finishtostart);
25
26prj.addtasklink (tasklink);
27
28ArrayList alllinks = new ArrayList (prj.tasklinks);
29
30Foreach (TaskLink TaskLink1 в Alllinks)
31
32{
33
34    Console.WriteLine("From ID = " + taskLink1.PredTask.Id + "=>To ID = " + taskLink1.SuccTask.Id);
35
36    Console.WriteLine("________________________________________");
37
38}
39
40prj.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.