数据如下,需要将下列数据转成第1次时间,第1次地址,第2次时间,第2次地址…显示

帆软report redis 帆软report动态列扩展_数据集


最终效果

帆软report redis 帆软report动态列扩展_帆软report redis_02

实现步骤

1、改写sql

需要用count函数计算出最大行数 这也是动态列的最大值,比如这边为7,到时候生成的就到第7次时间,第7次地址

将需要转成动态列的使用group_concat函数 生成新列,到时候在帆软的时候使用split函数切割获取。

帆软report redis 帆软report动态列扩展_动态列_03

2、帆软实现

创建数据集

帆软report redis 帆软report动态列扩展_数据集_04


帆软report redis 帆软report动态列扩展_经验分享_05

B1 填写函数 , 并将扩展方向设为横向扩展

RANGE(1,MAX(VALUE(‘ds1’,‘maxColumn’)),1)

value 取到ds1数据集 的maxColumn列

max 取到最大值

range(1,7,1)第一个1 是表示从1开始,7标识到7,第二个1表示步长为1

帆软report redis 帆软report动态列扩展_数据集_06

A2正常输入姓名 默认父格,不扩展

B2 填写函数,并将扩展方向设为横向扩展,上父格自定为B1

CONCATENATE(‘第’,seq(1),‘次时间’)

帆软report redis 帆软report动态列扩展_数据_07

C2 填写函数,并将扩展方向设为横向扩展,上父格自定为B1

注意:B2和C2的seq()函数里面需要填写不一样的数字,否则他的序号会递增。

CONCATENATE(‘第’,seq(0),‘次反馈’)

帆软report redis 帆软report动态列扩展_数据集_08

A3 正常纵向扩展 父格默认

B3如下图 填写公式定义,设置扩展设置父格

INDEXOFARRAY(SPLIT($$$,‘,’),B1)

split按照‘,’切割单元格的值

indexofarray 按照B1单元格取上列切割后的数组值,这样就可以动态横向扩展了

帆软report redis 帆软report动态列扩展_动态列_09

C3操做如上面B3

帆软report redis 帆软report动态列扩展_动态列_10

下面即可预览

帆软report redis 帆软report动态列扩展_动态列_11

随后将第一行进行隐藏

帆软report redis 帆软report动态列扩展_数据_12


帆软report redis 帆软report动态列扩展_经验分享_13

如果需要将第1次时间 转为中文 第一次时间

可以使用numto函数

帆软report redis 帆软report动态列扩展_数据_14

最终效果

帆软report redis 帆软report动态列扩展_动态列_15

多数据效果

帆软report redis 帆软report动态列扩展_数据_16