帆软FineReport动态列(动态展示列、动态列聚合)

一、功能介绍

维度控件:实现参数值的过滤
指标:实现按哪些维度聚合以及展示哪些指标(动态聚合:例如数据有字段A、B、C、D列,但是只想按A、B列聚合展示结果)
效果图如下:

最终效果图:
在这里插入图片描述
指标筛选器效果:
在这里插入图片描述
指标筛选器效果
在这里插入图片描述

二、实现逻辑

1、数据表结构

CREATE TABLE test_table_1 (
date date DEFAULT NULL,
region varchar(100) DEFAULT NULL,
work_group varchar(100) DEFAULT NULL,
user_no varchar(100) DEFAULT NULL,
user_name varchar(100) DEFAULT NULL,
work_time bigint DEFAULT NULL COMMENT ‘工作时长(分钟)’,
customer_num bigint DEFAULT NULL COMMENT ‘客户数’
)

2、FineReport数据集:

SELECT
${if(FIND(“日期”,colname) != 0,‘a.date AS 日期,’,‘’)}
${if(FIND(“地区”,colname) != 0,‘a.region AS 地区,’,‘’)}
${if(FIND(“班组”,colname) != 0,‘a.work_group AS 班组,’,‘’)}
${if(FIND(“工号”,colname) != 0,‘a.user_no AS 工号,’,‘’)}
${if(FIND(“姓名”,colname) != 0,‘a.user_name AS 姓名,’,‘’)}
${if(FIND(“工作时长”,colname) != 0,‘sum(work_time) as 工作时长,’,‘’)}
${if(FIND(“客户数”,colname) != 0,‘sum(customer_num) as 客户数,’,‘’)}
null
FROM test_table_1 a
where
1=1
${if(len(dimension) == 0,“”,“or a.region in ('” + dimension + “')”)}
${if(len(dimension) == 0,“”,“or a.work_group in ('” + dimension + “')”)}
${if(len(dimension) == 0,“”,“or a.user_no in ('” + dimension + “')”)}
${if(len(dimension) == 0,“”,“or a.user_n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值