如何在Sisense中实现表格按两列排序或透视表超链接正常显示
Sisense多列排序及透视表超链接解决方案(适用版本:20.21.6.10054)
方案1:普通表格实现双列排序
无需更换为透视表,直接通过表格组件的自定义脚本实现优先按姓名、次级按行为数量排序:
- 进入目标表格的编辑界面,点击顶部「脚本」选项卡
- 粘贴如下自定义代码:
widget.on('processresult', function(widget, args){ args.result.queryResult.values.sort(function(a, b){ // 优先按全名排序,可根据实际字段调整拼接规则 let nameA = a[1] + ' ' + a[2]; // 对应first_name + last_name的列索引 let nameB = b[1] + ' ' + b[2]; if(nameA < nameB) return -1; if(nameA > nameB) return 1; // 姓名相同时按behavior_NO排序 let numA = parseInt(a[3]); // behavior_NO的列索引,根据实际调整 let numB = parseInt(b[3]); return numA - numB; }) })
- 代码调整提示:数组索引从0开始,对应你表格的列顺序依次为id(0)、first_name(1)、last_name(2)、behavior_NO(3)、behavior_link(4),如果你的实际列顺序有变化,请同步修改索引值
- 保存脚本后刷新仪表板即可生效,排序效果完全匹配预期
方案2:透视表超链接正常渲染方案
如果优先选择用透视表实现排序,可通过脚本解决超链接显示为HTML源码的问题:
- 进入透视表编辑界面,点击顶部「脚本」选项卡
- 粘贴如下自定义代码:
widget.on('ready', function(){ $('td.pivot-value').each(function(){ let cellContent = $(this).text(); if(cellContent.startsWith('<a href')){ $(this).html(cellContent); } }) // 监听分页、排序后的重新渲染事件,重复执行超链接转换 widget.on('domready', function(){ $('td.pivot-value').each(function(){ let cellContent = $(this).text(); if(cellContent.startsWith('<a href')){ $(this).html(cellContent); } }) }) })
- 保存脚本后刷新仪表板,透视表中的超链接即可正常显示为可点击跳转的样式,排序直接在透视表的字段排序配置中设置双列排序规则即可
内容的提问来源于stack exchange,提问作者Nadzeya
相关产品推荐
相关产品推荐

