JasperReports 计算源文本表达式时出错

问题描述 投票:0回答:2

当我在 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);
java jasper-reports
2个回答
0
投票

尝试使用三元运算符,

$F{jdpmarc}.equals("") ? new java.math.BigDecimal(0) : $F{jdpprit}

0
投票

按照@dada67的建议,对我来说添加jasperreports-functions-xxx.jar就足够了(在我的例子中,我使用的是6.6.0版本)

© www.soinside.com 2019 - 2024. All rights reserved.