1. 概述
1.1 版本
报表服务器版本 |
---|
适用于 11.0.3 以前版本 |
1.2 问题描述
当报表中存在多级项目符号时,正常设置排序是无法实现多级排序效果的,那么如何实现多级项目符号的排序效果呢?
1.3 解决思路
多级项目符号是将多个数字用「 . 」隔开的字符串,通过将字符串转化成可以排序的数字,即可实现排序。
2. 示例
2.1 数据准备
新建普通报表,新建一个内置数据集 Embedded1 ,添加两个字段分别为「项目符号」和「项目」,设计表如下图所示:
2.2 表格设计
将内置数据集字段分别拖入 A2、B2 单元格,输入对应标题,表格样式如下图所示:
2.3 扩展后排序
选中 A2 单元格,设置「扩展后排序」,输入公式:SUM(MAPARRAY(split(A2, "\\."), item * POWER(100, 4 - index)))
该公式是将 A2 中的项目符号通过「 . 」来分割,然后乘不同的位数,再求和。
公式说明如下表:
公式 | 说明 |
---|---|
返回指定数字的乘幂。即 100 的 4-index 次方 index : 返回位置 注:4-index 中的 4,是因为 A2 中的多级项目符号一共有3级,这里取级数 +1 所以为 4 | |
SPLIT(A2, "\\.") | 返回由「 . 」分割 A2 单元格值组成的字符串数组 |
MAPARRAY() | 批量处理数组,通过 item * POWER(100, 4 - index) 对 split(A2, "\\.") 数组中的元素进行转换 |
SUM() | 对转换后的数组进行求和 |
如下图所示:
2.4 效果预览
2.4.1 PC 端
保存报表,点击「分页预览」,效果如下图所示:
2.4.2 移动端
App 端和 HTML5 端均支持,效果如下图所示:
3. 模板下载
点击下载模板:多级项目符号排序.cpt