Travailler avec les tâches
Parfois, il n’est pas possible de terminer une tâche comme prévu et il doit être divisé en deux pièces ou plus. Aspose.Tasks prennent en charge cette fonction de projet Microsoft.
Tâches de division
La propriété SplitParts exposée par la classe Tâche est utilisée pour déterminer les parties divisées d’une tâche tandis que la méthode SplitTask exposée par la classe de réaction de ressources est utilisée pour diviser une seule tâche en plusieurs parties. SplitParts renvoie une collection de pièces divisées tandis que la méthode SplitTask accepte la date de début, la date de fin et les arguments de calendrier pour diviser la tâche.
Les tâches de fractionnement et de visualisation dans Microsoft Project
Pour diviser une tâche dans le projet Microsoft:
- Identifiez une longue tâche et vous souhaitez diviser.
- Dans le menu Tâche, sélectionnez le groupe Schedule et cliquez sur Tâche de séparation.
- Cliquez sur la position que vous souhaitez diviser la tâche.
Pour voir les tâches divisées dans Microsoft Project, on peut sélectionner Gantt Chart dans le menu View. Les tâches divisées sont liées par une ligne pointillée.
Tâches divisées dans Microsoft Project
Tâche de création et de division
Pour créer et diviser une tâche, suivez ces étapes:
- Créer un nouveau projet.
- Créez et affectez un nouveau calendrier au projet.
- Créez et ajoutez une nouvelle tâche dans le projet.
- Créez et ajoutez une nouvelle affectation de ressources dans le projet.
- Utilisez la méthode SplitTask exposée par la classe ResourceSignment pour diviser la tâche.
- Écrivez le nouveau projet sur le disque.
Le code suivant montre comment accomplir ces tâches:
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(SplitTasks.class);
4
5// Create new project
6Project splitTaskProject = new Project();
7
8// Get a standard calendar
9Calendar calendar = splitTaskProject.get(Prj.CALENDAR);
10
11// Set project's calendar settings
12java.util.Calendar cal = java.util.Calendar.getInstance();
13cal.set(2011, 3, 15, 8, 0, 0);
14splitTaskProject.set(Prj.START_DATE, cal.getTime());
15cal.set(2011, 3, 21, 17, 0, 0);
16splitTaskProject.set(Prj.FINISH_DATE, cal.getTime());
17
18// root task
19Task rootTask = splitTaskProject.getRootTask();
20rootTask.set(Tsk.NAME, "Root");
21
22// Add a new task
23Task taskToSplit = rootTask.getChildren().add("Task1");
24taskToSplit.set(Tsk.DURATION, splitTaskProject.getDuration(3));
25
26// Create a new resource assignment
27ResourceAssignment splitResourceAssignment = splitTaskProject.getResourceAssignments().add(taskToSplit, null);
28
29// Generate resource assignment timephased data
30splitResourceAssignment.timephasedDataFromTaskDuration(calendar);
31
32// Split the task into 3 parts.
33// Provide start date and finish date arguments to SplitTask method
34// These dates will be used for split
35// Set project's calendar settings
36cal = java.util.Calendar.getInstance();
37java.util.Calendar cal2 = java.util.Calendar.getInstance();
38
39cal.set(2011, 3, 16, 8, 0, 0);
40cal2.set(2011, 3, 16, 17, 0, 0);
41splitResourceAssignment.splitTask(cal.getTime(), cal2.getTime(), calendar);
42cal.set(2011, 3, 18, 8, 0, 0);
43cal2.set(2011, 3, 18, 17, 0, 0);
44splitResourceAssignment.splitTask(cal.getTime(), cal2.getTime(), calendar);
45splitResourceAssignment.set(Asn.WORK_CONTOUR, WorkContourType.Contoured);
46
47// Save the Project
48splitTaskProject.save(dataDir + "Project.Xml", SaveFileFormat.XML);