Arbeiten mit benutzerdefinierten Barstilen
Überblick
In Microsoft Project können Benutzer die Visualisierung von benutzerdefinierten Balken -Styles definieren, um die Visualisierung zu verbessern oder bestimmte Arten von Aufgaben hervorzuheben. Dies beinhaltet das Ändern des Aussehens von Balken (Start, Mitte, Ende), Hinzufügen von benutzerdefinierten Farben, Anpassung Formen und Konfigurieren Textbezeichnungen Um Aufgabenbalken.
Aspose.Tasks FÜR .NET unterstützt diese Anpassungsstufe über die “GanttBarStyle” -Klasse. Damit können Entwickler programmgesteuert steuern, wie jede Aufgabe (oder Gruppe von Aufgaben) im renderierten Gantt -Diagramm -Bild angezeigt wird, wodurch Berichterstattung und visuelle Analyse aussagekräftiger werden.
Definieren eines benutzerdefinierten Barstils
Um einen neuen Stil für eine bestimmte Aufgabe oder eine bestimmte Aufgabe zu definieren, müssen Sie:
- Erstellen Sie eine neue Instanz von
ganttbarstyle
. - Setzen Sie Eigenschaften wie “ShowFortaskuid”, “Middleshape”, “startshape”, “endshape”, “fillcolor” und andere.
- Fügen Sie den Stil der Kollektion “ImagesSaveOptions.Barstyles” hinzu, bevor Sie sie rendern.
Tip: The
ShowForTaskUid
property specifies which task UID this style applies to. You can also apply a style globally by omitting it.
Beispiel: Wenden Sie den benutzerdefinierten Stil auf eine bestimmte Aufgabe an
1static void ImplementCustomBarStyle()
2{
3 Project project = new Project("New Project.mpp");
4 project.RootTask.Children.Add("Task");
5
6 GanttChartView view = project.DefaultView as GanttChartView;
7 GanttBarStyle custom = GetCustomBarStyle();
8
9 // Add the custom bar style to the custom bar collection of the project view
10 view.CustomBarStyles.Add(custom);
11
12 MPPSaveOptions options = new MPPSaveOptions();
13 options.WriteViewData = true;
14
15 project.Save("ImplementCustomBarStyle_out.mpp", options);
16}
17
18static GanttBarStyle GetCustomBarStyle()
19{
20 GanttBarStyle style = new GanttBarStyle();
21 style.ShowFor = "1";
22 style.MiddleShape = GanttBarMiddleShape.RectangleBottom;
23 style.MiddleFillPattern = GanttBarFillPattern.MediumFill;
24 style.MiddleShapeColor = Color.Blue;
25
26 style.StartShape = GanttBarEndShape.ArrowDown;
27 style.StartShapeColor = Color.Red;
28
29 style.EndShape = GanttBarEndShape.ArrowUp;
30 style.EndShapeColor = Color.Yellow;
31
32 style.LeftField = Field.TaskResourceNames;
33 style.RightField = Field.TaskName;
34 style.TopField = Field.TaskStart;
35 style.BottomField = Field.TaskFinish;
36 style.InsideField = Field.TaskDuration;
37
38 return style;
39}
Reading Existing Custom Bar Styles
Aspose.Tasks also allows reading the GanttBarStyle
objects from existing MPP files. This can be useful if you need to analyze or replicate the styling applied in Microsoft Project.
Example: Read All Custom Styles from a Project
1Project project = new Project("New Project.mpp");
2
3GanttChartView view = project.DefaultView as GanttChartView;
4Console.WriteLine("Custom bar styles count: {0}", view.CustomBarStyles.Count);
5
6GanttBarStyle style1 = view.CustomBarStyles[0];
7
8Console.WriteLine("Style1.LeftField is TaskDurationText : {0}", style1.LeftField.Equals(Field.TaskDurationText));
9Console.WriteLine("Style1.RightField is TaskResourceNames : {0}", style1.RightField.Equals(Field.TaskResourceNames));
10Console.WriteLine("Style1.TopField is TaskACWP: {0}", style1.TopField.Equals(Field.TaskACWP));
11Console.WriteLine("Style1.BottomField is Undefined : {0}", style1.BottomField.Equals(Field.Undefined));
12Console.WriteLine("Style1.InsideField is Undefined : {0}", style1.InsideField.Equals(Field.Undefined));
13
14GanttBarStyle style2 = view.CustomBarStyles[1];
15Console.WriteLine("Style2.LeftField is TaskActualWork : {0}", style2.LeftField.Equals(Field.TaskActualWork));
16Console.WriteLine("Style2.RightField is TaskActualCost : {0}", style2.RightField.Equals(Field.TaskActualCost));
17Console.WriteLine("Style2.TopField is Undefined : {0}", style2.TopField.Equals(Field.Undefined));
18Console.WriteLine("Style2.BottomField is Undefined : {0}", style2.BottomField.Equals(Field.Undefined));
19Console.WriteLine("Style2.InsideField is Undefined : {0}", style2.InsideField.Equals(Field.Undefined));
20
21GanttBarStyle style3 = view.CustomBarStyles[2];
22Console.WriteLine("Style3.LeftField is TaskPercentComplete : {0}", style3.LeftField.Equals(Field.TaskPercentComplete));
23Console.WriteLine("Style3.RightField is TaskPercentWorkComplete : {0}", style3.RightField.Equals(Field.TaskPercentWorkComplete));
24Console.WriteLine("Style3.TopField is Field.TaskActive : {0}", style3.TopField.Equals(Field.TaskActive));
25Console.WriteLine("Style3.BottomField is TaskActualCost : {0}", style3.BottomField.Equals(Field.TaskActualCost));
26Console.WriteLine("Style3.InsideField is Field.TaskActualDuration : {0}", style3.InsideField.Equals(Field.TaskActualDuration));
27
28Console.WriteLine("Style3.StartShape is HouseDown : {0}", style3.StartShape.Equals(GanttBarEndShape.HouseDown));
29Console.WriteLine("Style3.StartShapeType is Framed : {0}", style3.StartShapeType.Equals(GanttBarType.Framed));
30Console.WriteLine("Style3.StartShapeColor is Red : {0}", style3.StartShapeColor.Equals(Color.FromArgb(Color.Red.ToArgb())));
31
32Console.WriteLine("Style3.EndShape is CircleDiamond : {0}", style3.EndShape.Equals(GanttBarEndShape.CircleDiamond));
33Console.WriteLine("Style3.EndShapeType is Solid : {0}", style3.EndShapeType.Equals(GanttBarType.Solid) );
34Console.WriteLine("Style3.EndShapeColor is Yellow : {0}", style3.EndShapeColor.Equals(Color.FromArgb(Color.Yellow.ToArgb())));
35
36Console.WriteLine("Style3.MiddleShape is RectangleTop : {0}", style3.MiddleShape.Equals(GanttBarMiddleShape.RectangleTop));
37Console.WriteLine("Style3.MiddleFillPattern is SolidFill : {0}", style3.MiddleFillPattern.Equals(GanttBarFillPattern.SolidFill));
38Console.WriteLine("Style3.EndShapeColor is Red : {0}", style3.MiddleShapeColor.Equals(Color.FromArgb(Color.Red.ToArgb())));
Häufige Anwendungsfälle
Benutzerdefinierte Balkenstile werden häufig verwendet, um:
- Meilensteine, kritische Aufgaben oder Zusammenfassungsaufgaben optisch hervorzuheben.
- Farbcodierung für verschiedene Teams oder Abteilungen.
- Aufgaben dynamisch anhand benutzerdefinierter Felder (Text1, Ressourcennamen usw.) zu kennzeichnen.
- Verspätete Aufgaben durch einzigartige Farben oder Formen hervorzuheben.
Zusammenfassung
Aspose.Tasks für .NET bietet über die Klasse „GanttBarStyle“ die volle Kontrolle über die Visualisierung von Aufgaben in Gantt-Diagrammen. Ob Sie einen neuen Bericht erstellen oder Microsoft Project-Ausgaben replizieren – die API ermöglicht die präzise Steuerung von Formen, Farben, Textbeschriftungen und Stillogik.