似乎无法在java中查看我的ireport文件

时间:2015-11-20 13:51:13

标签: java jasper-reports

我的问题是我似乎无法查看我创建和保存的ireport文件。 这是java编码:

private void btnreportActionPerformed(java.awt.event.ActionEvent evt) {                                          
    Connection c; 

    try {
        c = DBConnect.DB();
        String report = "C:\\Users\\p.bwalya\\Documents\\Reports\\NPS Report.jrprint ";
        JasperReport JR = JasperCompileManager.compileReport(report);
        JasperPrint JP = JasperFillManager.fillReport(JR,null,c);
        JasperViewer.viewReport(JP);
    } catch(SQLException | JRException e) {
        e.printStackTrace();
    }
}                                         

以下是错误消息:

  

net.sf.jasperreports.engine.JRException:
  org.xml.sax.SAXParseException; lineNumber:1; columnNumber:1;无效   1字节UTF-8序列的字节1   at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:302)
  at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:285)
  在net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:274)
  at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:219)
  在net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194)
  at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185)
  at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:288)
  at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575)
  在ireport.main(ireport.java:35)

有谁知道我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

您编译 jrxml 文件而不是.jasper文件(已经编译)和jrprint(JasperPrint对象,已填充)

String report = "C:\\Users\\p.bwalya\\Documents\\Reports\\NPS Report.jrprint ";
JasperReport JR = JasperCompileManager.compileReport(report);

您需要传递 .jrxml

ES。

String report = "C:\\Users\\p.bwalya\\Documents\\Reports\\NPS_Report.jrxml";
JasperReport JR = JasperCompileManager.compileReport(report);

如果您想了解更多有关不同jasper报告格式的信息..

what-is-the-difference-between-jasperreport-formats

注意:

  1. 如果您已经拥有.jasper文件,则无需编译jrxml,只需将.jasper文件传递给fillReport而不是JasperReport请参阅@Lefteris Bab评论。
  2. fillReport中考虑传递空HashMap而不是null