贾斯珀报告如果其他条件表达

时间:2014-07-03 03:32:03

标签: if-statement jasper-reports

我想问一下ireport jasper报告中的if else表达式。我可以知道if else语句中是否可以有多个或多个参数?

(($P{endDate}.isEmpty()==true || $P{endDate}.equals(""))? "" :
" createDate>='" + $P{startDate} +"'" && " createDate<='" + $P{endDate} +"'")

根据上面的代码,我不允许使用“&amp;&amp;”。它会提示语法错误。 除此之外,我可以知道任何解决方案吗?非常感谢你。

1 个答案:

答案 0 :(得分:1)

我假设它是你试图写的查询表达式。您可能需要执行以下操作:

为数据集创建参数。不应该“提示”此参数,并将其称为DATE_LIMIT_EXPRESSION。然后,您应该将其默认值设置为表达式。例如(如果我得到你的意思),这可能是你的默认表达式:

"1" + 
(($P{startDate}.isEmpty() == false) ? (" AND createDate >= " + $P{startDate}) : "") +
(($P{stopDate}.isEmpty() == false) ? (" AND stopDate <= " + $P{stopDate}) : "")

现在,您的数据集查询应该类似于:

select 
    ...
where $P!{DATE_LIMIT_EXPRESSION}

注意“$ P!”句法。您可以在Jasper Reports' documentation

中找到有关此内容的更多信息