HTMLcopy
1
<div id="container"></div>
CSScopy
6
1
html, body, #container {
2
width: 100%;
3
height: 100%;
4
margin: 0;
5
padding: 0;
6
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function() {
2
3
var data = [
4
{"id": "1", "name": "Phase 1 - Strategic Plan", "progressValue": "14%", "actualStart": 951350400000, "actualEnd": 951609600000},
5
{"id": "2", "name": "Self-Assessment", parent:"1", "progressValue": "25%", "actualStart": 951350400000, "actualEnd": 951782400000},
6
{"id": "3", "name": "Define business vision", parent:"2", "progressValue": "0%", "actualStart": 951408000000, "actualEnd": 951440400000, "connectTo": "4", "connectorType": "FinishStart"},
7
{"id": "4", "name": "Identify available skills, information and support", parent:"2", "progressValue": "0%", "actualStart": 951494400000, "actualEnd": 951526800000, "connectTo": "5", "connectorType": "FinishStart"},
8
{"id": "5", "name": "Decide whether to proceed", parent:"2", "progressValue": "0%", "actualStart": 951609600000, "actualEnd": 951696000000, "connectTo": "6", "connectorType": "FinishStart"},
9
{"id": "6", "name": "Define the Opportunity", parent:"1", "progressValue": "27%", "actualStart": 951696000000, "actualEnd": 951782400000}
10
];
11
12
var treeData = anychart.data.tree(data, anychart.enums.TreeFillingMethod.AS_TABLE);
13
14
var chart = anychart.ganttProject();
15
chart.data(treeData);
16
chart.splitterPosition(300);
17
18
var dataGrid = chart.dataGrid();
19
var firstColumn = dataGrid.column(1);
20
firstColumn.width(120);
21
var customColumn = dataGrid.column(2);
22
23
customColumn.title("Duration");
24
customColumn.width(120);
25
// Sets column formats.
26
customColumn.format(customColumnFormat);
27
28
var columnStyle = customColumn.cellTextSettings();
29
columnStyle.useHtml(true);
30
columnStyle.fontColor("blue");
31
32
chart.container("container");
33
chart.draw();
34
chart.fitAll();
35
36
//define a custom content with actual start values
37
function customColumnFormat(item){
38
var start = item.get("actualStart");
39
var end = item.get("actualEnd");
40
var duration = end - start;
41
var hours = duration/1000/60/60;
42
if (hours>24){
43
return hours + " hours <a style='color: #7c868e;'>(" + (hours/24).toFixed(0) + " days)<a>";
44
}else{
45
return hours + " hours";
46
}
47
}
48
});