1. 概述
为了方便用户查看数据时,通过点击列头便捷切换排序效果。
2. 使用说明
2.1排序按钮实现排序
场景1:固定报表的排序
地区 | 人数 |
湖北 | =100000 |
湖南 | =300000 |
广东 | =200000 |
计算后的效果,如下图:通过点击标题“人数”实现快速排序。
场景2:浮动报表的排序
例如取个人周报表主题表(FACT_GRZB),按请假工时快速排序展示;
序号 | 员工ID | 请假工时 |
# | =FACT_GRZB.USERID_ | =FACT_GRZB.QJGS |
计算效果如下:通过点击标题”请假工时”可以切换升/降序。
注意:表头“排序”按钮,针对客户端当前页排序,适合一页展示的浮动表或者固定报表,快速排序。
2.2万能式钻取实现排序
一些复杂效果的排序实现,在属性“钻取设置”中的“万能式”使用sort()函数,点击列头时会对报表进行排序。函数的原型为sort("range=xx;sortcol=xx;seqcol=xx"):
range | 表示要排序的表元。通常是一个指标表元数组。 |
sortcol | 表示要排序的列。可以是数字,也可以是字母。默认是排序表元所在的列。range和sortcol只需指定一个。0-base. |
seqcol | 表示报表中的序号列。默认是序号表元(即文字为"#"的表元)所在的列。 如果没有,则为-1. |
inclient | 指定在客户端排序,还是服务器端排序。 为true时,在客户端排序,为false时在服务器端排序,如果不指定,那么根据报表的结构自动判断。 在要排序的表头使用万能式钻取:sort("inclient=false")即可解决奇偶行颜色各异排序后显示不正确情况。 |
场景3:全量数据实现排序
基于场景2,计算出的数据分页了,需要在全量数据实现排序效果。可以在表格标题的“属性”中配置万能式钻取,钻取表达式:sort("inclient=false")
点击标题“请假工时”时,会重新计算页面实现排序,如下图会有重新计算的效果。
场景4:浮动表格奇偶行颜色各异
基于场景3,选中浮动行(表格的第二行),在高级属性中增加背景颜色if(MOD(row(),2)=1,'#5AC8FA','#FFFFFF'),表头排序还是使用万能式,钻取表达式:sort("inclient=false")
计算效果如下,
注意:如果使用表头的排序按钮,间隔色效果会乱,效果如下:新增了一列“自然工时”字段,在表头使用“排序”按钮。
场景5:表格联动统计图时的排序
使用表头排序按钮会在客户端排序,不会同步更新统计图的,如果想排序时统计图中的数据也变化,需要在表头万能式使用sort("inclient=false"),Inclient:为true时,在客户端排序,为false时在服务器端排序。
基于场景4,添加统计图,展示员工请假工时情况统计图,横轴取“员工id”,纵轴展示“请假工时”。
通过点击表头的万能式钻取,可以实现排序并且同步刷新统计图数据。
点击使用“排序”按钮的“自然工时”标题,统计图不变化
场景6:表头设置锁定行列的排序
基于场景5在报表设置行列锁定B2(第一行第一列)后,表头“排序”和万能式钻取排序效果一样,都是服务器端计算.
如下图,点击“自然工时”标题排序效果。
场景7:表内表元相加获取值的排序
基于场景6,新增一列“工时合计”,取“请假工时”和“自然工时”,在标题“工时合计”单元格设置万能式钻取:sort("inclient=true")
设置的inclient=true,所以如下图是客户端当前页计算效果。
场景8:表头所有列都按指定列排序
如下图,选中多列表头的单元格,点击万能式,配置钻取表达式:sort("range=H2;inclient=true"),range:表示要排序的表元;
点击“工时合计”表头升序,页面是按“请假工时”升序。
【注意事项】表头“排序”按钮,只是客户端当前页排序,涉及多页、奇偶行颜色各异等效果必须在服务器端排序,使用万能式钻取。
请先登录