Scheduling Direction
Source code
import { GANTT_ALAP_DEMO } from './gantt-advanced-data';
import { loadAdvancedGanttDemo } from './GanttAdvancedVanillaDemo';
export function load(parentSelector: string) {
return loadAdvancedGanttDemo(parentSelector, GANTT_ALAP_DEMO);
}
<template>
<GanttAdvancedDemo :demo="GANTT_ALAP_DEMO" />
</template>
<script setup lang="ts">
import GanttAdvancedDemo from './GanttAdvancedDemo.vue';
import { GANTT_ALAP_DEMO } from './gantt-advanced-data';
</script>
import React from 'react';
import GanttAdvancedDemo from './GanttAdvancedReactDemo';
import { GANTT_ALAP_DEMO } from './gantt-advanced-data';
export default function GanttAlap() {
return <GanttAdvancedDemo demo={GANTT_ALAP_DEMO} />;
}
import { Component, NO_ERRORS_SCHEMA, ViewEncapsulation } from '@angular/core';
import { RevoGrid } from '@revolist/angular-datagrid';
import { GanttAdvancedAngularBase } from './GanttAdvancedAngularBase';
import { GANTT_ALAP_DEMO } from './gantt-advanced-data';
@Component({
selector: 'gantt-alap-grid',
standalone: true,
// Allows Angular demos to bind RevoGrid plugin props that are not wrapper inputs.
schemas: [NO_ERRORS_SCHEMA],
imports: [RevoGrid],
template: `<revo-grid style="min-height: 560px" [theme]="theme" [hideAttribution]="true" [plugins]="plugins" [source]="tasks" [columns]="columns" [gantt]="ganttConfig" [ganttDependencies]="dependencies" [ganttCalendars]="calendars" [ganttResources]="resources" [ganttAssignments]="assignments"></revo-grid>`,
encapsulation: ViewEncapsulation.None,
})
export class GanttAlapGridComponent extends GanttAdvancedAngularBase {
protected readonly demo = GANTT_ALAP_DEMO;
}
Forward scheduling is the default and behaves like Microsoft Project’s ASAP (As Soon As Possible) direction. Automatic tasks are placed as early as their dependencies and constraints allow.
grid.gantt = { scheduling: { scheduleFrom: 'project-start', projectStartDate: '2026-04-06', },};When projectStartDate is set, automatic root tasks start from that anchor unless a dependency or constraint moves them later.
Backward Scheduling (ALAP)
Section titled “Backward Scheduling (ALAP)”Backward scheduling behaves like Microsoft Project’s ALAP (As Late As Possible) project-finish direction:
grid.gantt = { scheduling: { scheduleFrom: 'project-finish', projectFinishDate: '2026-06-30', },};Automatic tasks without successors are placed as late as possible against projectFinishDate; predecessors are pulled earlier to satisfy outgoing dependencies. If projectFinishDate is omitted, the scheduler uses the latest task finish in the current data.
Example: Project Finish Scheduling
Section titled “Example: Project Finish Scheduling”Use project-finish scheduling for ALAP-style plans:
grid.gantt = { scheduling: { scheduleFrom: 'project-finish', projectFinishDate: '2026-04-30', },};
grid.source = [ { id: 'build', name: 'Build', durationDays: 3, }, { id: 'release', name: 'Release', durationDays: 1, },];
grid.ganttDependencies = [{ id: 'build-release', predecessorTaskId: 'build', successorTaskId: 'release', type: 'finish-to-start', lagDays: 0,}];Expected result: release is placed as late as possible against 2026-04-30; build is pulled earlier so the FS relationship remains valid.
See the Project-finish ALAP demo for a visible backward-scheduled chain anchored to a project finish date.