dc.js - 如何将Totals添加到dataTable?

时间:2013-06-23 12:27:46

标签: d3.js crossfilter dc.js

假设我在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”

1 个答案:

答案 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)

这样的事情。