Return value iReport子报表返回值
我正在使用iReport 4.0.2,我想在主报告中显示结果。例如,在我的主报告中,我们有两列,我想得到这两列的总和,就像以下格式:Return value iReport子报表返回值,return-value,ireport,subreport,Return Value,Ireport,Subreport,我正在使用iReport 4.0.2,我想在主报告中显示结果。例如,在我的主报告中,我们有两列,我想得到这两列的总和,就像以下格式: A B sum 10 5 15 其中A是主报表中的一个字段,B是我的子报表的返回值。 这很有效。但是,关键是有时子报表不会返回任何值,这就是问题所在。在这种情况下,求和的结果如下: A B sum 10 NULL 正如我们在这里看到的,B是子报表返回值,但它的值既不是NULL也不
A B sum
10 5 15
其中A是主报表中的一个字段,B是我的子报表的返回值。
这很有效。但是,关键是有时子报表不会返回任何值,这就是问题所在。在这种情况下,求和的结果如下:
A B sum
10 NULL
正如我们在这里看到的,B是子报表返回值,但它的值既不是NULL也不是0。这就是为什么我们有这个问题
我试图找到当SQL没有返回结果时如何从子报表中获取返回值。我知道iReport有一个名为“When No Data”的属性,但它没有帮助。
所以我想知道,在iReport中,我们是否有其他方法来解决这个问题,或者使用一些SQL技巧。我认为在第二个示例中,B实际上是空的,但可能您的文本字段设置了“空时为空”属性。除了B.</P>空白外,我还可以复制你的结果。 真正的问题是不能用空值进行加法或减法。JasperReports将只打印空值。如果表达式中的某个变量为null,则必须添加一些逻辑以提供默认值。比如说
$F{MAIN_REPORT_FIELD} - ($V{SUB_RESULT} == null ? 0 : $V{SUB_RESULT})
不幸的是,对于在JasperReports 4.0.2()中使用Groovy for表达式的报告来说,这是错误的,并且总是返回null
您有几个选择:
执行上面给出的相同条件。谢谢Peter,你完全正确。我已经使用一些SQL技巧解决了这个问题,在ireport中,我只设置了一个var来记录行,我给这个var一个init值0。所以在这种情况下,当SQL不返回任何值时,它的值是0。然后我将这个var返回到我的主报告中,我可以使用logic expressi另一方面,我正在尝试升级到4.1.1版。谢谢。