如何让Web Data Rocks透视表的月份列按自然顺序排序?
解决Web Data Rocks透视表月份自然顺序排序问题
要实现月份按1月到12月的自然顺序排列,核心是给月份维度指定自定义排序规则,以下是两种可行方案:
方案一:直接在透视表配置中定义排序顺序
无需修改数据源,在初始化透视表的report.slice配置里,针对月份维度设置sorting.customList,按自然顺序列出所有月份:
new WebDataRocks({ container: "#wdr-component", toolbar: true, report: { dataSource: { filename: "datatest.json" }, slice: { rows: [ // 其他行维度配置 { uniqueName: "month", // 替换为你数据源中月份字段的真实名称 sorting: { type: "custom", customList: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] } } ], // columns/measures等其他配置 } } });
注意事项:
- 确保
uniqueName与你datatest.json中的月份字段名完全一致 - 如果月份是放在
columns维度中,把上述配置移到columns数组对应的项即可
方案二:通过数据源添加排序字段(适合需复用排序逻辑的场景)
在datatest.json的每条数据中添加一个monthOrder字段,对应月份的数字序号(1月=1,2月=2...12月=12),比如:
[ {"month": "3月", "monthOrder": 3, "value": 100}, {"month": "1月", "monthOrder": 1, "value": 200}, // 其他数据项 ]
然后在透视表配置中,将月份维度的排序依据设为monthOrder:
new WebDataRocks({ container: "#wdr-component", toolbar: true, report: { dataSource: { filename: "datatest.json" }, slice: { rows: [ { uniqueName: "month", sorting: { type: "asc", by: "monthOrder" // 按新增的排序字段升序排列 } } ], // 其他配置 } } });
两种方案都能实现月份的自然顺序排列,推荐方案一,无需改动数据源更便捷。
内容的提问来源于stack exchange,提问作者grabrep gg
相关产品推荐
相关产品推荐

