2015-11-12 52 views
0

我有這樣的代碼基本上從數量劃分稅從價格減去:碧玉報告將不會加載

$ F {} unitPriceStd .subtract($ F {} taxAmt .divide($ F {} totalQty) )

但是jrxml不會加載。刪除這段代碼將加載.jrxml。任何想法爲什麼?

所有字段都是BigDecimal。

錯誤原因是taxAmt爲0.00,分割爲totalQty時會導致錯誤。任何想法如何解決這個問題?

回答

1

這個表達式可能拋出異常並且taxAmt爲零的一系列例外其實都不是。這種改進的表達是NullPointerExceptionArithmeticException安全的,但是,我不能說,如果這是你的業務邏輯需要什麼:

($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} ))

+0

非常好的答案,因爲OP業務邏輯,也許在$ F {unitPriceStd}一printWhenExpression! = null –