-
luojr 初学数据Lv2
发表于2022-5-26 17:54
楼主
本帖最后由 luojr 于 2022-6-10 18:01 编辑
注: 现在支持排序的报表是:不浮动的固定报表,和单维纵向浮动的报表。BI4.x版本中和ABI中,需要注意:
①.万能式钻取中不再要带【javascript:】开头。
②.sort函数只能在表格列头表元的钻取链接中使用,不能在按钮等参数的钻取链接中使用,也不能在客户端脚本中使用。
1.示例1:固定报表的排序
效果展示如下:
表头排序还有许多的神奇使用方法,欢迎各路大佬前来补充噢~
在列头的url属性中使用js函数sort,那么点击列头时将会对报表进行排序。函数的原型为sort("range=xx;sortcol=xx;seqcol=xx"):
注: 现在支持排序的报表是:不浮动的固定报表,和单维纵向浮动的报表。BI4.x版本中和ABI中,需要注意:
①.万能式钻取中不再要带【javascript:】开头。
②.sort函数只能在表格列头表元的钻取链接中使用,不能在按钮等参数的钻取链接中使用,也不能在客户端脚本中使用。
1.示例1:固定报表的排序
列头B1表元的链接属性有三种写法:
写法一:
sort("range=B2:B4")
//对b2,b3,b4进行排序
写法二:
sort("sortcol=1");
//对第二列进行排序,会自动过滤固定表元B1
写法三:
sort();
//对排序表元B1所在的列进行排序
2.示例2:浮动报表的排序
列头E1表元的链接属性有两种写法:
写法一:
sort("range=E2;seqcol=0");
//对E2浮动出来的表元进行排序。序号列为第1列(第1列的列号为0),也可以写作"A"。
写法二:
sort();
//对列头E1所在的列进行排序。序号表元为A2。
3.示例3:表中有统计图时的排序
在客户端排序时是不会同步更新统计图的,如果想排序时统计图中的数据也变化,那么要指定inclient=false。
比如:
sort("range=c2;seqcol=0;inclient=false");
//与实例2的链接类似,增加的inclient参数指定要在服务器端排序。
全量排序场景:
在实际业务场景中,我们常常遇到对全量数据进行排序,而不是仅对当前页进行了排序的情况,这时可以使用
sort("inclient=false");可以解决分页时,排序不是全量数据进行排序,而是仅对当前页进行了排序的问题。因为全量数据排序需要是服务器计算,而非内存计算。同时,如果排序列表元表达式中,使用了if语句,则需要case when代替,使之维持内存计算。效果展示如下:
表头排序还有许多的神奇使用方法,欢迎各路大佬前来补充噢~