Hinzufügen von Links für Aufgaben

Bei der Arbeit mit Microsoft Project (MPP/XML) -Dateien sind häufig Aufgaben erforderlich. In VSTO wird Task -Dependenz.Add () zum Hinzufügen von Aufgabenverbindungen verwendet. Aspose.Tasks verwendet Project.taskLinks.add (), um Aufgaben zu verknüpfen.

VSTO bietet Zugriff auf diese Links unter Verwendung von msproject.project.tasks.get_uniqueId (TaskId) .TaskDependenzen. Es bietet eine Sammlung von Abhängigkeiten, mit denen die Anforderungen wie der Zugriff auf detaillierte Eigenschaften angezeigt und anderweitig verarbeitet werden können.

In Aspose.Tasks für .NET Project.TaskLinks bietet eine Sammlung von Links, die zum Anzeigen und Zugriff auf detaillierte Eigenschaften dieser Links wie LinkType, Predtask, Succtask usw. verwendet werden können.

In diesem Artikel wird angezeigt, wie MPP -Dateien in Ihre .NET -Anwendung geladen werden und Link -Aufgaben mit VSTO und Aspose.Tasks für .NET hinzugefügt/angezeigt werden.

Linkaufgaben mit VSTO

Um eine Aufgabe mit VSTO zu verknüpfen:

  1. Erstellen Sie ein neues Projekt in Visual Studio.

  2. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste und wählen Sie Referenz hinzufügen.

  3. Wählen Sie die Registerkarte Com -Komponenten aus und wählen Sie Microsoft -Projekt 12.0 Objektbibliothek.

  4. Klicken Sie auf OK.

Dadurch importiert Microsoft.Office.Interop.msproject Namespace zu Beginn Ihres Codes. Verwenden Sie den Code aus dem folgenden Beispiel, um Aufgaben zu verknüpfen.

 1Microsoft.office.interop.mproject.application projectApplication = new Application ();
 2
 3Object fissionValue = system.reflection.missing.Value;
 4
 5projectApplication.FileOpenex (@"D: \ ASPOSPEN \ MIGNATION \ SampleProject.mpp",
 6    missingValue, missingValue, missingValue, missingValue,
 7
 8    missingValue, missingValue, missingValue, missingValue,
 9
10    missingValue, missingValue, PjPoolOpen.pjPoolReadOnly,
11
12    missingValue, missingValue, missingValue, missingValue,
13
14
15
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
29// Display the dependencies
30
31foreach (Task tsk in project.Tasks)
32
33{
34
35    foreach (TaskDependency dep in project.Tasks.get_UniqueID(tsk.ID).TaskDependencies)
36
37    {
38
39        Console.WriteLine("From ID = " + dep.From.ID  + "=>To ID = " + dep.To.ID);
40
41    }
42
43    Console.WriteLine("____________________________________________________________");
44
45}
46
47// Save the project
48
49projectApplication.FileCloseAll(Microsoft.Office.Interop.MSProject.PjSaveType.pjSave);

To link tasks in a project using Aspose.Tasks for .NET:

  1. Create a new project in Visual Studio.

  2. In the Solution Explorer, right-click and select Add Reference.

  3. Select .NET tab and select Aspose.Tasks.

  4. Click OK.

This imports the Aspose.Tasks namespace at the start of your code. Use the code from the following example to link tasks.

 1Project project = new Project("New Project.mpp");
 2
 3Task task1 = project.RootTask.Children.GetById(1);
 4Task task2 = project.RootTask.Children.GetById(2);
 5Task task3 = project.RootTask.Children.GetById(3);
 6Task task4 = project.RootTask.Children.GetById(4);
 7Task task5 = project.RootTask.Children.GetById(5);
 8
 9// Link the tasks
10TaskLink taskLink = project.TaskLinks.Add(task1, task2, TaskLinkType.FinishToStart);
11taskLink = project.TaskLinks.Add(task2, task3, TaskLinkType.FinishToStart);
12taskLink = project.TaskLinks.Add(task3, task4, TaskLinkType.FinishToStart);
13taskLink = project.TaskLinks.Add(task4, task5, TaskLinkType.FinishToStart);
14taskLink = project.TaskLinks.Add(task2, task5, TaskLinkType.FinishToStart);
15
16// Display links among the tasks
17TaskLinkCollection allinks = project.TaskLinks;
18foreach (TaskLink link in allinks)
19{
20    Console.WriteLine("From ID = " + link.PredTask.Get(Tsk.Id) + " => To ID = " + link.SuccTask.Get(Tsk.Id));
21    Console.WriteLine("________________________________________");
22}
23 
24project.Save("LinkTasks_out.mpp", SaveFileFormat.MPP);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.