1. 概述
1.1 问题描述
对于 11.0.3 及之后的版本可以使用「高级排序」功能实现多列排序,但对于 11.0.3 之前的版本如果实现对于记录数较少,又没有排序规则的「数据列」,如何实现自定义排列顺序。例如按尺码大小排序,如下图所示:
1.2 解决思路
可以利用公式实现多列排序。
2. 示例
下面我们用一个内置数据集,来看下如何使用「高级排序」设置自定义排列顺序。
2.1 准备数据
新建一个普通报表,新建内置数据集,设置两个字段分别为「size」和「number」。size 由 XS 至 XXL,需打乱顺序;number 随意设置,如下图所示:
2.2 报表设计
将数据列分别拖入 A2、B2 单元格,在 A1、B1 单元格输入对应标题, 自定义表格样式,如下图所示:
2.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" 序列中的位置
最后按返回的数字大小进行排序
步骤如下图所示:
2.4 效果预览
2.4.1 PC 端
保存报表,点击「分页预览」,数据即以:XS、S、M、L、XL、XXL 的顺序进行排列,效果如下图所示:
2.4.2 移动端
App 和 HTML5 端均支持,效果如下图所示:
3. 模板下载
已完成模板可参见:
%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\OrderReport\高级排序-自定义顺序.cpt
点击下载:高级排序-自定义顺序.cpt