我的问题是我似乎无法查看我创建和保存的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)
有谁知道我的代码出了什么问题?
答案 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
注意:
.jasper
文件,则无需编译jrxml
,只需将.jasper
文件传递给fillReport
而不是JasperReport
请参阅@Lefteris Bab评论。fillReport
中考虑传递空HashMap
而不是null
。