Hello Team,
I am working on integrating my custom scheduling engine backend with the DHTMLX Gantt chart frontend. I am running into a visualization challenge where the UI plots a single continuous bar, causing visual conflicts when a task is started out of sequence (violating an FS constraint).
I want to replicate the standard Primavera P6 visualization, where the past (actual) portion of a task is a solid color and the remaining (forecasted) portion is a different color (e.g., red for critical remaining work), often appearing as two adjacent bars within the same timeline row.
Scenario Example
Consider three chained tasks: Task A → Task B → Task C, all with a Finish-to-Start (FS) constraint.
Task ID: A, Status: Completed, Planned Start: Mon, Nov 25, Actual Start: Mon, Nov 25, Planned End: Tue, Nov 26, Dynamic/Scheduled Start: Mon, Nov 25, Dynamic/Scheduled End: Tue, Nov 26
Task ID: B, Status: Started, Planned Start: Wed, Nov 27, Actual Start: Mon, Nov 25 (Early), Planned End: Wed, Nov 27, Dynamic/Scheduled Start: Wed, Nov 27, Dynamic/Scheduled End: Fri, Nov 29
Task ID: C, Status: N/A, Planned Start: Thu, Nov 28, Actual Start: N/A, Planned End: Fri, Nov 29, Dynamic/Scheduled Start: Sat, Nov 30, Dynamic/Scheduled End: Sun, Dec 1
- My scheduler calculates Task B’s logical start as Nov 27th (respecting the FS link to A).
- However, Task B physically started early on Nov 25th (
actual_start). - My current DHTMLX implementation plots a single bar from Nov 25th to Nov 29th, which looks visually “early” on the chart timeline and overlaps with Task A’s time slot.
Desired Behavior (P6 Style)
I want the visual representation of Task B to show two distinct sections on the timeline:
- A blue “actual work” bar segment from Nov 25th to the current data date.
- A red “remaining work” bar segment from the current data date (or the logical start of Nov 27th) to the Nov 29th end date.
I am also attaching an image of this scenario, please let me know if this is possible to split task with two different color based on the above discussed logic. Thanks
