Jasper Report Library应用

下载jar和ireport:   http://jasperforge.org/
下载Jar开发包和设计器iReport, iReport的版本要和Jar的版本一致,目前下载版本是5.6.0的。

1. 使用ireport,画完报表,配置JDBC作为数据源,保存jrxml文件。(这部分讲解,后面找时间补充下)

2. API解析原理,此图见源代码包中的JasperReports-Ultimate-Guide-3.pdf文档中:



 

       首先是JRXML文件,就是我们所说的模版,用来生成报表的模版,里面会有模版的样式啊,内容等的信息。
这个XML文件通过JasperReports里面的JRXmlLoader.load("xxx")方法来解析XML文件,并生成JasperDesign对象,JasperDesign再通过JRCompiler.compileReport(JasperDesign jasperDesign)编译出JasperReport对象,JasperReport再通过JasperFillManager填充数据,生成相应的JasperPrint对象,然后再分两步,可以选择导出或者打印出来。

3. 实现示例,采用直接连接数据库的方式:

   public void exportWithJdbc() throws JRException, ClassNotFoundException, SQLException {
        String jdbcUrl = "jdbc:mysql://...";
        String dbUser = "...";
        String dbPassword = "...";
        Class.forName("com.mysql.jdbc.Driver");

        JasperReport jasperReport;
        JasperPrint jasperPrint;
        try (Connection con = DriverManager.getConnection(jdbcUrl, dbUser, dbPassword)) {
            jasperReport = JasperCompileManager.compileReport("test.jrxml");

            Map<String, Object> parameters = new HashMap<String, Object>();
            parameters.put("ProductCategory", 0);
            parameters.put("VendorNumber", "ALL");

            jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, con);
            JasperExportManager.exportReportToHtmlFile(jasperPrint, "test.html");
        } catch (JRException e) {
            e.printStackTrace();
        }
    }

4. 如果项目中使用Spring的话,还可以实现Spring提供的一些类,比如JasperReportsHtmlView等。

猜你喜欢

转载自suky.iteye.com/blog/2163133