《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下載下傳