FineReport帆软报表实现动态生成递增列

数据如下,需要将下列数据转成第1次时间,第1次地址,第2次时间,第2次地址…显示
在这里插入图片描述
最终效果
在这里插入图片描述

实现步骤
1、改写sql
需要用count函数计算出最大行数 这也是动态列的最大值,比如这边为7,到时候生成的就到第7次时间,第7次地址
将需要转成动态列的使用group_concat函数 生成新列,到时候在帆软的时候使用split函数切割获取。
在这里插入图片描述

2、帆软实现
创建数据集
在这里插入图片描述
在这里插入图片描述

B1 填写函数 , 并将扩展方向设为横向扩展
RANGE(1,MAX(VALUE(‘ds1’,‘maxColumn’)),1)
value 取到ds1数据集 的maxColumn列
max 取到最大值
range(1,7,1)第一个1 是表示从1开始,7标识到7,第二个1表示步长为1
在这里插入图片描述

A2正常输入姓名 默认父格,不扩展
B2 填写函数,并将扩展方向设为横向扩展,上父格自定为B1
CONCATENATE(‘第’,seq(1),‘次时间’)
在这里插入图片描述

C2 填写函数,并将扩展方向设为横向扩展,上父格自定为B1
注意:B2和C2的seq()函数里面需要填写不一样的数字,否则他的序号会递增。
CONCATENATE(‘第’,seq(0),‘次反馈’)
在这里插入图片描述

A3 正常纵向扩展 父格默认

B3如下图 填写公式定义,设置扩展设置父格
INDEXOFARRAY(SPLIT($$$,‘,’),B1)
split按照‘,’切割单元格的值
indexofarray 按照B1单元格取上列切割后的数组值,这样就可以动态横向扩展了
在这里插入图片描述

C3操做如上面B3
在这里插入图片描述

下面即可预览
在这里插入图片描述

随后将第一行进行隐藏
在这里插入图片描述
在这里插入图片描述

如果需要将第1次时间 转为中文 第一次时间
可以使用numto函数
在这里插入图片描述

最终效果
在这里插入图片描述

多数据效果
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值