Agregar enlaces para tareas

A menudo se requiere la vinculación de tareas mientras se trabaja con archivos de Microsoft Project (MPP/XML). En VSTO, TaskDependences.Add () se usa para agregar enlaces de tareas; Aspose.Tasks usa Project.TaskLinks.Add () para vincular las tareas.

VSTO proporciona acceso a estos enlaces utilizando msproject.project.tasks.get_uniqueid (taskID) .TaskDependences. Proporciona una colección de dependencias que pueden usarse para mostrar y procesar los requisitos como el acceso a propiedades detalladas.

En Aspose.Tasks para .NET Project.TaskLinks proporciona una colección de enlaces que se pueden utilizar para mostrar y acceder a propiedades detalladas de estos enlaces como LinkType, Predtask, SuccTask, etc.

Este artículo muestra cómo cargar archivos MPP en su aplicación .NET y agregar/mostrar tareas de enlace usando vsto y Aspose.Tasks para .NET.

Tareas de enlace usando vsto

Para vincular una tarea usando vsto:

  1. Crea un nuevo proyecto en Visual Studio.

  2. En el explorador de soluciones, haga clic derecho y seleccione Agregar referencia.

  3. Seleccione la pestaña Componentes COM y seleccione Biblioteca de objetos del Proyecto Microsoft 12.0.

  4. Haga clic en Aceptar.

Esto importa el espacio de nombres de Microsoft.Office.interop.MsProject al comienzo de su código. Use el código del siguiente ejemplo para vincular las tareas.

 1Microsoft.Office.inTerop.MsProject.Application ProjectApplication = new Application ();
 2
 3Objeto MissingValue = System.Reflection.Missing.Value;
 4
 5ProjectApplication.FileOpenex (@"D: \ Aspose \ Migration \ 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.