Zeigen Sie mehrere Spalten im Rendered Gantt -Diagrammbild an
Überblick
Im Microsoft -Projekt sind Projektdaten nicht nur im Textformular verfügbar, sondern können auch als Diagramm grafisch angezeigt werden. Die beliebtesten Diagrammtypen sind Gantt -Diagramm, Aufgabenverbrauch und Ressourcenverbrauch. Aspose.Tasks für .NET unterstützt das Rendern von Projektdaten in ein Diagramm.
Dieser Artikel beschreibt zwei Ansätze, mit denen die Anpassung von Projektspalten in ein Gantt -Diagramm aufgenommen werden kann, und zeigt, wie das Diagramm auf ein Bild rendert.
Gantt -Diagramm
Ein Gantt -Diagramm ist eine grafische Darstellung von Projektaufgaben, die nach Tagen, Wochen oder Monaten unterteilt sind. Ein Projekt besteht aus Aufgaben, die verschiedenen Ressourcen zugeordnet sind. Eine individuelle Aufgabe kann als Teil des Aufgabenmanagements in Unteraufgaben unterteilt werden. Jede Aufgabe hat ein Startdatum und ein Enddatum, das ihre Dauer bestimmt. Ein Gantt -Diagramm im Microsoft -Projekt gibt eine kurze Ansicht solcher Projektdaten. Dieser Screenshot zeigt ein typisches Gantt -Diagramm im Microsoft -Projekt:
Gantt -Diagrammbild in Aspose.Tasks für .NET
In Asis.Tasks für .NET ist die Projektklasse die Hauptklasse für die Behandlung von Projektdateien. Die Projektklasse enthält verschiedene Überladungen, wenn die Methode “Speichern” zum Exportieren von Projektdaten in verschiedene Dateiformate. Die Benutzer können diese Methode so konfigurieren, dass Projektdaten in ein unterstütztes Format exportieren, indem sie Parameter übergeben.
Betrachten Sie beispielsweise die Überlastung von Speichern (Zeichenfolge, Speichernoptionen).
- Der erste Parameter ist der Zieldateiname.
- Der zweite und wichtigste Parameter akzeptiert einen der Erben der Saveoptions -Klasse. Zum Beispiel kann für das PDF -Format PDFSaveOptions bestehen.
SAVEOPTIONS Type
Das Rendering -Verhalten kann mithilfe von Eigenschaften der SaveOptions -Klasse (oder eines seiner Erben) angepasst werden. Beispielsweise kann die Seitengröße des Ausgabedokuments mit SaveOptions.Custompagesizesize oder SaveOptions.LegendoneachPage festgelegt werden.
1PdfsaveOptions saveOptions = new pdfsaveOptions ()
2{
3 CustomPageSize = New Sizef (800, 600),
4 Legendoneachpage = false
5};
Es gibt mindestens zwei Ansätze, um das Erscheinungsbild des gerenderten Diagramms anzupassen.
Passen Sie die Spalten von Gantt -Diagrammspalten mit dem ProjectView -Typ an an **
Bitte beachten Sie, dass es sich um eine veraltete Möglichkeit handelt, das Erscheinungsbild anzupassen, und es ist weniger wahrscheinlich, dass es in Zukunft erweitert oder verbessert wird. Die ProjectView -Klasse verfügt über begrenzte Funktionen und kann verwendet werden, um bestimmte Spalten im Ausgabebild anzuzeigen. Ein Konstruktor dieser Klasse nimmt eine Array -Liste der GanttchartColumn -Klasse als Argument. Die resultierende Projektview -Instanz sollte als Wert der SaveOptions.view -Eigenschaft festgelegt werden. Der Beispielcode zeigt, wie er funktioniert:
1// Erstellen Sie die Spalten anzeigen
2var columns = neue Liste <ganttchartColumn> ();
3columns.add (neuer ganttchartcolumn ("name", 100, neuer tasktocolumntextConverter (taskname)));
4columns.add (neuer ganttchartColumn ("Notes", 100, New TaskTocolumntextConverter (TaskNotes)));
5Columns.Add (New GanttchartColumn ("Ressourcen", 200, New TaskTocolumntextConverter (TaskResources)));
6// Erstellen Sie die Ansicht
7ProjectView projectView = new ProjectView (Spalten);
8
9// Speicheroptionen erstellen
10PdfsaveOptions saveOptions = new pdfsaveOptions ()
11{
12 CustomPageSize = New Sizef (800, 600),
13 View = ProjectView
14};
15
16// Speichern Sie das Projekt in PDF.
17project.save ("output.pdf", SaveOptions);
Der Konstruktor der GanttchartColumn -Klasse nimmt drei Argumente - den Spaltennamen, die Breite und einen Delegierten TaskTocolumntextConverter - zum Konvertieren von Aufgabendaten in Spaltentext. Im obigen Code -Beispiel ruft TaskToColumntextConverter -Delegate drei Zielmethoden auf, Taskname, Tasknotes und TaskResources, um die Daten in diesen Spalten in Text umzuwandeln. Die drei Methoden werden im folgenden Code -Beispiel implementiert.
1/// <summary>
2/// konvertiert die Namensdaten einer Aufgabe in Spaltentext.
3/// </summary>
4/// <param name = "task"> aktuelle Aufgabe. </param>
5/// <zurückgegeben> Spalte Text. </retektiert>
6private String -Taskname (Aufgabe)
7{
8 StringBuilder res = new StringBuilder ();
9 für (int i = 1; i <task.outlinevel; i ++)
10 {
11 Res.Append ("");
12 }
13
14 res.AppendFormat("{0}. {1}", task.Id, task.Name);
15 return res.ToString();
16}
17
18/// <summary>
19/// konvertiert die Namensdaten einer Aufgabe in Spaltentext.
20/// </summary>
21/// <param name = "task"> aktuelle Aufgabe. </param>
22/// <zurückgegeben> Spalte Text. </retektiert>
23private String tasknamehtml (Task -Aufgabe)
24{
25 StringBuilder res = new StringBuilder ();
26 für (int i = 1; i <task.outlinevel; i ++)
27 {
28 Res.Append ("");
29 }
30
31 res.AppendFormat("{0}. {1}", task.Id, task.Name);
32 return res.ToString();
33}
34
35/// <summary>
36/// konvertiert die Notizendaten einer Aufgabe in Spaltentext.
37/// </summary>
38/// <param name = "task"> aktuelle Aufgabe. </param>
39/// <zurückgegeben> Spalte Text. </retektiert>
40private String tasknotes (Aufgabe)
41{
42 if (task.notEstext! = null)
43 return task.notestext;
44 anders
45 return String.Empty;
46}
47
48/// <summary>
49/// konvertiert die Ressourcendaten einer Aufgabe in Spaltentext.
50/// </summary>
51/// <param name = "task"> aktuelle Aufgabe. </param>
52/// <zurückgegeben> Spalte Text. </retektiert>
53private String taskResources (Aufgabe)
54{
55 StringBuilder res = new StringBuilder ();
56 Projektprojekt = Task.ParentProject;
57 bool bfirst = true;
58 foreach (Ressourcenassignment -Zuordnung in Project.getResourceAsSsignmentsByTask (Aufgabe))
59 {
60 if (adjectment.resource! = null)
61 {
62 if (! bfirst)
63 {
64 Res.Append (",");
65 }
66
67 res.Append(assignment.Resource.Name);
68 bFirst = false;
69 }
70 }
71
72 return res.ToString();
73}
Im Folgenden finden Sie das Bild und das HTML -Bild, das mit dem Beispielcode erstellt wurde:
Passen Sie Gantt -Diagramm -Spalten mit dem Ansichtstyp an an **
Die Nutzungsansichtsklasse und seine Erben sind eine empfohlene Möglichkeit, Diagramme beim Rendern von Projektdaten anzupassen. Die Ansichtsklasse entspricht den im MS -Projekt verwendeten Ansichteinstellungen (die in der MPP -Datei gespeichert sind) und stellten im Vergleich zur API von ProjectView eine reichhaltigere API bereit. Die verfügbaren Eigenschaften der View -Klasse finden Sie in API -Referenz. Die vorhandene Ansicht kann (für Projekte, die aus der MPP -Datei geladen wurden, mit von Microsoft Project gespeicherten Ansichten), angepasst und an Project.Save -Methode übergeben, wie im folgenden Code -Snippet gezeigt:
1Projektprojekt = neues Projekt ("input.mpp"));
2
3// Bestehende Ansicht erhalten.
4var view = (ganttchartView) project.views.getbyname ("& gantt chart");
5
6// Definieren und fügen Sie die neue Spalte in die Ansicht ein und setzen Sie sie ein.
7Tablefield field = new tablefield ()
8{
9 AlignData = Stringalignment.far,,
10 Breite = 50,,
11 Field = field.taskname,
12 Title = "Aufgabename"
13};
14
15view.table.tablefields.insert (1, Feld);
16PdfsaveOptions saveOptions = new pdfsaveOptions ()
17{
18 Views = Ansicht
19};
20
21project.save ("output.pdf", SaveOptions);