我有这个代码基本上从qty中划分税并从价格中扣除:
$ F {unitPriceStd} .subtract($ F {taxAmt} .divide($ F {totalQty}))
但是jrxml不会加载。删除这段代码将加载.jrxml。知道为什么吗?
所有字段都是BigDecimal。
错误原因是taxAmt为0.00,并在划分为totalQty时导致错误。知道如何解决这个问题吗?
答案 0 :(得分:1)
这个表达式可能抛出一系列异常而taxAmt
为零实际上都不是。此修改后的表达式NullPointerException
和ArithmeticException
是安全的,但是,我无法判断这是否是您的业务逻辑所需要的:
($F{unitPriceStd} == null ? BigDecimal.ZERO : $F{unitPriceStd})
.subtract(
($F{taxAmt} == null ? BigDecimal.ZERO : $F{taxAmt})
.divide(
($F{totalQty} == null || $F{totalQty}.equals(BigDecimal.ZERO)) ? BigDecimal.ONE : $F{totalQty}
))