WebDataRocks中Running totals不随数据排序更新问题咨询
WebDataRocks累计值排序后不更新的解决方法
当前使用runningtotals("valFat")计算累计值时,计算逻辑基于原始数据的排序,而非用户手动调整后的行顺序,导致点击列排序后,累计值无法匹配当前行序列。
解决思路
要让累计值跟随当前行排序动态更新,需调整累计值的计算逻辑:
- 基于已聚合的度量值(而非原始字段)进行累计计算
- 在
runningtotals函数中明确指定行维度,确保计算范围与当前视图的行顺序绑定
修改后的代码
JavaScript部分
var pivot = new WebDataRocks({ container: "#wdr-component", toolbar: true, height: 490, report: { dataSource: { data: getData() }, slice: { rows: [{ uniqueName: "cliente","sort":"asc"}], columns: [{uniqueName: "anno","sort":"desc"}, {uniqueName: "Measures"}], measures: [ { uniqueName: "FatAnno", formula: 'sum("valFat")', format: "formatInt", caption:"Fat", "active":true }, { uniqueName: "FatRTAnno", // 改用已计算的度量FatAnno,并指定行维度cliente formula: 'runningtotals("FatAnno", "cliente")', format: "formatInt", caption:"Cumulative", "active":true } ] }, formats: [ { name: "formatInt", decimalPlaces: 0, } ], } }); function getData() { return [ { anno: 2025, cliente:'Mario', valFat: 1 }, { anno: 2024, cliente:'Mario', valFat: 2 }, { anno: 2025, cliente:'Aldo', valFat: 3 }, { anno: 2024, cliente:'Aldo', valFat: 4 }, { anno: 2025, cliente:'Giulio', valFat: 5 }, { anno: 2024, cliente:'Giulio', valFat: 6 } ]; }
HTML部分
<link href="https://cdn.webdatarocks.com/latest/webdatarocks.min.css" rel="stylesheet"/> <script src="https://cdn.webdatarocks.com/latest/webdatarocks.toolbar.min.js"></script> <script src="https://cdn.webdatarocks.com/latest/webdatarocks.js"></script> <div id="wdr-component"></div>
说明
修改后的runningtotals("FatAnno", "cliente")会基于当前视图中cliente维度的排序顺序,对已聚合的FatAnno值进行累计计算,点击列排序后,累计值会自动跟随行顺序更新,匹配当前视图的序列。
内容的提问来源于stack exchange,提问作者Stefano
相关产品推荐
相关产品推荐

