在Java中填充没有参数的JasperReports报告

时间:2014-07-24 21:58:06

标签: java jasper-reports

当我按下按钮时,我想要的是基于给定的数据源显示我的 JasperReports 报告。我可以去 iReport 并查看报告,因为它现在应该是,没有需要传递的参数。但是当我在 jFrame 上按下某个特定按钮时,我需要这样做。一个 HashMap 应该用来传递params而且我一直得到 NullPointerException 而不是我使用null或只是一个空的 HashMap < / em>的。但是没有什么可以放在 HashMap 中。

我也不断收到这个错误:
log4j:WARN没有为记录器找到appender
(net.sf.jasperreports.extensions.ExtensionsEnvironment)。
log4j:WARN请正确初始化log4j系统。

代码:

        String fileName = "./ArchiveSummary.jasper";
        HashMap hm = new HashMap();
        try{
            Class.forName("com.mysql.jdbc.Driver");
            Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/full", "root", "");
            if (connection == null) {
                JOptionPane.showMessageDialog (null, "Problems accessing the Database. Program will close.", "Database Error", JOptionPane.ERROR_MESSAGE);
                System.exit(1);
            }
        JasperPrint jprint = JasperFillManager.fillReport(fileName, hm,connection);
        JasperExportManager.exportReportToHtmlFile(jprint, "./");
        JasperViewer.viewReport(jprint);
        } catch (SQLException sqlE) {
            System.out.println("SQL Error "+sqlE.toString());
        }catch (ClassNotFoundException classNotFound) {
            System.out.println("Class not found");
        }catch (HeadlessException exp) {
            System.out.println("ERROR "+ exp.toString());
        } catch (JRException ex) {
            System.out.println(ex.toString());
        }

顺便说一句,文件名不是空指针。
这段代码永远不会超过JasperPrint ......

编辑,整个例外:

  

log4j:WARN找不到记录器的appender   (net.sf.jasperreports.extensions.ExtensionsEnvironment)。 log4j的:WARN   请正确初始化log4j系统。线程中的异常&#34; AWT-EventQueue-0&#34;   java.lang.Class.isAssignableFrom的java.lang.NullPointerException(本机方法)
  at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat JRFillTextField.java:706)
  at net.sf.jasperreports.engine.fill.JRFillTextField.getFormat(JRFillTextField.java:706)     在   net.sf.jasperreports.engine.fill.JRFillTextField.evaluateText(JRFillTextField.java:394)     在   net.sf.jasperreports.engine.fill.JRFillTextField.evaluate(JRFillTextField.java:368)     在   net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:258)     在   net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:499)     在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillBandNoOverflow(JRVerticalFiller.java:439)     在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageHeader(JRVerticalFiller.java:403)     在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:264)     在   net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)     在   net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:946)     在   net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845)     在   net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)     在   net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)     在   net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)     在   PINdiodefuselog.PINdiodeDialog.actionPerformed(PINdiodeDialog.java:268)     在   javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

0 个答案:

没有答案