当前位置:  开发笔记 > 数据库 > 正文

碧玉报表中的动态查询

如何解决《碧玉报表中的动态查询》经验,为你挑选了0个好方法。

我们正在使用jaspersoft studio创建报告,而我被困在查询部分。从逻辑上讲,我想要的查询类型是:

select * from mytable where
                    IF (condition1)
                              raw_sql_part_1
                    ELSE
                              raw_sql_part_2

因此,现在为了在“查询编辑器对话框”中实现此目的,我写道:

select * from mytable where $P!{param1}

并在表达式编辑器中将“ param1”默认值添加为:

"$P{param2}.equals("A") ?  "1 <> 1" :"1=1" , is 'For prompting' as false

还在参数列表中添加了“ param2”,“为提示”为true

我期望这样: 当我点击预览时,它将提示我输入param2值,然后基于param2解析param1中的条件,然后最终将其替换为实际查询中的条件。param2的默认值为空字符串。

实际发生的情况: 当我点击预览时,它会问我期望的param2的值,但是param2的值不用于解析param1中定义的条件,因为param1条件始终解析为其他部分,即“ 1 == 1”,并且主要查询也变成了

select * from mytable where 1==1

Q1:我期望错了吗?

Q2:为什么不使用param2来解析param1中定义的条件?

我们正在使用Jaspersoft Studio 6.1.1版本

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有