历史版本12 :高级排序 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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