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

目录:

1. 概述编辑

1.1 预期效果

在设计报表的时候,可能需要根据多列数据生成多级序号,效果如下图所示:

image.png

1.2 实现思路

先获取第一列数据当前值在当前列数据去重后的序号.

再获取第二列数据当前值在(当前列数据去重后且第一列数据等于当前第一列的值)的序号。

对分别获取到的序号进行拼接。

2. 示例编辑

2.1 数据准备

新建数据集 ds1,数据库查询语句为:SELECT * FROM 部门

image.png

2.2 报表设计

1)如下图设计表格样式,B2 数据设置为列表,A2 左父格为 B2 。

image.png

2)A2 单元格输入公式:

INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))

image.png

2.3 效果预览

1)PC端

保存报表,点击分页预览,多级序号效果如下图所示:

image.png

2)移动端

image.png

3. 模板下载编辑

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\多级序号.cpt

点击下载模板:多级序号.cpt

4. 注意事项编辑

如果有第三列数据 (D2) 也要生成序号,则 A2 左父格为 C2 ,公式为:INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))+"."+INARRAY(D2,UNIQUEARRAY(D2[!0]{B2=$B2&&C2=$C2}))

如果有第四列数据 (E2) 也要生成序号,则 A2 左父格为 D2 ,公式为:INARRAY(B2,UNIQUEARRAY(B2[!0]))+"."+INARRAY(C2,UNIQUEARRAY(C2[!0]{B2=$B2}))+"."+INARRAY(D2,UNIQUEARRAY(D2[!0]{B2=$B2&&C2=$C2}))+"."+INARRAY(E2,UNIQUEARRAY(E2[!0]{B2=$B2&&C2=$C2&&D2=$D2}))

如此类推。