我有三个参数$P{Clss}
(从船只中选择班级),$P{MinWeight}
和$P{MaxWeight}
。每当我将$P{Clss}
留空时,它始终不显示任何页面。
我的WHERE子句怎么了?我试过这个。
where first.class = $P{Clss} or $P{Clss} is null and displacement between $P{MinWeight} and $P{MaxWeight}
where $P{Clss} is null or $P{Clss} = first.class and displacement between $P{MinWeight} and $P{MaxWeight}
我阅读了与此相关的博客和问题,但不知怎的,它总是显示没有页面,或者我想我在这里真的只是一个菜鸟。
答案 0 :(得分:0)
在Jasper报告中,您需要以不同方式处理此案例,如下所示
ClassParsed
的新参数(仅命名约定)。$P{Clss} != null && !$P{Clss}.isEmpty() ? " first.class = '"+$P{Clss}+"'" : "true"
where $P!{ClassParsed} and displacement between $P{MinWeight} and $P{MaxWeight}
如果您没有为参数$ P {Clss}赋值,那么参数ClassParsed
将如下所示,
where true and displacement between $P{MinWeight} and $P{MaxWeight}
如果您将参数$ P {Clss}的值设为Class1
,则参数ClassParsed
将如下所示
where first.class = 'Class1' and displacement between $P{MinWeight} and $P{MaxWeight}
希望这会帮助你。
答案 1 :(得分:0)
where first.class = ($P{Clss} or $P{Clss} is null) and displacement between $P{MinWeight} and $P{MaxWeight}
我使用这些参数来获取用户位置
select * from location where
a.state = $P{state} and
(a.district = $P{district} or $P{district} is null)
如果任何一个分区参数为空,那么报告也会生成。
PS:干杯!!