当我在JasperSoft Studio上测试报告时,它运行良好。
但是当我导出报告并在主项目中对其进行测试时,出现此错误:
评估源文本的表达式时出错: IF($ F {jdpmarc} .equals(“”),new java.math.BigDecimal(0),$ F {jdpprit})
我已经尝试过这些事情:
更改此表达式,因为它是BigDecimal操作
IF($F{jdpmarc}.equals(""), 0,$F{jdpprit})
为此
IF($F{jdpmarc}.equals(""),new java.math.BigDecimal(0),$F{jdpprit})
这是我的代码:
Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/db","user", "password");
HashMap<String, Object> data = new HashMap<String, Object>();
data.put("Proforma", 67929);
String reportPath = "ReporteIva.jasper";
JasperPrint report = JasperFillManager.fillReport(reportPath, data, conn);
JasperViewer viewer = new JasperViewer(report);
viewer.setVisible(true);
答案 0 :(得分:0)
尝试使用三元运算符
$F{jdpmarc}.equals("") ? new java.math.BigDecimal(0) : $F{jdpprit}