[]
        
(Showing Draft Content)

정렬

간트 시트(GanttSheet)는 프로젝트 전반에 걸쳐 작업을 효율적으로 정리할 수 있도록 정렬 기능을 제공합니다. GC.Spread.Sheets.GanttSheet.Project 클래스의 sort 메서드를 사용하여 데이터를 정렬할 수 있습니다.


SpreadJS는 간트 시트 데이터를 다양한 방식으로 정렬하고 순서를 지정할 수 있도록 지원합니다. 이러한 정렬 옵션을 사용하면 프로젝트의 특정 요구에 따라 간트 시트에 표시되는 작업을 조정할 수 있습니다.

오름차순 정렬

작업 또는 리소스를 가장 낮은 값에서 가장 높은 값으로 정렬합니다 (A → Z, 1, 2, 3 …).

다음 코드 샘플은 taskNumber 필드를 오름차순으로 정렬하는 방법을 보여줍니다.

// taskNumber 필드를 오름차순 정렬
ganttSheet.project.sort(["taskNumber"], [true]);    

내림차순 정렬

작업 또는 리소스를 가장 높은 값에서 가장 낮은 값으로 정렬합니다 (Z → A, … 3, 2, 1).

다음 코드 샘플은 taskNumber 필드를 내림차순으로 정렬하는 방법을 보여줍니다.

// taskNumber 필드를 내림차순 정렬
ganttSheet.project.sort(["taskNumber"], [false]);

개요 구조 유지

간트 시트는 원래의 작업 트리 구조를 유지하면서 작업을 정렬할 수 있습니다. 이 경우 하위 작업과 상위 작업 간의 관계가 유지되며, 하위 작업은 여전히 해당 상위 작업에 연결된 상태로 유지됩니다. 개요 구조를 유지하지 않고 정렬하는 것도 가능합니다.

다음 코드 샘플은 taskNumber 필드를 내림차순으로 정렬하되, 구조는 유지하지 않는 경우를 보여줍니다.

// taskNumber 필드를 내림차순 정렬, 구조는 유지하지 않음
ganttSheet.project.sort(["taskNumber"], [false], false);

SpreadJS는 플랫(flat) 정렬도 지원하지만, 이는 간트 시트의 원래 작업 트리 구조를 무너뜨립니다. 또한 그룹 데이터도 무시됩니다.

간트 시트가 플랫 정렬된 후에는 다음과 같은 작업이 제한됩니다:

  • 루트 노드는 정렬에 포함되지 않음

  • 개요 구조를 유지하지 않고 정렬하는 경우, 프로젝트는 임시 상태가 됨. 따라서:

    • 접기/펼치기 동작이 금지됨

    • 들여쓰기/내어쓰기 불가

    • 작업 번호 재지정 불가

작업 번호 영구 재지정

간트 시트 정렬은 일시적이거나 영구적일 수 있습니다. 영구 정렬 시, 새로운 순서에 따라 작업 ID 번호가 재지정됩니다.

정렬 상태를 데이터베이스에 반영하려면 모든 작업을 재번호화할 수 있습니다. 작업 번호를 재지정하려면 개요 구조 유지 옵션이 활성화되어 있어야 합니다.

다음 코드 샘플은 taskNumber 필드를 내림차순으로 정렬하되, 구조를 유지하지 않고 새로운 정렬 순서에 따라 작업 번호를 재지정하는 예를 보여줍니다.

// taskNumber 필드를 내림차순 정렬, 구조를 유지하지 않으며 작업 번호를 재지정
ganttSheet.project.sort(["taskNumber"], [false], true, true);

아래 GIF는 다양한 정렬 동작을 시연합니다.

Ask ChatGPT


image