我有iReport / JasperReports服务器的以下问题 .
我正在使用主报表,其中两个子报表返回计算的价格,子报表变量的类型和局部变量是 BigDecimal .
如果子报表的返回值为null(未找到任何行),则主报表中指定的局部变量始终为null . 但我想要“0.00”,因为我想计算一笔金额 .
构造 (return_variable == null ? new BigDecimal(0) : return_variable)
没有帮助,也没有将局部变量设置为默认值 new BigDecimal(0)
. 我总是得到 null 而不是想要的值 "0.00" ;-(
我已经使用版本3.7.6进行了测试,直到4.4 . iReport,没有任何帮助 .
有人对我有暗示吗?先感谢您 .
2 回答
我遇到了同样的问题,除了我试图使用子报表的返回值作为另一个子报表的参数 . 我通过在第二个子报表中使用scriptlet成功获得了我想要的结果 .
我继续这样做:-in subreport 2,我有参数p(Float),它的值是子报告1的返回值 - 在子报告2中,我有一个变量v(Float),用p -in我的scriptlet初始化(在方法beforeDetailEval()中,我测试我的变量v:如果它是null,我赋值new Float(“0.0”)
我工作正常 .
这种情况的限制是,如果要直接在主报表中使用子报表的返回值 . 我试过这样做,但从未成功过 .
希望有一天能帮助别人 .
Cecilka
雅虎通过上帝的恩典,我找到了一个很好的答案来回答我自己的问题 . 发布它可能会在将来帮助某人 .
我的存储过程为
在IReport中,我将变量声明为
这样,它现在显示0.00而不是null .