Travailler avec les tâches

Parfois, il n’est pas possible d’achever une tâche selon le calendrier prévu, et elle doit être scindée en deux ou plusieurs parties. Microsoft Project prend en charge la division des tâches, et Aspose.Tasks pour .NET fournit la même fonctionnalité par programmation.

Fractionnement des tâches

La SplitParts propriété exposée par la Task classe est utilisée pour déterminer les parties scindées d’une tâche tandis que SplitTask méthode exposée par la ResourceAssignment classe est utilisée pour diviser une seule tâche en plusieurs parties. SplitParts renvoie une collection de parties scindées tandis que la méthode SplitTask accepte des arguments de date de début, date de fin et de calendrier pour scinder la tâche.

Fractionnement et affichage des tâches dans Microsoft Project

Dans Microsoft Project, vous pouvez scinder une tâche comme suit :

  1. Sélectionnez une tâche longue que vous souhaitez diviser.
  2. Dans l’onglet Task onglet, dans le Schedule groupe, cliquez sur Split Task.
  3. Cliquez au point de la barre de la tâche où vous souhaitez que la scission se produise.

Les tâches scindées sont affichées dans la vue Gantt Chart et sont liées par une ligne pointillée.

Exemple : création et fractionnement d’une tâche

L’exemple suivant montre comment créer un projet, ajouter une tâche, affecter une ressource et scinder la tâche par programmation :

 1// Create new project
 2Project splitTaskProject = new Project();
 3
 4// Get a standard calendar
 5Calendar calendar = splitTaskProject.Get(Prj.Calendar);
 6
 7// Set project's calendar settings
 8splitTaskProject.Set(Prj.StartDate, new DateTime(2000, 3, 15, 8, 0, 0));
 9splitTaskProject.Set(Prj.FinishDate, new DateTime(2000, 4, 21, 17, 0, 0));
10
11// Add a new task to root task
12Task rootTask = splitTaskProject.RootTask;
13rootTask.Set(Tsk.Name, "Root");
14Task taskToSplit = rootTask.Children.Add("Task1");
15taskToSplit.Set(Tsk.Duration, splitTaskProject.GetDuration(3));
16
17// Create a new resource assignment and generate timephased data
18ResourceAssignment splitResourceAssignment = splitTaskProject.ResourceAssignments.Add(taskToSplit, null);
19splitResourceAssignment.TimephasedDataFromTaskDuration(calendar);
20
21// Split the task into 3 parts.
22// Provide start date and finish date arguments to SplitTask method which will be used for split
23splitResourceAssignment.SplitTask(new DateTime(2000, 3, 16, 8, 0, 0), new DateTime(2000, 3, 16, 17, 0, 0), calendar);
24splitResourceAssignment.SplitTask(new DateTime(2000, 3, 18, 8, 0, 0), new DateTime(2000, 3, 18, 17, 0, 0), calendar);
25splitResourceAssignment.Set(Asn.WorkContour, WorkContourType.Contoured);
26
27splitTaskProject.Save("CreateSplitTasks_out.xml", SaveFileFormat.XML);

Exemple : affichage des tâches scindées

L’exemple suivant montre comment identifier les tâches scindées dans un projet et afficher leurs détails dans la console :

 1Project project = new Project("New Project.mpp");
 2
 3// Access task 
 4Task splitTask = project.RootTask.Children.GetById(4);
 5
 6// Display split parts of task
 7SplitPartCollection collection = splitTask.SplitParts;
 8foreach (SplitPart splitPart in collection)
 9{
10    Console.WriteLine("Index: " + splitPart.Index + " Start: " + splitPart.Start + " Finish: " + splitPart.Finish);
11}

Points clés

Foire aux questions

Q : Une tâche peut-elle comporter plus de deux scissions ?

Q : Le fractionnement affecte-t-il la durée de la tâche ?

Q : Les tâches scindées peuvent-elles être fusionnées ?

Q : Cette fonctionnalité est-elle prise en charge pour les tâches récurrentes ?

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.