模板参数,条件属性来控制,怎么实现单一运行

如图,模板参数为2020年和21年,报表是两个数据库的数据,条件属性来控制选择某年度只显示该年度的数据。问题:选择某一个年度,我感觉都是该报表全部运行之后才过滤另一个年度行高为0。请问怎么实现选择某年度,报表只是获取该年度也就是该数据库的数据。(因为数据量较大,每次全部运行在过滤行高为0,效率太低)。

image.png

image.png

image.png

FineReport 良月二三 发布于 2021-4-8 16:13
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-4-9 10:15

关联数据集-通过参数过滤:https://help.fanruan.com/finereport/doc-view-125.html?source=4#5

————————

10.png

最佳回答
0
snrtuemcLv8专家互助
发布于2021-4-8 16:15(编辑于 2021-4-8 16:16)

这个没有办法,但是为什么要把两年的都查询出来呢?你只查询一年不可以,反正隐藏啊

两个数据库额,参考动态数据源/数据库-https://help.fanruan.com/finereport/doc-view-983.html

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-4-8 16:17(编辑于 2021-4-8 16:32)

抱歉没看清楚。是两个数据库!建一个视图把你要查询的数据合并起来

create view [view_name] as

SELECT 你的字段 from 2020  

uninl all

SELECT 你的字段 from 2021

然后从view_name 中按需查数

再或者两个SQL分别最后加判断

SELECT 你的字段 from 2020  where 你的条件 ${if(year=='2020年','',' and 1<>1')}----year不是2020年时 1<>1永远为空

SELECT 你的字段 from 2021  where 你的条件 ${if(year=='2021年','',' and 1<>1')}----year不是2021年时 1<>1永远为空

仍然要查询两条语句,不过有一条没得数据,页面加载要快点

最佳回答
0
孤陌Lv6资深互助
发布于2021-4-8 16:20(编辑于 2021-4-8 16:22)

直接在数据集里过滤就好 了

SELECT * FROM `hypx`where pxdx='${year} 

另外给数据集也这样写 参数名一样 这样就可以过滤了

这样就可以了

然后2行写个条件属性 隐藏行高  判断条件 选择公式 len($$$)=0  就可以把空白数据集的行隐藏了

最佳回答
0
烟尘Lv6高级互助
发布于2021-4-8 16:21(编辑于 2021-4-8 16:22)

模版设计不变,还是两行两个数据集数据

两个数据集同时按年度参数查询

行高的条件换一下,改成len(单元格)==0

image.png

image.png

  • 4关注人数
  • 523浏览人数
  • 最后回答于:2021-4-9 10:15
    请选择关闭问题的原因
    确定 取消
    返回顶部