Java JasperReports为源文本计算表达式时出错
当我在JasperSoft Studio上测试报告时,它运行良好 但当我导出报告并在我的主项目上测试它时,我得到了以下错误: 计算源文本的表达式时出错: IF($F{jdpmarc}.equals(“”),new java.math.BigDecimal(0),$F{jdprit}) 我试过这些东西: 更改此表达式,因为它是BigDecimal操作Java JasperReports为源文本计算表达式时出错,java,jasper-reports,Java,Jasper Reports,当我在JasperSoft Studio上测试报告时,它运行良好 但当我导出报告并在我的主项目上测试它时,我得到了以下错误: 计算源文本的表达式时出错: IF($F{jdpmarc}.equals(“”),new java.math.BigDecimal(0),$F{jdprit}) 我试过这些东西: 更改此表达式,因为它是BigDecimal操作 IF($F{jdpmarc}.equals(""), 0,$F{jdpprit}) 为此 IF($F{jdpmarc}.equals(""),n
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);
Connection conn=(连接)DriverManager.getConnection(“jdbc:mysql://localhost:3306/db“,”用户“,”密码“);
HashMap数据=新的HashMap();
数据。投入(“形式”,67929);
字符串reportPath=“ReporteIva.jasper”;
JasperPrint report=JasperFillManager.fillReport(reportPath,data,conn);
JasperViewer=新的JasperViewer(报告);
viewer.setVisible(true);
尝试使用三元运算符
$F{jdpmarc}.equals("") ? new java.math.BigDecimal(0) : $F{jdpprit}
使用三元运算符instead@DavidSantos您应该发布小而完整的jrxml和完整的stacktraceMake,确保在应用程序的类路径上有一个jasperreports函数jar。如果您有jar,发布完整的异常stacktrace(包括由..行引起的异常)。给出的错误是因为我使用的是表达式