Rendre les graphiques de Gantt avec Aspose.Tasks pour Java

Microsoft Project permet aux utilisateurs de définir l’échelle de temps dans laquelle un graphique Gantt est affiché. (L’échelle de temps est indiquée en haut de la vue du graphique de Gantt.) Ils peuvent avoir jusqu’à trois niveaux d’échelle de temps pour leur donner exactement la résolution temporelle dont ils ont besoin.

Aspose.Tasks pour Java prend en charge cette fonctionnalité et vous permet de rendre des graphiques Gantt avec différents paramètres de temps. Les graphiques Gantt peuvent être rendus à une image d’une page à l’aide de ces options.

Définition des échelles de temps et enregistrer sur une image

La propriété ImagesVeOptions Class ‘Timescale détermine les paramètres d’échelle d’un projet. L’échelle de temps est définie sur des jours par défaut. Les autres options sont du mois et du tiers des mois.

L’exemple de code suivant:

  1. Lit un fichier de projet.
  2. Définit chaque paramètre de temps différent.
  3. Enregistre le fichier sur le disque en JPG.
 1Project Project = nouveau projet ("newproductdev.mp");
 2// Enregistrer sur une image d'une page (Timescale.Days par défaut)
 3project.save ("newproductdevdays.jpeg", new ImagesVeOptions (sauvegardefileFormat.jpeg));
 4// Enregistrer sur une image de page (Timescale.Trautof Months)
 5ImagesVeOptions Options = new ImagesVeOptions (SaveFileFormat.jpeg);
 6options.SetTimescale (Timescale.ThirdsofMonths);
 7project.save ("newproductdevthirdsofmonths.jpeg", options);
 8// Enregistrer sur une image d'une page (Timescale.months)
 9options.SetTimescale (Timescale.months);
10project.save ("newproductdevmonths.jpeg", options);

Roulage des barres Gantt pendant le rendu

Si la propriété SAVEOPTIONS.ROLLUPGANTTBARS est définie sur true, toute tâche de résumé du projet est marquée par ses sous-tâches visibles, en gardant en compte la propriété Task.Hidebar lors du rendu. (Si tâche.hidebar = true, la barre n’est pas rendue sur le graphique Gantt.) Si SaveOptions.RollupGantTbars = FALSE, la sous-tâche sera affichée sur la tâche de résumé de toute façon, à condition que la sous-tasse.isrollup et la sous-taste.parentTask.isrollup soient définies. De plus, si SaveOptions.DrawnonWorkingTime (valeur par défaut = true) est défini sur False, le temps de travail ne sera pas affiché sur le graphique Gantt.

Exemple 1

 1PDFSaveOptions Options = new PDFSaveOptions ();
 2options.presentationformat = présentationformat.ganttchart;
 3options.fitContent = true;
 4options.RolLupGantTbars = false;
 5options.DrawnonWorkingTime = false;
 6options.pagesize = pagesize.a3;
 7String file = path.combine (Common.TestDatapath + "Rendering \\", nom de fichier);
 8String resFile = path.Chaute (resultefolder, filename.replace (". MPP", ".pdf"));
 9Project Project = nouveau projet (fichier); // Nous pouvons lire un projet sans le ProjectReader maintenant.
10project.save (resfile, options);

Sortie de l’exemple 1

Exemple PDF du graphique Gannt

Exemple 2

Dans cet exemple, SaveOptions.RolLupGantTbars = true, SaveOptions.DrawnonWorkingTime = true et task.hidebar = false pour les tâches cachées.

1PDFSaveOptions Options = new PDFSaveOptions ();
2options.setPresentationFormat (présentationformat.ganttchart);
3options.setfitContent (true);
4options.setRollUpGantTbars (false);
5options.setDrawNonWorkingTime (false);
6options.SetPageSize (pagesize.a3);
7Project Project = nouveau projet ("RollupGantTbars.MPP"); // Nous pouvons lire un projet sans le ProjectReader maintenant.
8project.save ("rollupganttbars.pdf", options);

Sortie de l’exemple 2

Exporter MPP comme Gannt Chart PDF

Personnalisation du texte avec des barres de tâche

Dans cet exemple, le texte à droite de la barre de tâche peut être personnalisé par instance déléguée. Ici, nous personnalisons du texte sur les tâches critiques.

 1long oneec = 10000000; // microseconde * 10
 2Long Onemin = 60 * ONEec;
 3long onehour = 60 * Onemin;
 4Project Project = nouveau projet ();
 5Tâche tâche1 = project.addtask ("tâche 1");
 6Tâche tâche2 = project.addtask ("tâche 2");
 7double dduration = onehour * 8.0 * 3.0; // 3 jours tâches
 8tâche1.setDuration ((long) dduration);
 9tâche1.setDuration ((long) dduration);
10TaskLink Link = new TaskLink (Task1, Task2, TaskLinkType.FinishTostart);
11project.addtasklink (lien);
12Tâche tâche3 = project.addtask ("tâche 3");
13Ressource rsc1 = project.AddreSource ("Resource 1");
14Ressource rsc2 = project.AddreSource ("Resource 2");
15Ressource rsc3 = project.AddreSource ("Resource 3");
16project.AddreSourceAsSignment (Task1, RSC1);
17project.AddreSourceAsSignment (Task2, RSC2);
18project.AddreSourceAsSignment (Task3, RSC3);
19Options de sauvegarde = new PDFSaveOptions ();
20options.SetTimescale (Timescale.ThirdsofMonths);
21Barstyle Style = New Barstyle ();
22Style.SetItemType (BaritemType.CriticalTask);
23style.setbartextConverter (new Barsty.TaskTobarTextConverter () {
24  @Outrepasser
25  Public String Invoke (tâche de tâche) {
26     return "tâche" + tâche.getName () + "est sur le chemin critique";
27  }
28});
29Barstyle Style2 = new Barstyle ();
30style2.setBarColor (Color.DarkGray);
31Style2.SetItemType (BaritemType.Task);
32options.setBarstyles (new ArrayList <barstyle> ());
33options.getBarstyles (). Add (style);
34options.getBarstyles (). Add (style2);
35project.save ("result2.pdf", options);

Aligner le contenu des cellules

Le texte peut être aligné par les propriétés GanttchartColumn.Stringalignment, ResourceViewColumn.Stringalignment. L’alignement par défaut est Stringalignment.near (gauche).

 1Project Project = nouveau projet ("Renderme.mp"); // Projet de test joint
 2Options de sauvegarde = new PDFSaveOptions ();
 3options.SetTimescale (Timescale.months);
 4options.setView (projectView.getDefaultGantTchartView ());
 5GantTchartColumn Col = (GanttChartColumn) Options.getView (). GetColumns (). Get (2); // as ganttchartColumn;
 6Col.SetStringalignment (1); // centre
 7Col = (GanttChartColumn) OptionS.getView (). getColumns (). get (3);
 8Col.SetStringalignment (2); // loin
 9Col = (GanttChartColumn) OptionS.getView (). getColumns (). get (4);
10Col.SetStringalignment (2); // loin
11project.save ("résultat ganttchart.pdf", options);
12options.setPresentationFormat (présentationFormat.ResourCesheet);
13ResourceViewColumn Col1 = (ResourceViewColumn) options.getView (). GetColumns (). Get (2);
14COL1.SETSTRINGALIGNMENT (1);
15Col1 = (ResourceViewColumn) options.getView (). getColumns (). get (3);
16COL1.SetStringAlignment (2);
17Col1 = (ResourceViewColumn) options.getView (). getColumns (). get (4);
18COL1.SetStringAlignment (2);
19project.save ("Result ResourceSheet.pdf", Options);

Changer Gantt Chart Bars Color Gradient

Microsoft Project permet aux utilisateurs de rendre la sortie des graphiques Gantt en utilisant des couleurs de gradient. Les mêmes fonctionnalités sont fournies par Aspose.Tasks que dans l’exemple de code suivant.

1Project Project = nouveau projet ("newproductdev.mp");
2Options de sauvegarde = new XAMLOPTIONS ();
3options.setUsegradIentBrush (false);
4project.save ("solide.xaml", options);
5options.setUsegradIentBrush (true);
6project.save ("gradient.xaml", options);

Réglage de la date de début de la vue du graphique de Gantt

La propriété TimesCalestart exposée par la classe PRJ permet de définir la date de début de la vue du graphique Gantt. Cependant, si le fichier enregistré est ouvert par MSP en mode fenêtre maximisée, la date de début de l’échelle ne correspondra pas.

1Project Project = nouveau projet ("rel_constr.mp");
2project.set (prj.timescale_start, nouvelle date (115, 2, 3));
3project.save ("temp.MPP", SaveFileFormat.mp);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.