历史版本6 :排序场景方案 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文列出用户在使用排序功能时的具体需求及对应方案。

注:FineReport 支持的三种排序类型分别为:数据集中的排序、高级排序、扩展后排序。这三种排序方式的介绍请参见:排序

2. 单列排序编辑

2.1 非动态排序

2.1.1 实现效果

数据列按照升序或降序排列。如下图所示:

1646362945375471.png

2.1.2 方案推荐

方案备注
数据集中的排序

通过 SQL 直接在数据库查询时排序

如果某一列是通过其他数据列计算得出的,该方案将不再适用

高级排序-单列排序

11.0.3 之前版本,参考:高级排序 (必须在最父格设置)

11.0.3 及之后版本,参考:高级排序-单列排序

扩展后排序

适用于 11.0.3 及之后版本

2.2 动态排序

2.2.1 实现效果

点击某个数据列的表头,实现排序效果。如下图所示:

1646363947374546.gif

2.2.2 方案推荐

方案备注
数据集中的排序

通过 SQL 直接在数据库查询时排序

如果某一列是通过其他数据列计算得出的,该方案将不再适用

点击某一列标题改变排序

支持数字、字符串数据的排序

若某一列是通过其他数据列计算得出的,该方案适用

扩展后排序

适用于 11.0.3 及之后版本

JS实现决策报表中点击标题排序-

3. 多列排序编辑

3.1 非动态排序

3.1.1 实现效果

数据先按 A 列排序,B 列再按对应的 A 列排序。如下图所示:

1646364590980976.png

3.1.2 方案推荐

方案备注
数据集中的排序

通过 SQL 直接在数据库查询时排序

如果某一列是通过其他数据列计算得出的,该方案将不再适用

高级排序-多列排序适用于 11.0.3 及之后版本
扩展后排序适用于 11.0.3 及之后版本
扩展后多列按先后排序-

3.2 动态排序

3.2.1 实现效果

用户通过点击表头,实现多个列的升序或降序效果。如下图所示:

1646364889399386.gif

3.2.2 方案推荐

方案备注

1)方案:

扩展后排序

7.png

2)效果:

模板预览后,数据按照订购日期字段降序排序,相同订购日期的数据可以按照运货费升序排序

可以单独对订购日期」和运货费」升序、降序排列

适用于 11.0.3 及之后版本

1)方案:

多列动态排序

2)效果:

点击第一列,则根据第一列升序或降序排列;点击第二列,则根据第二列升序或降序排列

-

横向扩展列多列排序

6.gif

列标题是根据字段横向扩展得来的,点击列标题,实现升序或降序

动态列实现多列排序

7.gif

在动态列的基础上,能够对每列进行单独的排序
特殊多列排序决策报表的报表块在多列排序的基础上可以实现:点第一下降序,点第二下升序,点第三下恢复原状
JS实现决策报表中点击标题排序决策报表中多列通过点击标题进行排序

4. 自定义排序编辑

场景描述效果实现参考方案
自定义数据列中具体项的排序
11.png利用内置数据集实现自定义排序

5. 图表排序编辑

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

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

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

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

注:图表在不同分类下分别排序请参见:图表不同分类下分别排序

6. 分组排序编辑

场景描述效果实现参考方案
按分组汇总结果排序:先对「销售员小计」排序,再对「产品类型小计」排序,最后对「产品列表」排序12.png按分组汇总结果排序
实现分组动态排序且互不影响的效果:例如当点击华东的销量时,华东的销量改变排序,华北的销量不受到影响;当点击华北的销量时,华北的销量改变排序,华东的销量不受到影响11.gif分组内排序互不干扰

7. 其他场景编辑

场景描述效果实现参考方案
想要在标题上设置「箭头」以体现当前是哪一列排序,是升序还是降序12.png排序添加动态箭头
在对报表进行扩展后排序之后,若直接使用单元格插入公式 seq() 或者 &cell 这两种方法获取序号,序号的顺序是乱序的,如何让它变成正常的排序呢9.png扩展后排序重新编号
按照中文的拼音先后顺序进行排序10.png扩展后中文按拼音排序
「序号」是用汉字数字来表示的,那么要如何对它进行排序呢13.png汉字数字排序
当报表中存在多级项目符号时,如何对它进行排序14.png多级项目符号排序
在填报录入数据时,希望序号可以自动生成,且新增或删除数据行时,序号不会断开8.gifJS实现填报自动生成序号并排序
填报的时候可以对表格进行排序。使用扩展后排序,发现了每次点击表头排序时都会刷新一下页面,这样就会导致刚刚填报的数据被刷新没了,右侧方案可解决此问题-JS实现不刷新页面进行排序功能