1. 概述编辑
FineReport 支持三种排序类型:数据集中的排序、高级排序、扩展后排序。
FineReport 可实现的排序效果如下表所示:
排序类型 | 简介 |
---|---|
单列非动态排序 | 模板预览后,某列按照降序或升序的顺序排列 |
单列动态排序 | 模板预览后,用户可点击表头进行升序或降序排序 |
多列非动态排序 | 数据先按 A 列排序,B 列再按对应的 A 列排序 |
多列动态排序 | 可点击表头实现多列的升序或降序 |
2. 新手学习路径编辑
章节 | 内容 | 参考文档 | |
---|---|---|---|
第1章 | 快速入门 | ||
1.1 | 以一个简单实例,实现排序效果 | 单列排序 | |
第2章 | 基础知识及练习 | ||
2.1 | 简单了解三种排序方式 | - | 排序 |
2.2 | 学习「高级排序」的使用方法,并按照文档示例实操一遍,加深印象 | 1)可对以下字段类型进行排序: 时间、日期、字符串、数字、布尔类型 2)可实现排序效果:
| 高级排序 |
2.3 | 学习「扩展后排序」的使用方法,并按照文档示例实操一遍,加深印象 | 1)可对以下字段类型进行排序: 时间、日期、字符串、数字、布尔类型 2)可实现排序效果:
注:11.0.3 及之后版本,支持动态排序、支持多列排序 | 扩展后排序 |
2.4 | 学习「数据集中的排序」的使用方法,并按照文档示例实操一遍,加深印象 | 可实现排序效果:
| 数据集中的排序 |
3. 进阶学习路径编辑
章节 | 场景 | 实现思路 | 参考文档 |
---|---|---|---|
第1章 | 单列排序-动态排序 | ||
1.1 | 点击标题实现升序和降序交换显示 | 通过添加超级链接-动态参数 & 在单元格扩展后排序中添加公式实现:
| 点击某一列标题改变排序 |
1.2 | 在对报表进行 扩展后排序 之后,若直接使用单元格插入公式 seq() 或者 &cell 这两种方法获取序号,序号的顺序是乱序的,想让它变成正常的排序 | 需要在数据排序结束后,对序号所在单元格附新值,根据排序后的结果添加序号。文档中所使用的方法: 方法一:设置条件属性新值 方法二:设置公式形态 方法三:添加加载结束事件,利用 JavaScript 代码解决 | 扩展后排序重新编号 |
第2章 | 多列排序 | ||
2.1 | 点击第一列,则根据第一列升序或降序排列;点击第二列,则根据第二列升序或降序排列 | 通过添加超级链接-动态参数 & 在单元格扩展后排序中添加公式实现:
| 多列动态排序 |
2.2 | 希望先按照A进行排序,再按照B进行排序 | 1)字符类型数据: 通过INARRAY(字符, SORTARRAY(UNIQUEARRAY(扩展的所有字符)))获得排序位置 2)数值类型数据: 将多个需要排序的数值果经过运算处理得出一个新的数值,最后按照新数进行排序 | 扩展后多列按先后排序 |
2.3 | 点击列标题,可对该列进行升降排序,而列标题是根据字段横向扩展得来的 | 获取点击列的所有值,在销售员的单元格属性中,设置扩展后排序,销售员根据点击列的所有值进行排序 | 横向扩展列多列排序 |
第3章 | 自定义排序 | ||
3.1 | 通过高级排序-自定义顺序可以直接在公式里面逐个定义每个数据项的顺序,但有时会使公式阅读起来困难且不易维护 这时可以通过使用「内置数据集」来自定义顺序 | 在内置数据集中定义好数据项顺序,通过数据集函数获取值,再通过inarray() 函数返回单元格值在内置数据集中的位置,实现排序效果 | 利用内置数据集实现自定义排序 |
第4章 | 分组排序 | ||
4.1 | 对于分组报表,有各种小计、合计、以及列表一起存在的 希望按照各个分组逐层进行排序 | 在相应的左父格上设置扩展后排序即可达到排序目的 | 按分组汇总结果排序 |
第5章 | 组内排序 | ||
5.1 | 希望在同一张报表中,可以实现分组动态排序且互不影响的效果 | - | 分组内排序互不干扰 |
第6章 | 排序问题汇总及解决方案 | ||
6.1 | 排序问题汇总及解决方案 | - | 排序FAQ |