历史版本18 :排序简介 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

在 FineReport 报表进行数据展示或图表展示时,经常会用到「排序」功能。一般在数据展示中应用比较多,图表中也会稍微涉及到一点。

本文将介绍 FineReport 支持的各类排序,以及对排序的各种应用进行简单介绍,详情请点击「索引」下对应文档查看。

1.1 排序简介

FineReport 支持的三种排序类型分别为:数据集中的排序、高级排序、扩展后排序。这三种排序优缺点如下表所示:

注:高级排序是在报表执行前进行排序,扩展后排序是报表执行后再进行排序。

排序类型功能简介优点缺点
数据集中的排序通过在数据集中写 SQL 语句,直接在数据库查询时排序。
性能最佳
  • 所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护

  • 有些计算是无法用 SQL 完成的

高级排序报表根据某「数据列」设置公式和排列顺序进行排序。相当于扩展前排序,依赖于「数据列」
  • 性能中等

  • 可以基于「数据列」利用公式做一些稍微复杂些的排序

公式必须依赖于「数据列」,并且会导致公式的二次计算

扩展后排序支持前两种排序,也支持对包含各类计算的扩展后的报表进行排序最为灵活,满足目前所有的排序需求由于在扩展完成后进行排序,会对所有格子的位置进行调整,因此性能最差

1.2 图表排序

FineReport 报表一般包括纯粹的数据展示、图表展示和控件展示,排序一般应用在数据展示中比较多,但是图表中也会稍微涉及到一点,那么在图表中的排序需要注意以下几点:

1)图表数据来源于「数据集」,故对图表排序就需要对数据集中的数据进行排序,则需要使用 数据集中的排序

2)图表数据来源于单元格,故对图表排序就是对单元格中的数据进行排序,即可以 高级排序 和 扩展后排序

3)图表排序还提供接口,详细示例请查看 [新]图表排序接口

2. 索引编辑

帮助文档
应用场景效果图预览
利用内置数据集实现自定义排序希望按照自己设置的文本顺序排序,不通过公式规则排序
扩展后排序重新编号有序号的情况下,扩展后排序会乱序,需要重新编号

扩展后多列按先后排序类似于 SQL 语句中的 order by A,B ,使用扩展后排序实现

点击某一列标题改变排序实现「单列」数据点击列标题时改变升序或降序1.gif
多列动态排序实现「多列」数据点击标题时改变升序或降序2.gif
横向扩展列多列排序当标题列是由单元格横向扩展得来时,同样要实现点击列标题动态排序3.gif
排序添加动态箭头动态排序时,在标题上加上箭头表示当前排序状态4.gif
按分组汇总结果排序当数据有分组时,先按各分组的汇总结果排序,分组内再按各个值的顺序排序

分组内排序互不干扰
数据有分组的情况下,在分组内各自动态排序互不影响1615689005500610.gif
多级项目符号排序
报表中存在多级项目符号(即将多个数字用「 . 」隔开的字符串)时按先后排序
扩展后中文按拼音排序
中文排序一般是按 ASCII 码进行排序,但希望其按拼音排序
汉字数字排序
当报表中存在用汉字表达的数字序号时,希望按数字大小排序
排序FAQ
对使用排序时遇到的各类问题及解决方案进行汇总