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:

  1. Erstellen Sie eine neue Instanz von ganttbarstyle.
  2. Setzen Sie Eigenschaften wie “ShowFortaskuid”, “Middleshape”, “startshape”, “endshape”, “fillcolor” und andere.
  3. 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:

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.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.