Sortieren Sie Aufgaben nach Spalte im Gantt -Diagramm

Überblick

Bei der Erbringung von Gantt -Diagrammen ist es häufig nützlich, Aufgaben in einer bestimmten Reihenfolge - nach Startdatum, Priorität, Dauer oder benutzerdefinierten Feldern - und nicht nach ihrer Standard -Aufgaben -ID anzuzeigen. ASSOSPE.TASKS FÜR .NET können Sie benutzerdefinierte Sortierlogik anwenden, bevor Sie mithilfe der Delegierten “SaveOptions.TasksComparer” rendern.

Dies ermöglicht die Sortierung von Aufgaben nach in der Gantt -Diagrammansicht definierte Spalte, sodass sichergestellt wird, dass die endgültige visuelle Ausgabe mit den Berichten oder den Präsentationsanforderungen übereinstimmt.

Aspose.Tasks FÜR .NET bietet die Möglichkeit, Aufgaben nach einer Spalte in der Gantt -Diagrammansicht zu sortieren. Dies wird mit Hilfe der Vergleichsmethode Saveoptions.TasksComparer vor dem Rendern der Gantt -Tabelle erreicht. Die Standardvergliederung sortiert Aufgaben nach Aufgaben -ID, wenn keine andere Option angegeben ist.

Standard gegen benutzerdefinierte Aufgabensortierung

Standardmäßig werden die Aufgaben in einem Projekt in der Reihenfolge ihrer task.id übertragen. Um dieses Verhalten zu überschreiben, können Sie der Eigenschaft tasksComparer eine benutzerdefinierte" icparer “zuweisen.

Beispiele für Felder, die Sie möglicherweise sortieren möchten:

Beispiel: Aufgaben nach Startdatum sortieren

Das folgende Beispiel zeigt, wie Aufgaben nach ihrer “Start” -Spertion sortiert werden, bevor sie sich auf ein Bild befassen.

 1class SortTasksByColumnInGanttChart
 2{
 3    public static void Run()
 4    {
 5        Project project = new Project("New Project.mpp");
 6        SaveOptions options = new PdfSaveOptions();
 7        options.Timescale = Timescale.Months;
 8
 9        options.TasksComparer = new TasksNameComparer();
10        project.Save("SortedByNames_out.pdf", options);
11
12        options.TasksComparer = new TasksDurationComparer();
13        project.Save("SortedByDurations_out.pdf", options);
14    }
15
16    public class TasksNameComparer : IComparer<Task>
17    {
18        public int Compare(Task x, Task y)
19        {
20            return x.Get(Tsk.Name).CompareTo(y.Get(Tsk.Name));
21        }
22    }
23
24    public class TasksDurationComparer : IComparer<Task>
25    {
26        public int Compare(Task x, Task y)
27        {
28            Duration durX = x.Get(Tsk.Duration);
29            Duration durY = y.Get(Tsk.Duration);
30            return durX.TimeSpan.CompareTo(durY.TimeSpan);
31        }
32    }
33}

Custom Comparer Implementation

Below is a simple custom comparer you can plug into SaveOptions.TasksComparer:

1class SortByStartDate : IComparer<Task>
2{
3    public int Compare(Task x, Task y)
4    {
5        return DateTime.Compare(x.Get(Tsk.Start), y.Get(Tsk.Start));
6    }
7}

Assign the comparer:

1var options = new ImageSaveOptions(SaveFileFormat.Png)
2{
3    TasksComparer = new SortByStartDate()
4};
5project.Save("sorted-output.png", options);

Summary

Using TasksComparer, you can fully control how tasks are ordered in the rendered Gantt chart, providing flexibility for reporting, printing, or visual analysis.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.