Gantt 차트에서 작업을 열별로 정렬하십시오

개요

Gantt 차트를 렌더링 할 때 기본 작업 ID가 아닌 특정 순서 (시작 날짜, 우선 순위, 지속 시간 또는 사용자 정의 필드)로 작업을 표시하는 것이 종종 유용합니다. aspose.tasks for .net을 사용하면saveoptions.taskscomparer 대의원을 사용하기 전에 사용자 정의 정렬 로직를 적용 할 수 있습니다.

이를 통해 Gantt 차트보기에 정의 된 모든 열 별로 정렬 작업을 수행하여 최종 시각적 출력이보고 또는 프레젠테이션 요구와 일치 할 수 있습니다.

aspose.tasks for .net은 Gantt 차트보기의 모든 열별로 작업을 정렬 할 수있는 기능을 제공합니다. 이는 Gantt 차트에서 렌더링하기 전에 비교 방법 SaveOptions.taskscomparer의 도움으로 이루어집니다. 기본 비교는 다른 옵션이 지정되지 않은 경우 작업 ID별로 작업을 정렬합니다.

기본 대 사용자 정의 작업 정렬

기본적으로 프로젝트의 작업은task.id의 순서대로 렌더링됩니다. 이 동작을 무시하기 위해 사용자 정의icomparer <avect>를 ’taskscomparer’속성에 할당 할 수 있습니다.

필드의 예 : 다음과 같이 정렬 할 수 있습니다.

예 : 시작 날짜별로 작업을 정렬하십시오

다음 예제는 이미지를 렌더링하기 전에 ‘시작’속성으로 작업을 정렬하는 방법을 보여줍니다.

 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.