Agregar enlaces para tareas en VSTO y Aspose.Tasks
Ejemplos de código
VSTO
Para vincular una tarea usando VSTO:
Crea un nuevo proyecto en Visual Studio.
En el explorador de soluciones, haga clic con el botón derecho y seleccione Agregar referencia.
Seleccione la pestaña Componentes COM y seleccione Microsoft Project 12.0 Object Library. Haga clic en Aceptar. Esto importa el espacio de nombres de Microsoft.Office.InTerop.MsProject al inicio de su código. Use el código del siguiente ejemplo para vincular las tareas.
1Microsoft.Office.InTerop.MsProject.Application ProjectApplication = new MsProject.Application ();
2
3Objeto 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) .TaskDependences.Add (Project.Tasks.Get_uniqueID (1), PJTasklinkType.pjfinishTostart);
20
21Project.Tasks.get_uniqueID (3) .TaskDependences.Add (Project.Tasks.Get_uniqueID (2), PJTaskLinkType.pjfinishTostart);
22
23Project.Tasks.get_uniqueID (4) .TaskDependences.Add (Project.Tasks.Get_uniqueID (3), PJTaskLinkType.pjfinishTostart);
24
25Project.tasks.get_uniqueid (5) .TaskDependences.Add (Project.Tasks.Get_uniqueID (4), PJTaskLinkType.pjfinishTostart);
26
27Project.Tasks.get_uniqueID (5) .TaskDependences.Add (Project.Tasks.Get_uniqueID (2), PJTasklinkType.pjfinishTostart);
28
29foreach (tarea TSK en 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.FileClOSELL (Microsoft.Office.InTerop.MsProject.PJSaveType.pjsave);
Este código C# usa Microsoft Project Intop para abrir un archivo ‘.mppexistente y agregar programáticamente las dependencias de tareas. Primero, inicializa una instancia de Microsoft Project a través de
Application y abre el archivo
“Project.mpp” `en Modo de grupo de solo lectura. Luego, recupera el proyecto activo y define varias dependencias de finalización entre tareas basadas en sus ID únicas. Específicamente, la Tarea 2 depende de la Tarea 1, la Tarea 3 de la Tarea 2, la Tarea 4 de la Tarea 3 y la Tarea 5 en la Tarea 2 y la Tarea 4. Después de configurar estas dependencias, el código itera a través de todas las tareas en el proyecto e imprime las relaciones de dependencia definidas en la consola, mostrando qué tareas son predecesores y sucesores. Finalmente, guarda y cierra el archivo del proyecto. Este código demuestra cómo los desarrolladores pueden automatizar la configuración de las relaciones de tareas en Microsoft Project usando COM Inerop, que requiere que el proyecto Microsoft se instale en el sistema.
Aspose.Tasks
Para vincular las tareas en un proyecto usando Aspose.Tasks para .NET:
Crea un nuevo proyecto en Visual Studio.
En el explorador de soluciones, haga clic con el botón derecho y seleccione Agregar referencia.
Seleccione la pestaña .NET y seleccione Aspose.tasks. haga clic en Aceptar. Esto importa el espacio de nombres Aspose.Tasks al comienzo de su código. Use el código del siguiente ejemplo para vincular las tareas.
1Projectreader lector = new Projectreader ();
2
3FileStream st = new FileStream ("Project.mpp", fileMode.open);
4
5Proyecto prj = lector.read (st);
6
7St.Close ();
8
9Tasklink TaskLink = New TaskLink (prj.roottask.children [0] como aspose.tasks.task, prj.roottask.children [1] como aspose.tasks.task, tareaslinktype.finishtostart);
10
11prj.addtasklink (Tasklink);
12
13Tasklink = new TaskLink (prj.roottask.children [1] como aspose.tasks.task, prj.roottask.children [2] como aspose.tasks.task, tareaslinktype.finishTostart);
14
15prj.addtasklink (Tasklink);
16Tasklink = new Tasklink (Prj.roottask.children [2] como aspose.tasks.task, prj.roottask.children [3] como aspose.tasks.task, tareaslinktype.finishtostart);
17
18prj.addtasklink (Tasklink);
19
20Tasklink = new TaskLink (Prj.roottask.children [3] como aspose.tasks.task, prj.roottask.children [4] como aspose.tasks.task, tareaslinktype.finishtostart);
21
22prj.addtasklink (Tasklink);
23
24Tasklink = new TaskLink (prj.roottask.children [1] como aspose.tasks.task, prj.roottask.children [4] como aspose.tasks.task, tareaslinktype.finishTostart);
25
26prj.addtasklink (Tasklink);
27
28ArrayList Alllinks = new ArrayList (Prj.TaskLinks);
29
30foreach (Tasklink TaskLink1 en 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);
Este código C# demuestra cómo usar Aspose.Tasks para .NET para agregar dependencias de tareas (enlaces de tareas) a un archivo de proyecto Microsoft existente (.mpp
) y guardar el resultado actualizado. Comienza abriendo el archivo " Project.mpp "
usando un FileStream
y leyéndolo con Projecterader
. Luego, el código crea programáticamente varias dependencias de finalización entre tareas consecutivas (desde la primera hasta la quinta tarea infantil), así como una dependencia adicional entre las tareas segunda y quinta. Cada dependencia está representada por un objeto Tasklink
, que se agrega al proyecto usandoaddTaskLink ()
. Después de que se agregan todas las dependencias, el código recopila todos los enlaces de tareas en una ArrayList
e imprime cada relación en la consola mostrando las ID de tareas predecesor y sucesor. Finalmente, el proyecto se guarda en un nuevo archivo " Project1.mpp "
en el formato del proyecto Microsoft.