Не могу просмотреть мой файл ireport в Java

Моя проблема в том, что я не могу просмотреть файл 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; номер строки: 1; номер столбца: 1; Неверный байт 1 1-байтовой последовательности UTF-8.
в net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:302)
в net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:285)
в net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:274)
в net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:219)
в net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:194)
в net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:185)
в net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:288)
в net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:575)
в ireport.main(ireport.java:35)

Кто-нибудь знает, что не так с моим кодом?

1 ответ

Решение

Вы компилируете файл jrxml, а не .jasper файл (его уже соблюдается), ни jrprint (Объект JasperPrint, он уже заполнен)

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

вам нужно передать .jrxml

эс.

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

Если вы хотите узнать больше о различных форматах отчетов яшмы..

то, что-это-разностного-между-jasperreport-форматы

Замечания:

  1. если у вас уже есть .jasper файла нет необходимости компилировать jrxml пройди .jasper подать в fillReport вместо JasperReport см. комментарий @Lefteris Bab.
  2. в fillReport рассмотрите пропуск пустой HashMap вместо null,
Другие вопросы по тегам