反饋已提交
網絡繁忙
排序分为:数据集中的排序,高级排序以及扩展后排序,下面我们分别看下这三种排序的优缺点。
优点:通过 SQL 直接在数据库排序,性能最佳。
缺点:所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护。另外有些计算是无法用 SQL 完成的。
优点:这种排序是在扩展过程中,对当前扩展的格子的排序,性能较数据集排序次之,比数据集排序好的地方就是可以利用报表的计算,做一些稍微复杂些的排序。
缺点:公式必须通过数据列还原才能使用此排序,并且导致了公式的二次计算。另外若公式无法用数据列进行还原则无法完成。
优点:最为灵活,满足目前所有的排序需求。
缺点:由于在扩展完成后进行排序,会对所有格子的位置进行调整,因此性能最差。
注:高级排序是在报表执行前进行排序,扩展后排序是报表执行后再进行排序;三种排序各有其优缺点,可以根据自己排序的具体需求进行选择。
FineReport 报表一般包括纯粹的数据展示、图表展示和控件展示,排序一般应用在数据展示中比较多,但是图表中也会稍微涉及到一点,那么数据展示排序与图表排序有什么区别呢?
通过单元格展示数据时,可以直接在数据集中进行排序,也可以在单元格中进行排序。
图表排序是指对图片的分类或者系列进行排序,那么,图表排序也就是对图表分类或者系列的数据进行排序,在 图表数据源 中我们讲解过,图表数据源分为数据集数据和单元格数据,故图表排序根据其数据源类型的不同,其排序方法设置也有所不同。
1)数据集数据
图表数据来源于数据集,故对图表排序就需要对数据集中的数据进行排序,即 数据集中的排序
2)单元格数据源
图表数据来源于单元格,故对图表排序就是对单元格中的数据进行排序,即可以 高级排序、自定义排序 和 扩展后排序
图表排序还提供接口,详细示例请查看 [新]图表排序接口
索引:
数据集中的排序
分组内排序互不干扰
扩展后多列按先后排序
按分组汇总结果排序
高级排序
自定义排序
扩展后排序
根据点击次数奇偶性排序之数值型
根据点击次数奇偶性排序之字符型
多列排序
扩展后中文按拼音排序
利用内置数据集实现自定义排序
多列排序添加动态箭头
字符型数据动态排序
横向扩展列多列排序
非纯数字扩展列乱序排列的解决方案
部分报表在使用排序功能时,偶尔会抛出异常:Comparison method violates its general contract,如下图所示:
在 JDK6 中运行正常,而在 JDK7 中却会抛异常,因为 JDK7 及之后版本底层的排序算法从 MergeSort 换成了 TimSort。
如果要继续使用 JDK6 的排序算法,可以打开%FR_HOME%\ bin\designer.vmoptions 在JVM 启动参数中加入参数:
-Djava.util.Arrays.useLegacyMergeSort=true
如下图所示:
配置后,就会依旧使用 JDK6 的排序算法,解决这个兼容的问题。
文 檔回 饋
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉