JasperReport學習筆記2-建立簡單的報表例子
阿新 • • 發佈:2019-01-23
一,建立簡單的jrxml檔案
Xml程式碼
以上是一個簡單的JRXML檔案,實際上就是一個標準的XML檔案,<jasperReport>是根元素,<staticText>表示靜態的資料,<reportElement>定義了<staticText>的位置和寬度,<text>定義了實際的靜態資料。
二,把JRXML檔案解析成jasper檔案,檔案流或JasperReport物件(根據實際情況)
1.建立一個WEB工程,再在WEBROOT目錄下建立一個目錄report
2.使用JasperCompileManager裡面的方法解析JRXML檔案成jasper檔案,檔案流或JasperReport物件
把JRXML檔案parse,再complie成jasper檔案
Java程式碼
或者生成JasperReport物件
Java程式碼
或者以流的方法生成
Java程式碼
當然JasperCompileManager也可以把Jasper檔案變成JRXML的(包括JRXML流,都是靜太的方法)
Java程式碼
三,有了JasperReport物件,檔案流或jasper檔案之後,就可以用JasperFillManager生成JasperPrint物件,jrprint檔案,jrprint檔案流
如下
生成JasperPrint 物件
Java程式碼
生成其它
Java程式碼
第四步,使用JasperExportManager匯出或顯示
Java程式碼
完整的例子
Java程式碼
Xml程式碼
- <?xml version="1.0"?>
- <!DOCTYPE jasperReport
- PUBLIC "-//JasperReports//DTD Report Design//EN"
- "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
- <jasperReport name="FirstReport">
- <detail>
- <band height="20">
-
<
- <reportElement x="20" y="0" width="200" height="20" />
- <text><![CDATA[If you don't see this, it didn't work]]></text>
- </staticText>
- </band>
- </detail>
- </jasperReport>
以上是一個簡單的JRXML檔案,實際上就是一個標準的XML檔案,<jasperReport>是根元素,<staticText>表示靜態的資料,<reportElement>定義了<staticText>的位置和寬度,<text>定義了實際的靜態資料。
二,把JRXML檔案解析成jasper檔案,檔案流或JasperReport物件(根據實際情況)
1.建立一個WEB工程,再在WEBROOT目錄下建立一個目錄report
2.使用JasperCompileManager裡面的方法解析JRXML檔案成jasper檔案,檔案流或JasperReport物件
把JRXML檔案parse,再complie成jasper檔案
Java程式碼
-
JasperCompileManager.compileReportToFile("WebRoot/report/jasperreports_demo.jrxml", "WebRoot/report/langhua.jasper"
或者生成JasperReport物件
Java程式碼
- public static JasperReport compileReport("WebRoot/report/jasperreports_demo.jrxml")
或者以流的方法生成
Java程式碼
- public static void compileReportToStream(InputStream inputStream,OutputStream outputStream)
當然JasperCompileManager也可以把Jasper檔案變成JRXML的(包括JRXML流,都是靜太的方法)
Java程式碼
- writeReportToXmlStream
- writeReportToXmlFile
三,有了JasperReport物件,檔案流或jasper檔案之後,就可以用JasperFillManager生成JasperPrint物件,jrprint檔案,jrprint檔案流
如下
生成JasperPrint 物件
Java程式碼
- public static JasperPrint fillReport(JasperReport jasperReport,Map parameters, JRDataSource dataSource)
生成其它
Java程式碼
- //生成檔案
- public static void fillReportToFile(
- String sourceFileName,
- String destFileName,
- Map parameters,
- Connection connection
- )
- //檔案流
- public static void fillReportToStream(
- JasperReport jasperReport,
- OutputStream outputStream,
- Map parameters,
- Connection connection
- )
第四步,使用JasperExportManager匯出或顯示
Java程式碼
- JasperExportManager.exportReportToHtmlFile(jasperPrint, "c://1.html");
- JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
- //還有很多方法的
完整的例子
Java程式碼
- JasperReport jasperReport;
- JasperPrint jasperPrint;
- try{
- jasperReport = JasperCompileManager.compileReport("WebRoot/report/jasperreports_demo.jrxml");
- jasperPrint = JasperFillManager.fillReport(jasperReport, new HashMap(),new JREmptyDataSource());
- JasperExportManager.exportReportToPdfFile(jasperPrint, "c://1.pdf");
- }
- catch (JRException e){
- e.printStackTrace();
- }