Afficher plusieurs colonnes dans l'image du graphique Gantt rendu
Aperçu
Dans Microsoft Project, les données du projet sont non seulement disponibles dans le formulaire textuel, mais peuvent également être affichées graphiquement en tant que graphique. Les types de graphiques les plus populaires sont le graphique Gantt, l’utilisation des tâches et l’utilisation des ressources. Aspose.Tasks pour .NET prend en charge le rendu des données de projet à un graphique.
Cet article décrit deux approches qui permet de personnaliser les colonnes de projet à inclure dans un graphique Gantt et montre comment rendre le graphique à une image.
Gantt Chart
Un graphique Gantt est une représentation graphique des tâches du projet décomposées par des jours, des semaines ou des mois. Un projet est composé de tâches affectées à différentes ressources. Une tâche individuelle peut être divisée en sous-tâches dans le cadre de la gestion des tâches. Chaque tâche a une date de début et une date de fin qui détermine sa durée. Un graphique Gantt dans le projet Microsoft donne une vue rapide de ces données de projet. Cette capture d’écran montre un graphique Gantt typique dans le projet Microsoft:
Image du graphique Gantt dans Aspose.Tasks pour .net
Dans Aspose.Tasks pour .NET, la classe de projet est la classe principale pour gérer les fichiers de projet. La classe de projet expose différentes surcharges si “Enregistrer” la méthode d’exportation de données de projet vers différents formats de fichiers. Les utilisateurs peuvent configurer cette méthode pour exporter des données de projet vers n’importe quel format pris en charge en passant par des paramètres.
Par exemple, envisagez de surcharger enregistrer (chaîne, sauvegarde).
- Le premier paramètre est le nom du fichier de destination.
- Le deuxième et le plus important paramètre accepte l’un des héritiers de la classe SaveOptions. Par exemple, pour le format PDF, on peut passer PDFSaveOptions.
Type de sauvegarde
Le comportement de rendu peut être personnalisé à l’aide de propriétés de la classe SaveOptions (ou l’un de ses héritiers). Par exemple, la taille de la page du document de sortie peut être définie à l’aide de la propriété SaveOptions.CustomPageSize ou SaveOptions.legendonEachPage peut être définie pour définir si une légende doit être affichée sur chaque page.
1PDFSAVEOPTIONS SAVEOPTIONS = NOUVEAU PDFSaveOptions ()
2{
3 CustomPageSize = new sizef (800, 600),
4 LegendonEachPage = False
5};
Il y a au moins deux approches pour personnaliser l’apparence du graphique rendu.
Personnaliser les colonnes Gantt Chart à l’aide de ProjectView Type
Veuillez noter que c’est un moyen obsolète de personnaliser l’apparence et il est moins probable qu’il soit étendu ou amélioré à l’avenir. La classe ProjectView a une fonctionnalité limitée et peut être utilisée pour afficher des colonnes spécifiques dans l’image de sortie. Un constructeur de cette classe prend une liste de tableaux de la classe GanttchartColumn comme argument. L’instance ProjectView résultante doit être définie comme une valeur de la propriété SaveOptions.View. L’exemple de code montre comment il fonctionne:
1// Créer les colonnes de vue
2var colonnes = new list <GanttChartColumn> ();
3colonnes.add (new GantTChartColumn ("Name", 100, new TaskToColumnTextConverter (TaskName)));
4colonnes.add (new GantTchartColumn ("Notes", 100, new TaskToColumnTextConverter (taskNotes)));
5colonnes.add (new GantTchartColumn ("Resources", 200, new TaskToColumnTextConverter (TaskResources)));
6// Créez la vue
7ProjectView projectView = new ProjectView (colonnes);
8
9// Créer des sauvegardes
10PDFSAVEOPTIONS SAVEOPTIONS = NOUVEAU PDFSaveOptions ()
11{
12 CustomPageSize = new sizef (800, 600),
13 View = ProjectView
14};
15
16// Enregistrez le projet sur PDF.
17project.save ("output.pdf", sauvegarde);
Le constructeur de la classe GanttchartColumn prend trois arguments - le nom de la colonne, la largeur et un délégué taskToColumnTextConverter - pour convertir les données de la tâche en texte de colonne. Dans l’exemple de code ci-dessus, le délégué TaskToColumnTextConverter appelle trois méthodes cibles, TaskName, TaskNotes et TaskResources, pour convertir les données dans ces colonnes en texte. Les trois méthodes sont implémentées dans l’exemple de code suivant.
1/// <résumé>
2/// convertit les données de nom d'une tâche en texte de colonne.
3/// </summary>
4/// <param name = "tâche"> tâche actuelle. </param>
5/// <retourne> Texte de la colonne. </ retourne>
6Nom de tâche de chaîne privée (tâche de tâche)
7{
8 StringBuilder res = new StringBuilder ();
9 pour (int i = 1; i <task.outlinelevel; i ++)
10 {
11 res.append ("");
12 }
13
14 res.AppendFormat("{0}. {1}", task.Id, task.Name);
15 return res.ToString();
16}
17
18/// <résumé>
19/// convertit les données de nom d'une tâche en texte de colonne.
20/// </summary>
21/// <param name = "tâche"> tâche actuelle. </param>
22/// <retourne> Texte de la colonne. </ retourne>
23TaskNameHTML de chaîne privée (tâche)
24{
25 StringBuilder res = new StringBuilder ();
26 pour (int i = 1; i <task.outlinelevel; i ++)
27 {
28 res.append ("");
29 }
30
31 res.AppendFormat("{0}. {1}", task.Id, task.Name);
32 return res.ToString();
33}
34
35/// <résumé>
36/// convertit les données des notes d'une tâche en texte de colonne.
37/// </summary>
38/// <param name = "tâche"> tâche actuelle. </param>
39/// <retourne> Texte de la colonne. </ retourne>
40Tâches de chaîne privée (tâche de tâche)
41{
42 if (task.noteStExt! = null)
43 retour tâche.noteStExt;
44 autre
45 return String.Empty;
46}
47
48/// <résumé>
49/// convertit les données de ressources d'une tâche en texte de colonne.
50/// </summary>
51/// <param name = "tâche"> tâche actuelle. </param>
52/// <retourne> Texte de la colonne. </ retourne>
53TaskResources de tâche privée (tâche)
54{
55 StringBuilder res = new StringBuilder ();
56 Project Project = Task.ParentProject;
57 bool bFirst = true;
58 foreach (Affectation de l'insignment de ressources dans project.getResourceSignmentsByTask (tâche))
59 {
60 if (affectation.resource! = null)
61 {
62 si (! bfirst)
63 {
64 res.append (",");
65 }
66
67 res.Append(assignment.Resource.Name);
68 bFirst = false;
69 }
70 }
71
72 return res.ToString();
73}
Ce qui suit est l’image et l’image HTML produite avec l’exemple de code:
Personnaliser les colonnes Gantt Chart à l’aide de la vue de vue
La classe de vue d’utilisation et ses héritiers est un moyen recommandé de personnaliser les graphiques lors de la création de données de projet. La classe de vue correspond aux paramètres de vue utilisés dans MS Project (qui sont stockés dans le fichier MPP) et ont fourni une API plus riche par rapport à l’API de ProjectView. Les propriétés disponibles de la classe de vue peuvent être trouvées dans référence de l’API. La vue existante peut être prise (pour les projets chargés à partir du fichier MPP avec des vues enregistrées par Microsoft Project), personnalisées et transmises à Project.Save Méthode comme démontré dans l’extrait de code suivant:
1Project Project = nouveau projet ("input.mp"));
2
3// Obtenez la vue existante.
4var View = (GanttchartView) project.views.getByName ("& Gantt Chart");
5
6// Définissez et insérez une nouvelle colonne à la vue.
7TableField Field = New TableField ()
8{
9 AlignData = stringalignment.far,
10 Largeur = 50,
11 Field = field.taskname,
12 Title = "Nom de la tâche"
13};
14
15View.Table.TableFields.insert (1, champ);
16PDFSAVEOPTIONS SAVEOPTIONS = NOUVEAU PDFSaveOptions ()
17{
18 ViewSettings = View
19};
20
21project.save ("output.pdf", sauvegarde);