BI-扩展后排序

扩展后排序

顶( 20)



http://www.finereporthelp.com/help/13/15/5.html

最后更新日期: 2015-8-14 有 4人发表评论 (点击查看)
1. 问题描述
若模板中希望按照某列进行排序,而此列是无法用数据集函数还原的即无法使用高级排序进行排序设置,为此FineReport提供了扩展后排序,满足一切排序的需求。
右击 单元格>扩展属性或者选中单元格,在右侧下方的单元格属性表-扩展属性中对扩展后排序进行设置,如在A1单元格中设置扩展后排序>升序,公式中输入B1,则A1单元格会根据B1单元格的计算结果进行排序,如下图:

2.2 产生的问题
由于是对扩展后的数据进行重新排序,只是根据结果改变行的顺序,因此若模板中有通过seq或者&单元格设置序号时,原本生成的序号会在重新排序时打乱。
2.3 解决方
在序号所在的单元格设置条件属性条件属性>新值,在新增的新值处选择公式,输入公式row(),这样在重新排序时会根据当前所在行重新生成序号。
3. 示例
下面我们以扩展后排序来实现多数据集关联排序。效果如下:
认项目名称根据年度投资计划总额升序排列

选择降序排列后,项目名称根据年度投资计划总额降序排列

3.1 打开模板
打开模板: %FR_HOME%\WebReport\WEB-INF\reportlets\doc\advanced\Multidatasource\Multi_2.cpt
3.2 超级链接设置
给年度投资计划(D2单元格),添加 超级链接>动态参数,新增2个动态参数为“升序”与“降序”,order就为参数名,其参数值,分别为asc(升序),desc(降序)。
3.3 排序方法设置
右击项目名称所在列(B4单元格), 右击>扩展属性,在右侧下方的单元格属性面板中设置扩展后排序为升序并且公式为: if($order == 'asc',D4,-D4)
注:这个公式的意义在于:若order为asc即升序则按照D4进行升序排列,若选择desc即降序则按照-D4升序。
3.4 条件属性设置
原模板中使用了&来产生序号,会发现重新排序后顺序被打乱了,需要使用条件属性重新生成序号。在序号(A4单元格)中增加新值条件属性,选择公式,在公式中输入: row()-3
3.5 总结
以上便设置好了,预览即可看到上图效果。可以看出,在数据列的高级处进行排序需要进行很复杂的公式进行还原,而用扩展后排序只需要引用对应的单元格即可。
具体的模板设置可参考: %FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\Order_2.cpt
在线查看示例效果请点击 Order_2.cpt

相关文章

自1998年我国取消了福利分房的政策后,房地产市场迅速开展蓬...
文章目录获取数据查看数据结构获取数据下载数据可以直接通过...
网上商城系统MySql数据库设计
26个来源的气象数据获取代码
在进入21世纪以来,中国电信业告别了20世纪最后阶段的高速发...