我一直在学习使用谷歌图表,到目前为止,我没有问题。然而,最近我尝试使用甘特图并出现了一个问题。我设法用SQL服务器提供的数据正确绘制图表。但是,如果单击图表实体,我想提醒所选实体的ID。
我了解Google图表有这个getSelection()函数和Event Handler。但是,当我尝试实现它时,数组返回空(在控制台中写入[{}})。我甚至使用了谷歌图表的例子,但它仍然返回空数组。
这是我使用的代码:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script>
google.charts.load('current', {'packages':['gantt']});
google.charts.setOnLoadCallback(drawChart);
function daysToMilliseconds(days) {
return days * 24 * 60 * 60 * 1000;
}
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Task ID');
data.addColumn('string', 'Task Name');
data.addColumn('date', 'Start Date');
data.addColumn('date', 'End Date');
data.addColumn('number', 'Duration');
data.addColumn('number', 'Percent Complete');
data.addColumn('string', 'Dependencies');
data.addRows([
['Research', 'Find sources',
new Date(2015, 0, 1), new Date(2015, 0, 5), null, 100, null],
['Write', 'Write paper',
null, new Date(2015, 0, 9), daysToMilliseconds(3), 25, 'Research,Outline'],
['Cite', 'Create bibliography',
null, new Date(2015, 0, 7), daysToMilliseconds(1), 20, 'Research'],
['Complete', 'Hand in paper',
null, new Date(2015, 0, 10), daysToMilliseconds(1), 0, 'Cite,Write'],
['Outline', 'Outline paper',
null, new Date(2015, 0, 6), daysToMilliseconds(1), 100, 'Research']
]);
var options = {
height: 275
};
var chart = new google.visualization.Gantt(document.getElementById('chart_div'));
// When the table is selected, update the orgchart.
google.visualization.events.addListener(chart, 'select', function()
{
var obj = chart.getSelection();
alert(obj[0].column);
});
chart.draw(data, options);
}
</script>
<div id="chart_div"></div>
这是jsfiddle:https://jsfiddle.net/2ku7tzex/1/#&togetherjs=cjVlbdFhV3
有人知道我做错了吗?
先谢谢!
答案 0 :(得分:0)
这个https://jsfiddle.net/hrtgp54r/为我解决了这个问题。
Public Sub CopySelectedSheets()
Dim Sh As WorkSheet
Dim stopDate As Date
stopDate = Sheets("Org. & Staff Basic Data").Range("C19").Value
For Each Sh In ActiveWindow.SelectedSheets
If Date >= stopDate Then
MsgBox "This code cannot be executed after " & stopDate
Exit For
Else
Sh.Copy
End If
Next Sh
End Sub