报表开发技巧之根据点击次数奇偶性排序之数值型

进行排序的时,很多时候我们可能想实现根据点击的次数进行升降序排序,也就是说点击第一次点击标题升序排序,再次点击就降序,以此类推,而不是通过选择升序进行升序排列,选择降序进行降序排列。

示例工具:报表开发工具FineReport

 解决思路
由扩展后排序可知,可以根据参数值的不同来决定升序还是降序,这里也可以此思路进行实现,定义一个参数,如果参数值为1的时候,就升序,参数值为0的时候,按照数据列的负数进行升序排序,即数据列降序。
注:该方法只适用于排序数据列数据类型为数字型的字段,如果数据类型为字符型,请查看根据点击次数奇偶性排序之字符型
下面以一个简单示例进行介绍,模板根据订单ID进行升序降序排列,第一次点击订单ID的时候升序,再次点击时降序,以此类推。
示例
1 打开模板
打开模板: %FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details.cpt
2 超级链接设置
选中A1单元格,右键选择 超级链接,添加一个 动态参数,增加一个动态参数 a,参数值为公式 if($a==1,0,1),如下图:
注:公式的含义是,如果参数a的值为1的时候,点击该超级链接,则将a的值变为0,如果a的值不为1的时候,点击该超级链接,将a的值变为1。
3 排序设置
排序设置有两种设置方式,高级排序和扩展后排序,下面分别介绍着两种方式的设置方式。
  • 高级排序
双击A2单元格,选择 高级,在排序顺序处选择 升序,公式值为 if($a==1,$$$,-$$$),如下图:
注:公式的意义是,如果动态参数值为1,那么就将订单ID按照订单ID升序排序,如果不为1,就按照订单ID的负数进行升序排序,即按照订单ID进行降序排序,由于只有数值型数据才有负数,字符型数据没有负数,故该方法只适用于数值型字段排序。
另:如果是将订单ID按照运货费进行升序降序排序,那么公式应为: if($a==1,运货费,-运货费) ,由于此处排序是设置数据列的排序,则公式中输入的是数据列的名称。
  • 扩展后排序
选中A2单元格,在 单元格属性表>扩展属性中的 扩展后选择升序,值为公式 =if($a==1,A2,-A2),如下图:
注:公式意义同上,此处是根据单元格进行排序,所以公式中输入的是单元格,不是数据列名字。
另:如果需要将订单ID按照运货费进行升序降序排序,那么公式应为: if($a==1,F2,-F2)
4 效果查看
不论是根据高级排序设置,还是扩展后排序设置,设置的效果如下:
已完成模板请参照 %FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\Order_4.cpt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值