sort点击列头排序

2485
0

luojr 初学数据Lv2

发表于2022-5-26 17:54

楼主
本帖最后由 luojr 于 2022-6-10 18:01 编辑

在列头的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代替,使之维持内存计算。
效果展示如下:


表头排序还有许多的神奇使用方法,欢迎各路大佬前来补充噢~

最近看过此主题的会员

esen_4VQRCU24ZG

ddb

esen_4XH2QRUZD7

v笑向前走

17621200023

zhouchengsh

esen_54QLBDONW4

esen_4TUELCHD9M

0个回答

只看楼主

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号