找回密码
 立即注册

QQ登录

只需一步,快速开始

昵称不能为空
注册会员   /  发表于:2022-11-22 11:17  /   查看:2300  /  回复:6
本帖最后由 昵称不能为空 于 2022-11-22 11:22 编辑

如何实现动态的报表参数可选项?

我的报表有一个报表参数是年份。这个年份的范围是从2021年开始(开始年分固定,就是2021年)到当前年。
例如,2022年打开报表,下拉框里是2021,2022两个选项。
2023年打开报表,下拉框里是2021,2022,2023三个选项。

6 个回复

倒序浏览
Bella.YuanWyn认证
超级版主   /  发表于:2022-11-22 12:24:25
沙发
您好,和您确认一下数据,您的数据是不是会根据年的变化去进行变化,比如2021年表是2021年的数据,2022年表是2021年和2022年的数据,依次类推。如果数据不是这样还请您详细描述一下。
如果说您的数据是这样的,那您可以新建个数据集指只获取年的这个字段,使用distinct和where关键字,distinct是去重,where是加过滤条件比如年份>=2021,这样做出来的这个数据集只用于报表参数的可用数据,然后数据集后把这个数据集绑定到报表参数的可用数据,报表参数单值多值由您自行选择,报表参数的默认数据也由您选择,如果需要默认有值,则绑定一下,如果不需要,则不用绑定,然后其他数据集可以依据这个报表参数去进行数据过滤。
针对报表参数和数据过滤可以参考这个链接:报表参数与数据过滤 - Wyn V6.0 帮助文档 - 葡萄城产品文档中心 (grapecity.com.cn)
回复 使用道具 举报
昵称不能为空
注册会员   /  发表于:2022-11-22 12:35:40
板凳
Bella.Yuan 发表于 2022-11-22 12:24
您好,和您确认一下数据,您的数据是不是会根据年的变化去进行变化,比如2021年表是2021年的数据,2022年表 ...

是这个意思。但是我不想从数据库里读出distinct的年份。
有没有比较简单的办法?
SQL语句 select 如果不加 from table,能不能实现这种动态效果?
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2022-11-22 14:48:56
地板
昵称不能为空 发表于 2022-11-22 12:35
是这个意思。但是我不想从数据库里读出distinct的年份。
有没有比较简单的办法?
SQL语句 select 如果 ...

用这个sql呢:


with recursive c(n) AS
(
select 2021
union ALL
select n + 1
from c
where n < year(now())
)
select * from c;


然后把这个查询结果当成一个参数的可选值
image.png644490661.png
回复 使用道具 举报
nimotea
超级版主   /  发表于:2022-11-22 15:06:27
5#

我测了下版主说的这个sql, 数据集这块对语法有要求, 如果是 mysql8 的库用版主的sql 可以拿到年份序列, 同理如果连接sqlservice, pgsql 数据源 需要将对应 with 语法转为 相应数据库支持语法. 如果选在 json 或者 excel 数据源上 就没有 with 这个 语法了

评分

参与人数 1金币 +666 收起 理由
Bella.Yuan + 666 赞一个!

查看全部评分

回复 使用道具 举报
昵称不能为空
注册会员   /  发表于:2022-11-22 15:21:12
6#

牛逼!mysql上没问题!非常感谢!
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2022-11-22 16:06:21
7#
昵称不能为空 发表于 2022-11-22 15:21
牛逼!mysql上没问题!非常感谢!

解决了就好,那本帖就先结贴了,有问题开新帖哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部