扩展后排序

  • 文档创建者:lu123
  • 编辑次数:23次
  • 最近更新:Alicehyy 于 2021-03-14
  • 1. 概述

    1.1 应用场景

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

    1.2 功能描述

    「扩展后排序」在「单元格属性>扩展>高级」中设置,设置在需要排序的左父格上,一般设置在「最父格」,例如 C1 单元格的左父格是 B1,B1 单元格的左父格是 A1,那么 A1 即为「最父格」。

    如在 A1 单元格(最父格)中设置「扩展后排序>升序」,公式中输入 C1,则 A1 单元格会根据 C1 单元格的计算结果进行排序,如下图所示:

    222

    2. 示例

    下面我们以「扩展后排序」来实现按「销量」列升序和降序作为简单的示例讲解。效果如下图:

    1615516440708122.gif

    2.1 数据准备

    新建普通报表,新建数据库查询 ds1,SQL 语句为:SELECT * FROM 销量

    Snag_55b3c02.png

    2.2 设计报表

    将数据集中字段依次拖入 A2~F2 单元格中,A1~F1 单元格输入对应标题,设置表格样式如下图所示:

    1615516654643175.png

    将 A2 单元格的「数据设置」修改为「列表」,如下图所示:

    1615517053181467.png

    2.3 添加动态参数

    给 E1 单元格添加「超级链接>动态参数」,添加两个动态参数,分别重命名为「升序」和「降序」,参数设置如下表:

    动态参数
    参数名参数值类型参数值
    升序order字符串asc
    降序order字符串desc

    以「升序」为例,步骤如下图所示:
    1615517606419437.png

    2.4 设置模板参数

    为了使报表预览时默认为按照销量「升序」排序,需设置「模板参数」,参数名需和「动态参数」保存一致,默认值为字符串「asc」。步骤如下图所示:

    1615517957127072.png

    2.5 设置扩展后排序

    选中「最父格」A2 单元格,选择右侧属性面板「单元格属性>扩展>高级」,选择「扩展后排序」为「升序」,进入公式定义界面,输入公式:

    if($order='asc',E2,-E2),公式表示:若 order 为 asc 即升序,则按照 E2 进行升序排列,否则按照 E2 降序排列。

    注1:本例只有在「最父格」单元格设置排序才生效。

    注2:公式中的 E2 单元格的数值类型必须是「数字型」,日期时间类型的数据需要特殊设置,详情可参见文档:多列动态排序

    1615519963993414.png

    2.6 效果预览

    2.6.1 PC 端

    保存报表,点击「分页预览」,效果如下图所示:

    1615516440708122.gif

    2.6.2 移动端

    App 端和 HTML5 端均支持,效果如下图所示:

    2F9775E4-0742-4B08-8D83-597A62C49AEA.GIF

    3. 模板下载

    已完成模板设置可参考:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\扩展后排序.cpt

    点击下载模板:扩展后排序.cpt

    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    售前咨询电话

    400-811-8890转1

    在线技术支持

    在线QQ:800049425

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

    总裁办24H投诉

    热线电话:173-1278-1526