Jasper reports 如何在iReport中有条件地传递参数?
有没有办法在iReport中有条件地添加参数 在我的一个报告中,我希望根据其值传递参数。以下是报表查询: 从学生中选择姓名、设计、班级 其中class=$P{calss} 和joinYear=$P{joinYear} 我只想在通过joinYear时添加joinYear条件,若joinYear的值为空,则只应应用一个条件 有没有办法在iReport中检查报表查询中的条件?您可以尝试以下方法:-Jasper reports 如何在iReport中有条件地传递参数?,jasper-reports,ireport,Jasper Reports,Ireport,有没有办法在iReport中有条件地添加参数 在我的一个报告中,我希望根据其值传递参数。以下是报表查询: 从学生中选择姓名、设计、班级 其中class=$P{calss} 和joinYear=$P{joinYear} 我只想在通过joinYear时添加joinYear条件,若joinYear的值为空,则只应应用一个条件 有没有办法在iReport中检查报表查询中的条件?您可以尝试以下方法:- SELECT name, desi, c
SELECT name,
desi,
class
FROM student
WHERE (class=$P{calss} or $P{calss} is null )
AND (joinYear=$P{joinYear} or $P{joinYear} is null)
在这种情况下,您将传递的任何参数都只会在查询中传递该参数值。您可以尝试使用子报表。创建一个伪主报表,它将以子报表的形式调用您的报表,并使用一个伪查询,如
select 1 as dummy
并使用表达式添加变量ie.$V{joinYearCond}
($P{joinYear} == "" || $P{joinYear} == null) ? "" : "and joinYear = " + $P{joinYear}
还要修改报表(现在是子报表)中的查询
对于参数
$p{joinYearCond}
传递$V{joinYearCond}
的值。它看起来不漂亮,但可以工作。创建一个新的参数joinYear\u查询并设置为默认值EXPRESSION
$P{joinYear}==null ? " true": " joinYear=".concat($P{joinYear}.toString())
然后
您可以在中查看更多详细信息:
可能重复的&&&
$P{joinYear}==null ? " true": " joinYear=".concat($P{joinYear}.toString())
select name,desi,class from student where class=$!P{calss} AND $P!{joinYear_query}