Travailler avec les tâches

Avec Aspose.Tasks pour Java, il est possible de mettre à jour les tâches, puis de réécrire les données mises à jour dans un fichier Microsoft Project MPP.

Mise à jour des données des tâches L’extrait de code suivant montre comment mettre à jour les données de tâche d’un projet et les réécrire dans le fichier MPP. L’étape impliquée dans cette activité est:

  1. Créez une instance de Project Reader.
  2. Lisez le fichier Source MPP.
  3. Créez une tâche et ajoutez-le à la tâche racine.
  4. Mettez à jour les paramètres de la tâche tels que la date limite, NottesText, etc.
  5. Ajoutez des tâches supplémentaires à la tâche racine.
  6. Enregistrez le projet.

Le code suivant trouve l’ID d’origine et externe d’une tâche via le projection croisée.

 1// For complete examples and data files, please go to https://github.com/aspose-tasks/Aspose.Tasks-for-Java
 2// The path to the documents directory.
 3String dataDir = Utils.getDataDir(UpdatedTaskLinkDataToMpp.class);
 4
 5long OneSec = 10000000;// microsecond * 10
 6long OneMin = 60 * OneSec;
 7long OneHour = 60 * OneMin;
 8
 9Project project = new Project(dataDir + "Aspose\\SampleNewMSP.mpp");
10Task task1 = project.getRootTask().getChildren().add("First task");
11
12java.util.Calendar cal = java.util.Calendar.getInstance();
13cal.set(2013, 12, 10, 8, 0, 0);
14project.set(Prj.START_DATE, cal.getTime());
15task1.set(Tsk.START, cal.getTime());
16task1.set(Tsk.DURATION, project.getDuration(OneHour * 24, TimeUnitType.Hour));
17
18Task summary = project.getRootTask().getChildren().add("Summary task");
19summary.getChildren().add(task1);
20
21project.getRootTask().getChildren().add(summary);
22
23cal.setTime(task1.get(Tsk.START));
24cal.add(java.util.Calendar.DATE, 10);
25task1.set(Tsk.DEADLINE, cal.getTime());
26
27task1.set(Tsk.NOTES_TEXT, "The first task.");
28task1.set(Tsk.DURATION_FORMAT, TimeUnitType.DayEstimated);
29task1.set(Tsk.CONSTRAINT_TYPE, ConstraintType.FinishNoLaterThan);
30
31cal.setTime(task1.get(Tsk.DEADLINE));
32cal.add(java.util.Calendar.DATE, -1);
33task1.set(Tsk.CONSTRAINT_DATE, cal.getTime());
34
35// Create 10 new tasks
36for (int i = 0; i < 10; i++) {
37    String taskName = "Task " + (i + 2);
38    Task task = summary.getChildren().add(taskName);
39    task.set(Tsk.START, task1.get(Tsk.START));
40    long lDuration = (long) task1.get(Tsk.DURATION).toDouble();
41    lDuration = (long) (lDuration + (OneHour * 8 * (i + 1)));
42    task.set(Tsk.DURATION, project.getDuration(lDuration, TimeUnitType.Hour));
43    task1.set(Tsk.DURATION_FORMAT, TimeUnitType.Day);
44
45    cal.setTime(task1.get(Tsk.DEADLINE));
46    cal.add(java.util.Calendar.DATE, 1 + i);
47    task.set(Tsk.DEADLINE, cal.getTime());
48    task.set(Tsk.FINISH,
49            project.get(Prj.CALENDAR).getFinishDateByStartAndWork(task.get(Tsk.START), task.get(Tsk.DURATION)));
50    summary.getChildren().add(task);
51}
52
53// Save the Project
54project.save(dataDir + "Aspose\\WritingUpdatedTaskDataToMpp.mpp", SaveFileFormat.MPP);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.