假设我在dc.js中创建的数据表看起来像:
╔═══╦════════════╦═════════════╗
║ ║ Name ║ Amount ║
╠═══╬════════════╬═════════════╣
║ 1 ║ Bob ║ 25 ║
║ 2 ║ Sam ║ 25 ║
║ 3 ║ Steve ║ 50 ║
╚═══╩════════════╩═════════════╝
如何在底部创建小计?
╔═══╦════════════╦═════════════╗
║ ║ Name ║ Amount ║
╠═══╬════════════╬═════════════╣
║ 1 ║ Bob ║ 25 ║
║ 2 ║ Sam ║ 25 ║
║ 3 ║ Steve ║ 50 ║
╚═══╩════════════╩═════════════╝
Total is equal to 100
════════════════════════════════
任何帮助将不胜感激。
答:
我最终将以下代码添加到数据表中以使其工作。
.renderlet(function (d) { return UpdateSummary(d); });
在函数“UpdateSummary”中,我更新了文本“Total is equal 100”
答案 0 :(得分:2)
如果您共享代码,我可以更具体地帮助您。这是我的建议。
dc.js使用crossfilter组来设置表的数据。无论您在此表格中设置哪个组(在.group()
方法中)都说
var helperArray = myGroup.all(),
total = 0;
helperArray.forEach(function(d) {total += d.value.amount;})
// console.log(d) to see what d is. it might need to just be total+= d.value
d3.select("body").append("p") //this should be changed to make it the right spot
.text("Total is equal to " + total)
这样的事情。