反馈已提交
网络繁忙
在 FineReport 报表进行数据展示或图表展示时,经常会用到「排序」功能。一般在数据展示中应用比较多,图表中也会稍微涉及到一点。
本文将介绍 FineReport 支持的各类排序,以及对排序的各种应用进行简单介绍。
FineReport 支持的三种排序类型分别为:数据集中的排序、高级排序、扩展后排序。简介如下表所示:
注:高级排序是在报表执行前进行排序,扩展后排序是报表执行后再进行排序。
通过 SQL 直接在数据库查询时排序
示例:
升序:SELECT * FROM 销量 order by 销量
降序:SELECT * FROM 销量 order by 销量 desc
多列排序:SELECT * FROM 销量 order by 英文简称,销量;数据先按「英文简称」列升序排序,「销量」列再按对应的「英文简称」升序排序
报表根据某「数据列」设置的公式和排列顺序进行的排序。相当于扩展前排序,依赖于「数据列」
从性能方面考虑:数据集中的排序>高级排序>扩展后排序。
从覆盖场景方面考虑:扩展后排序>高级排序>数据集中的排序。
1)所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护。因此建议仅使用 SQL 实现一些简单的,单一的「升序」或「降序」
2)有些计算是无法用 SQL 完成的;例如:某一列是通过其他数据列计算得出的,「数据集中的排序」将不再适用
1)性能中等
2)可以基于「数据列」利用公式做一些稍微复杂些的排序
公式必须依赖于「数据列」,并且会导致公式的二次计算
注:这三种排序方式,都可以在决策报表和普通报表中使用。
单列升序/降序
多列排序(非动态)
单列动态排序
不支持动态排序,即点击表头进行排序的效果不能实现
1)11.0.3 及之后版本,支持多列排序
2)11.0.3 之前版本,只能实现单列排序,可以实现效果:
自定义排序
单列排序
汉字数字排序(结合其他功能实现的)
1)11.0.3 及之后版本,支持动态排序、支持多列排序
2)可以实现的效果(功能本身可以实现):
单列/多列通过点击表头,实现升序或降序(11.0.3 及之后版本)
模板预览后,多列按照之前设置的顺序排序(11.0.3 及之后版本)
模板预览后,单列按照之前设置的顺序排序
3)可以实现的效果(结合其他功能实现的):
单列动态排序:扩展后排序、点击某一列标题改变排序、
分组排序:按分组汇总结果排序、分组内排序互不干扰
多列动态排序:多列动态排序、横向扩展列多列排序、扩展后多列按先后排序、动态列实现多列排序
自定义排序:利用内置数据集实现自定义排序
其他场景:多级项目符号排序、扩展后中文按拼音排序、汉字数字排序
售前咨询电话
400-811-8890转1
在线技术支持
请前往「服务平台」,选择「在线支持」
热线电话:400-811-8890转2
总裁办24H投诉
热线电话:173-1278-1526
文 档反 馈
鼠标选中内容,快速反馈问题
鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。
不再提示
10s后关闭