反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

高级排序

  • 文档创建者:lu123
  • 历史版本:12
  • 最近更新:Alicehyy 于 2021-03-09
  • 1. 概述

    1.1 应用场景

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

    1)希望按照某列数据排序,例如按照「运货费」升序排序,如下图所示:

    Snag_8e89af.png

    2)对于记录数较少,又没有排序规则的「数据列」,可以利用公式自定义排列顺序。例如按尺码大小排序,如下图所示:

    1615261003621148.png

    注:高级排序中的所有设置都可以在扩展后排序中设置实现,但高级排序性能比扩展后排序好,因此建议能用高级排序实现的就用高级排序,不能用高级排序实现的,再使用 扩展后排序

    1.2 功能简介

    高级排序必须在「最父格」单元格设置,例如 C1 单元格的左父格是 B1,B1 单元格的左父格是 A1,那么 A1 即为「最父格」。

    双击「最父格」所在单元格,弹出「数据列」设置对话框,选择「高级」,可以看到「排列顺序」默认为「不排序」,公式输入框不可编辑。如下图所示:

    Snag_1050f3c.png

    选择「升序」或「降序」后,公式输入框可编辑,公式中可直接输入「数据列的名称」或「包含数据列的公式」进行排序设置。不填写公式时,则默认根据「当前列」进行升序或降序。

    Snag_11236f9.png

    也可以在「单元格元素>高级」中设置「排列顺序」。

    Snag_1001782.png

    2. 高级排序-数据列顺序

    我们以内置模板 Details_1.cpt 为例,来看下如何使用「高级排序」使报表根据数据列「运货费」进行升序排序。

    2.1 准备模板

    打开模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\DetailReport\Details_1.cpt

    2.2 设置高级排序

    报表的「最父格」为 A2 单元格,双击 A2 单元格,点击「高级」,排序顺序选择「升序」,然后点击公式的编辑按钮,进入公式定义对话框,直接输入数据列名称「运货费」,或者双击「变量>数据项」中的「运货费」,最后点击「确定」。如下图所示:

    Snag_121d284.png

    2.3 效果预览

    2.3.1 PC 端

    保存报表,点击「分页预览」,可以看到数据根据「运货费」升序排序了:

    Snag_8e89af.png

    2.3.2 移动端

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

    Snag_14d52bf.png

    3. 高级排序-自定义顺序

    下面我们用一个内置数据集,来看下如何使用「高级排序」设置自定义排列顺序。

    3.1 准备数据

    新建一个普通报表,新建内置数据集,设置两个字段分别为「size」和「number」。size 由 XS 至 XXL,需打乱顺序;number 随意设置,如下图所示:

    1615271984392225.png

    3.2 报表设计

    将数据列分别拖入 A2、B2 单元格,在 A1、B1 单元格输入对应标题, 自定义表格样式,如下图所示:

    1615272415122126.png

    3.3 设置高级排序

    报表的「最父格」为 A2 单元格,选中 A2 单元格,选择「单元格元素>高级」,设置排列顺序为「升序」,输入公式:switch($$$,"XS",1,"S",2,"M",3,"L",4,"XL",5,"XXL",6)或者INDEX($$$,"XS","S","M","L","XL","XXL")

    公式说明:

    • $$$ 表示当前数据列

    • switch 函数的作用是:当前值为 XS 则返回 1,当前值为 S 则返回 2,以此类推

    • INDEX 函数的作用是:返回当前值在 "XS","S","M","L","XL","XXL" 序列中的位置

    • 最后按返回的数字大小进行排序

    步骤如下图所示:

    1615272835866725.png

    3.4 效果预览

    3.4.1 PC 端

    保存报表,点击「分页预览」,数据即以:XS、S、M、L、XL、XXL 的顺序进行排列,效果如下图所示:

    1615273861934733.png

    3.4.2 移动端

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

    Snag_14d4a15.png

    4. 模板下载

    已完成模板可参见:

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\高级排序-数据列顺序.cpt

    %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\高级排序-自定义顺序.cpt

    点击下载模板:

    高级排序-数据列顺序.cpt

    高级排序-自定义顺序.cpt

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

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

    总裁办24H投诉

    热线电话:173-1278-1526