data.addColumn('datetime', 'Date');
data.addColumn('string', 'Description');
data.addColumn('string', 'Category');
data.addColumn('number', 'Amount');
data.addRows([
[new Date(2014, 6, 13),'CRATE AND BARREL #344', 'Merchandise',232.00],
[new Date(2010, 4, 4),'HILTON HOTELS', 'Lodging', 252.99],
[new Date(2010, 0, 22),'LIBERTY VETERINARY RICHMOND VA', 'Other',56.23],
[new Date(2010, 9, 6),'REGAL SHORT PUMP RICHMOND VA', 'Entertainment',24.50],
[new Date(2010, 0, 17),'RICHMOND TIMES DISPATCH', 'Other',18.00],
[new Date(2010, 7, 12),'MARRIOTT RICHMOND VA', 'Lodging',645.67],
]);
// Create a range slider, passing some options
var dateRangeSlider = new google.visualization.ControlWrapper({
'controlType': 'DateRangeFilter',
'containerId': 'filter_div',
'options': {
'filterColumnLabel': 'Date',
'ui': { 'format': { 'pattern': 'yyyy' } },
}
});
// Create a pie chart, passing some options
var pieChart = new google.visualization.ChartWrapper({
'chartType': 'PieChart',
'containerId': 'chart_div',
'options': {
'width': 600,
'height': 600,
'pieSliceText':'none'
}
});
// Create a table chart, passing some options
var tableChart = new google.visualization.ChartWrapper({
'chartType': 'Table',
'containerId': 'table_div',
'options': {
}
});
// use a "ready" event handler on the BarChart to aggregate the data for the PieCharts
google.visualization.events.addListener(tableChart, 'ready', function () {
var dt = tableChart.getDataTable();
var catGroup = google.visualization.data.group(dt, [{
type:'string',
label:dt.getColumnLabel(2),
column: 2,
}],[{
type: 'number',
label: dt.getColumnLabel(3),
column: 3,
aggregation: google.visualization.data.sum
}
]);
pieChart.setDataTable(catGroup);
pieChart.draw();
});
// Create a dashboard.
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard_div'));
// Establish dependencies, declaring that 'filter' drives 'pieChart',
// so that the pie chart will only display entries that are let through
// given the chosen slider range.
dashboard.bind(dateRangeSlider, [tableChart]);
var formatter = new google.visualization.NumberFormat(
{prefix: '$',fractionDigits: 2});
formatter.format(data,3); // Apply formatter to second column
// Draw the dashboard.
dashboard.draw(data);
}
</script>
</head>
<body>
<!--Div that will hold the dashboard-->
<div id="dashboard_div">
<button onClick="changeRange1mo();">1 month</button>
<button onClick="changeRange3mo();">3 months</button>
<button onClick="changeRange6mo();">6 months</button>
<button onClick="changeRange6mo();">12 months</button>
<button onClick="changeRange24mo();">24 months</button>
<button onClick="changeRange36mo();">36 months</button>
<button onClick="changeRange48mo();">48 months</button>
<button onClick="changeRangeYTD();">YTD</button>
<!--Divs that will hold each control and chart-->
<div id="filter_div"></div>
<div id="chart_div"></div>
<div id="table_div"></div>
</div>
</body>
</html>