Ajout de liens pour les tâches dans VSTO et Aspose.Tasks
Exemples de code
Vsto
Pour lier une tâche à l’aide de VSTO:
Créez un nouveau projet dans Visual Studio.
Dans l’explorateur de solution, cliquez avec le bouton droit et sélectionnez Ajouter une référence.
Sélectionnez l’onglet COM Composants et sélectionnez Microsoft Project 12.0 Object Library.click OK.Ce importe le Microsoft.office.interop.msproject Namespace au début de votre code. Utilisez le code à partir de l’exemple suivant pour lier les tâches.
1Microsoft.office.interop.msproject.application projectApplication = new MSProject.Application ();
2
3objet manquantValue = System.Reflection.Missing.Value;
4
5projectApplication.FileOPenex ("project.mppp",
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) .taskdependues.add (project.tasks.get_unitiqueid (1), pjtasklinktype.pjfinishtostart);
20
21project.tasks.get_uniqueid (3) .taskDependces.add (project.tasks.get_uniqueid (2), pjtasklinktype.pjfinishtostart);
22
23project.tasks.get_uniqueid (4) .taskDependces.add (project.tasks.get_uniqueid (3), pjtasklinktype.pjfinishtostart);
24
25project.tasks.get_uniqueid (5) .taskDependces.add (project.tasks.get_uniqueid (4), pjtasklinktype.pjfinishtostart);
26
27project.tasks.get_uniqueid (5) .taskdepEntency.add (project.tasks.get_unitiqueid (2), pjtasklinktype.pjfinishtostart);
28
29foreach (tâche TSK dans 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);
Ce code C # utilise Microsoft Project Interop Pour ouvrir un fichier .mppp
existant et ajouter par programme les dépendances de tâches. Tout d’abord, il initialise une instance de Microsoft Project via application
et ouvre le fichier"project.mpp"
en Mode de pool en lecture seule. Ensuite, il récupère le projet actif et définit plusieurs dépendances finis à démarrer entre les tâches en fonction de leurs ID uniques. Plus précisément, la tâche 2 est définie pour dépendre de la tâche 1, de la tâche 3 de la tâche 2, de la tâche 4 de la tâche 3 et de la tâche 5 de la tâche 2 et de la tâche 4. Après avoir mis en place ces dépendances, le code itère à travers toutes les tâches du projet et imprime les relations de dépendance définies avec la console, montrant quelles tâches sont des prédécesseurs et des successeurs. Enfin, il enregistre et ferme le fichier du projet. Ce code montre comment les développeurs peuvent automatiser la configuration des relations de tâches dans Microsoft Project à l’aide de COM Interop, qui nécessite que Microsoft Project soit installé sur le système.
Aspose.Tasks
Pour lier les tâches dans un projet à l’aide d’Aspose.Tasks pour .NET:
Créez un nouveau projet dans Visual Studio.
Dans l’explorateur de solution, cliquez avec le bouton droit et sélectionnez Ajouter une référence.
Sélectionnez .NET Tab et sélectionnez Aspose.Tasks.click OK.Ce importe l’espace de noms Aspose.Tasks au début de votre code. Utilisez le code à partir de l’exemple suivant pour lier les tâches.
1ProjectReader Reader = new ProjectReader ();
2
3FileStream ST = new FileStream ("Project.MPP", FileMode.Open);
4
5Project Prj = Reader.Read (ST);
6
7St.Close ();
8
9Taskink taskink = new taskink (prj.roottask.children [0] comme Aspose.Tasks.task, prj.roottask.children [1] comme Aspose.Tasks.task, taskinktype.finishtostart);
10
11prj.addtasklink (taskink);
12
13taskink = new taskink (prj.roottask.children [1] comme Aspose.Tasks.task, prj.roottask.children [2] as Aspose.Tasks.task, taskinktype.finishtostart);
14
15prj.addtasklink (taskink);
16taskink = new taskink (prj.roottask.children [2] comme Aspose.Tasks.task, prj.roottask.children [3] comme Aspose.Tasks.task, taskinktype.finishtostart);
17
18prj.addtasklink (taskink);
19
20taskink = new taskink (prj.roottask.children [3] comme Aspose.Tasks.task, prj.roottask.children [4] comme Aspose.Tasks.task, taskinktype.finishtostart);
21
22prj.addtasklink (taskink);
23
24taskink = new taskink (prj.roottask.children [1] as Aspose.Tasks.task, prj.roottask.children [4] as Aspose.Tasks.task, taskinktype.finishtostart);
25
26prj.addtasklink (taskink);
27
28ArrayList allLinks = new ArrayList (prj.tasklinks);
29
30foreach (taskink tasklink1 dans 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);
Ce code C # montre comment utiliser Aspose.Tasks pour .NET pour ajouter des dépendances des tâches (liens de tâche) à un fichier de projet Microsoft existant (.mppp
) et enregistrer le résultat mis à jour. Il commence par ouvrir le fichier " project.mp "" à l'aide d'un
FileStream" et en le lisant avec ProjectReader". Le code crée ensuite programmatiquement plusieurs dépendances **finis-to-start** entre les tâches consécutives (de la première à la cinquième tâche enfant), ainsi qu'une dépendance supplémentaire entre les deuxième et cinquième tâches. Chaque dépendance est représentée par un objet `` TaskLink ', qui est ajouté au projet à l'aide de' addTaskLink () '. Une fois que toutes les dépendances sont ajoutées, le code collecte tous les liens de tâche dans un
ArrayListet imprime chaque relation avec la console en affichant les ID de tâche prédécesseur et successeur. Enfin, le projet est enregistré dans un nouveau fichier
" project1.mp “` au format de projet Microsoft.