타임라인의 추가 요소
이 기능은 PRO 에디션에서만 사용할 수 있습니다
기본적으로 dhtmlxGantt는 타임라인 요소를 다음 순서로 레이어로 렌더링합니다:
- 타임라인의 그리드
- 링크
- 작업(Task)
- 추가 요소
Gantt에는 베이스라인, 마감일(Deadlines), 시간 제약(Constraints)과 같은 내장 요소가 포함되어 있습니다. 기본 제공되는 추가 요소 외에도 사용자 정의 요소를 추가 레이어로 생성할 수 있습니다.
베이스라인(Baselines)
베이스라인은 Gantt 차트와 같은 프로젝트 관리 도구에서 계획된 일정과 실제 진행 상황을 비교할 수 있도록 해주는 중요한 역할을 합니다. Gantt API는 베이스라인을 기본적으로 지원하여 이 핵심 기능을 쉽게 사용할 수 있도록 합니다.

베이스라인 커스터마이징
기본 베이스라인 옵션이 프로젝트 요구에 맞지 않는 경우, baselines 설정 옵션을 사용하여 비활성화할 수 있습니다.
gantt.config.baselines = false;
비활성화한 후에는 다음 방법 중 하나로 베이스라인의 표시 방식을 커스터마이즈할 수 있습니다:
- gantt.config.baselines 설정 객체 사용
이 객체를 객체 형태로 지정하면 베이스라인의 렌더링 방식을 조정할 수 있습니다. 주요 속성은 다음과 같습니다:
- datastore (string) - 베이스라인 항목을 저장할 데이터스토어의 이름입니다. 관련 내용은
getDatastore메서드를 참고하세요. - render_mode (boolean | string) - 베이스라인 표시 방식을 제어합니다:
false- 베이스라인을 숨깁니다."taskRow"- 베이스라인이 작업 바와 같은 행에 표시됩니다."separateRow"- 베이스라인이 별도의 하위 행(subrow)에 표시되어 작업 행의 높이가 증가합니다."individualRow"- 각 베이스라인이 작업 아래에 별도의 하위 행에 표시됩니다.
- dataprocessor_baselines (boolean) - 베이스라인 업데이트 시 DataProcessor가 개별적으로 동작할지 여부를 나타냅니다.
- row_height (number) - 베이스라인용 하위 행의 높이입니다.
render_mode가"separateRow"또는"individualRow"일 때만 적용됩니다. - bar_height (number) - 베이스라인 바의 높이입니다.
예시:
gantt.config.baselines = {
datastore: "baselines",
render_mode: false,
dataprocessor_baselines: false,
row_height: 16,
bar_height: 8
};
gantt.init("gantt_here");
gantt.config.baselines의 표시 설정을 동적으로 변경하는 경우, 베이스라인이 올바르게 표시되도록 adjustTaskHeightForBaselines 메서드 사용을 권장합니다.
const task = gantt.getTask(taskId);
gantt.adjustTaskHeightForBaselines(task); /*!*/
gantt.render();
- 타임라인에 사용자 정의 베이스라인 요소 생성하여 추가
작업과 함께 베이스라인 불러오기
베이스라인은 다음과 같이 작업과 함께 불러올 수 있습니다:
gantt.parse({
tasks: [
{
id: 2,
start_date: "2025-04-04 00:00:00",
duration: 2,
text: "Task #1",
progress: 0.5,
parent: 0,
open: true,
end_date: "2025-04-06 00:00:00",
},
// 추가 작업...
],
links: [],
baselines: [ /*!*/
{ /*!*/
id: 2, /*!*/
task_id: 2, /*!*/
start_date: "2025-04-03 00:00:00", /*!*/
duration: 2, /*!*/
end_date: "2025-04-05 00:00:00", /*!*/
}, /*!*/
// 추가 베이스라인... /*!*/
], /*!*/
});
불러오면 Gantt가 별도의 추가 설정 없이 타임라인에 베이스라인을 자동으로 표시합니다.
작업의 베이스라인 가져오기
특정 작업에 대한 베이스라인은 getTaskBaselines 메서드를 사용하여 가져올 수 있습니다.
gantt.getTaskBaselines(5);
이 메서드는 데이터스토어에서 해당 작업과 연결된 베이스라인 객체 배열을 반환합니다.
[
{
task_id: 5,
id: 1,
duration: 2,
start_date: "03-04-2019 00:00",
end_date: "05-04-2019 00:00"
},
{
task_id: 5,
id: 2,
duration: 1,
start_date: "06-04-2019 00:00",
end_date: "07-04-2019 00:00"
}
]