多列排序

编辑
文档创建者:印然 (67260 )     浏览次数:8818次     编辑次数:11次     最近更新:jiangsr 于 2018-09-13     

1. 描述编辑

上一节中介绍了点击数据列标题实现升序降序排序,那么,如果有多个列想实现这样的升序降序功能呢。
即点击订单ID是根据订单ID升序排序,再点击订单ID则根据订单ID降序排序,接着点击运货费则根据运货费升序排序,以此类推。

2. 思路编辑

由上一节的扩展后排序来实现,即点击数据列标题时,将该数据列所在单元格作为参数传递过去,在扩展后排序公式中接收该参数,根据参数的不同,实现不同的排序,下面详细介绍。

3. 示例编辑

3.1 数据准备
添加数据库查询,SQL语句为:SELECT EMPID,EMPNAME,BIRTHDATE,HEIGHT FROM EMPLOYEE limit 10,如下图所示:
222
3.2 报表设计
报表设计如下,将EMPID,EMPNAME,BIRTHDATE,HEIGHT字段分别拖到A3,B3,C3,D3单元格,如下图:
222
3.3 超级链接参数设置
1)选中A2单元格,右键,选择超级链接,添加一个动态参数,增加2个参数,如下图:
222
参数a的意义在于,点击一次超级链接就替换一次a的值,那么在下面进行排序就可以根据a的值来决定是升序还是降序。
参数asc是要排序的单元格,注意:它的值类型是字符串
2)选中D2单元格,进行相同操作,如下图:
222
3)选中C2单元格,因为C3是时间类型的原因,因此动态参数设置如下:
222
其中asc参数为:tointeger(format(C3,'yyyyMMddHHmmss'))
若是时间类型仅包含年月日,则参数为:tointeger(replace(C3,"-",""))
注:此处虽然填的是公式,但参数类型仍是字符串
第二列是字符串类型,无法动态排序
3.4 扩展后排序
选中A3单元格,在单元格属性>扩展属性中选择扩展后,选中升序,输入公式if($a==1,eval($asc),eval($asc)*-1),如下图:
222
3.5 效果查看
点击分页预览,效果如下:
222
已完成模板,详情可参照:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\GroupReport\多列排序.cpt

4. 移动端效果编辑

app效果:
222
h5效果:
222

附件列表


主题: 专题总结
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗? [ 去社区提问 ]