天天看點

JasperReports結合iReport制作報表-使用JasperReports生成報表

《JasperReports結合iReport制作報表-使用iReport設計報表》      
已經在http://www.naxsu.com/jasperreports-jie-he-ireport-zhi-zuo-bao-biao-shi-yong-ireport-she-ji-bao-biao/寫得很清楚了,下面就接着說      

下載下傳JasperReports

JasperReports首頁:http://jasperforge.org/projects/jasperreports

下載下傳要注冊,真麻煩

現在的最新版本是4.6.0,下載下傳位址是:http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%204.6.0/

在這裡我下載下傳的是jasperreports-4.6.0-project.zip

環境配置

需要的jar包,這是我測試需求哪個加哪個,我生成PDF和HTML報表用到以下已經足夠了。

commons-beanutils-1.8.0.jar

commons-collections-2.1.1.jar

commons-digester-2.1.jar

commons-logging-1.1.1.jar

groovy-all-1.7.5.jar

iText-2.1.7.jar

iTextAsian.jar

jasperreports-4.6.0.jar

mysql-connector-java-5.1.7-bin.jar

測試程式

在這裡我們就建一個簡單的java項目來測試一下。

生成報表主要分為三個步驟:

<!--[if !supportLists]-->1.       <!--[endif]-->編譯報表

把iReport設計好的報表report1.jrxml編譯成report1.jasper

<!--[if !supportLists]-->2.       <!--[endif]-->填充報表

連接配接資料庫,把1編譯好的report1.jasper填充好,生成report1.jrprint

<!--[if !supportLists]-->3.       <!--[endif]-->導出報表

也就是把2.填充好的報表按照各種格式導出來。

代碼比較簡單,下面直接看代碼:

package com.naxsu.report;

import java.io.File;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.JRExporterParameter;

import net.sf.jasperreports.engine.JasperCompileManager;

import net.sf.jasperreports.engine.JasperFillManager;

import net.sf.jasperreports.engine.JasperPrint;

import net.sf.jasperreports.engine.export.JRHtmlExporter;

import net.sf.jasperreports.engine.export.JRHtmlExporterParameter;

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.util.JRLoader;

public class ReportTest {

    public static void compiler(String sourceFileName, String destFileName) {

       try {

           JasperCompileManager.compileReportToFile(sourceFileName,

                  destFileName);

       } catch (JRException e) {

           e.printStackTrace();

       }

    }

    public static void fill(String sourceFileName, String destFileName) {

       Connection conn = null;

       try {

           Class.forName("com.mysql.jdbc.Driver");

           conn = DriverManager.getConnection(

                  "jdbc:mysql://localhost:3306/report", "root", "123");

           JasperFillManager.fillReportToFile(sourceFileName, destFileName,null, conn);

       } catch (JRException e) {

           e.printStackTrace();

       } catch (ClassNotFoundException e) {

           e.printStackTrace();

       } catch (SQLException e) {

           e.printStackTrace();

       }finally{

           if(conn != null) {

              try {

                  conn.close();

              } catch (SQLException e) {

                  e.printStackTrace();

              }

           }

       }

    }

    public static void exportToHTML(String sourceFileName, String destFileName) {

       try {

           JasperPrint jp = (JasperPrint) JRLoader.loadObject(new File(

                  sourceFileName));

           JRHtmlExporter export = new JRHtmlExporter();

           export.setParameter(JRExporterParameter.JASPER_PRINT, jp);

           export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,

                  destFileName);

           export.setParameter(

                  JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,

                  Boolean.FALSE);

           export.exportReport();

       } catch (JRException e) {

           e.printStackTrace();

       }

    }

    public static void exportToPDF(String sourceFileName, String destFileName) {

       try {

           JasperPrint jp = (JasperPrint) JRLoader.loadObject(new File(

                  sourceFileName));

           JRPdfExporter export = new JRPdfExporter();

           export.setParameter(JRExporterParameter.JASPER_PRINT, jp);

           export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,

                  destFileName);

           export.setParameter(

                  JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,

                  Boolean.FALSE);

           export.exportReport();

       } catch (JRException e) {

           e.printStackTrace();

       }

    }

    public static void main(String[] args) {

       String jrxmlName = "E:\\JasperReports_iReport\\report1.jrxml";

       String jasperFileName = "E:\\JasperReports_iReport\\report1.jasper";

       String jrprintFileName = "E:\\JasperReports_iReport\\report1.jrprint";

       String htmlFileName = "E:\\JasperReports_iReport\\report1.pdf";

       ReportTest.compiler(jrxmlName, jasperFileName);

       ReportTest.fill(jasperFileName, jrprintFileName);

       ReportTest.exportToPDF(jrprintFileName, htmlFileName);

    }

}

 PDF電子版請到:http://itway.iteye.com/blog/1555285下載下傳