反馈已提交

网络繁忙

排序简介

  • 文档创建者:lu123
  • 编辑次数:30次
  • 最近更新:Wendy123456 于 2022-05-18
  • 1. 概述

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

    本文将介绍 FineReport 支持的各类排序,以及对排序的各种应用进行简单介绍。

    2. 三种排序方式简介

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

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

    排序类型简介
    数据集中的排序

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

    示例:

    • 升序:SELECT * FROM 销量 order by 销量

    • 降序:SELECT * FROM 销量 order by 销量 desc

    • 多列排序:SELECT * FROM 销量 order by 英文简称,销量;数据先按「英文简称」列升序排序,「销量」列再按对应的「英文简称」升序排序

    高级排序

    报表根据某「数据列」设置的公式和排列顺序进行的排序。相当于扩展前排序,依赖于「数据列」 

    扩展后排序「扩展后排序」在制作报表过程中可以实现多种排序需求,是最灵活的排序方式,但由于在扩展完成后进行排序,会对所有格子的位置进行调整,因此性能最差,建议在 高级排序 无法实现的情况下再使用「扩展后排序」

    3. 三种排序方式对比

    3.1 性能对比

    从性能方面考虑:数据集中的排序>高级排序>扩展后排序。

    从覆盖场景方面考虑:扩展后排序>高级排序>数据集中的排序。

    排序类型优点缺点
    数据集中的排序性能最佳

    1)所有计算都必须要在数据库中做,会导致 SQL 很复杂,难以维护。因此建议仅使用 SQL 实现一些简单的,单一的「升序」或「降序」

    2)有些计算是无法用 SQL 完成的;例如:某一列是通过其他数据列计算得出的,「数据集中的排序」将不再适用

    高级排序

    1)性能中等

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

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

    扩展后排序最为灵活,满足目前所有的排序需求由于在扩展完成后进行排序,会对所有格子的位置进行调整,因此性能最差

    3.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

    在线技术支持

    在线QQ:800049425

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526

    文 档反 馈

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭