JasperReport環境設置
JasperReport是一個純Java庫,而不是一個獨立的應用程序。它不能單獨運行,因此它需要被嵌入到另一個客戶端或服務器端的Java應用程序。因為它是基於Java,它可以在任何支持Java的平台(JDK1.3及以上)上運行。所有JasperReports的功能是聚集在一個JAR文件中,一般名稱為:jasperreports-x.x.x.jar。JasperReport庫鏈接:這個JAR文件必需及可選庫(壓縮文件)可以從網站上下載。下載最新的版本。
ZIP文件包含JasperReports源代碼,相關JAR和大量的實例演示JasperReport功能以及JasperReportsJAR文件。
JasperReport環境配置
要開始創建我們需要設置環境準備。解壓縮下載的JasperReport ZIP文件到任何位置(在我們的例子中,我們已經提取到C: oolsjasperreports-5.0.1)。解壓縮文件的目錄結構如下圖示:
下麵是所有目錄的詳細信息:
-
build: 包含已編譯的JasperReport類文件。
-
demo: 包含演示JasperReports功能幾個方麵的各種例子。
-
dist: 包含的JasperReports-x.x.x.jar文件。將這個JAR文件添加到CLASSPATH。
-
docs: 包含了JasperReports的文檔的本地副本。
-
lib: 包含所需的所有JAR文件,這樣既可以建立JasperReports,並把它用在我們的應用程序。
-
src: 包含了JasperReports的源代碼。
-
build.xml: Ant構建文件構建JasperReports的源代碼。如果不打算修改JasperReports,並不需要使用這個文件,因為JasperReports發布成已編譯的形式。
-
changes.txt: 一個文本文件解釋的JasperReports類庫的當前和以前版本之間的差異。
-
license.txt: 包含LGPL(較寬鬆通用公共許可證)許可的全文文本文檔。
-
readme.txt: 一個文本文件包含有關如何建立和執行提供的示例說明。
基本上,我們隻使用jasperreports-x.x.x.jar 在lib目錄下的路程和JAR下生成報表。由於Jasper報表作為一個開源的工具,如果任何缺陷或錯誤執行的jasperreports-x.x.x.jar中是公認的,我們可以修複它並使用build.xml文件再次生成的JAR文件。
設置CLASSPATH
要使用JasperReport,需要設置下列文件到CLASSPATH中:
-
jasperreports-x.x.x.jar, 其中x.x.x是JasperReports的版本。此目錄下找到 C: oolsjasperreports-x.x.xdist).
-
lib子目錄中的所有JAR文件 (C: oolsjasperreports-x.x.xlib).
在安裝的時候,我們使用JasperReport5.0.1版本。在“我的電腦”右鍵單擊並選擇“屬性”,“高級”選項卡下單擊“環境變量”按鈕。現在有了這個更新的“路徑”變量添加:C: oolsjasperreports-5.0.1distjasperreports-5.0.1.jar;C: oolsjasperreports-5.0.1lib;. 現在,可以創建報表了。
在本教學中的所有例子中,已經使用Ant任務來生成報告。構建文件會自己負責,包括所有所需的JAR生成報告。因此,設定上述的CLASSPATH隻會幫助生成報表,而無需使用ANT。
生成安裝
在本教學中的所有例子:
-
使用簡單的文本編輯器寫入。
-
已保存的目錄下 C: oolsjasperreports-5.0.1 estsrccomyiibai.
-
已編譯並從命令提示符下執行,使用Apache Ant。我們將使用它我們將在Ant build.xml文件中的後續章節中導入abaseBuild.xml文件。將此文件保存到C: oolsjasperreports-5.0.1 est. 以下是baseBuild.xml文件的內容:
<?xml version="1.0" encoding="UTF-8"?> <project name="JasperReportExample" basedir="."> <description>Previews our JasperReport XML Design</description> <property name="file.name" value="jasper_report_template" /> <!-- Directory where the JasperReports project file was extracted needs to be changed to match the local environment --> <property name="jasper.dir" value="../" /> <property name="dist.dir" value="${jasper.dir}/dist" /> <property name="lib.dir" value="${jasper.dir}/lib" /> <property name="src.dir" value="src" /> <property name="classes.dir" value="classes" /> <property name="main-class" value="com.yiibai.HelpMe" /> <path id="classpath"> <pathelement location="./" /> <pathelement location="${classes.dir}" /> <fileset dir="${lib.dir}"> <include name="**/*.jar" /> </fileset> <fileset dir="${dist.dir}"> <include name="**/*.jar" /> </fileset> </path> <target name="compile" depends="clean-sample"> <mkdir dir="${classes.dir}"/> <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" /> </target> <target name="run" depends="compile"> <echo message="Running class : ${main-class}"/> <java fork="true" classname="${main-class}"> <classpath> <path refid="classpath" /> </classpath> </java> </target> <target name="clean-sample"> <delete dir="${classes.dir}" /> <delete file="./${file.name}.jasper" /> <delete file="./${file.name}.jrprint" /> </target> </project>
此文件具有所有必需的目標,比如清除目錄,編譯java文件,並執行類文件。
以下是baseBuild.xml提到的細節不同的目錄。假設當前目錄是 C: oolsjasperreports-5.0.1 est):
-
jasper.dir: 是 C: oolsjasperreports-5.0.1 directory
-
lib.dir: 是 C: oolsjasperreports-5.0.1lib directory
-
src.dir: 是 C: oolsjasperreports-5.0.1 estsrc
-
classes.dir: 是 C: oolsjasperreports-5.0.1 estclasses
-
main-class: com.yiibai.HelpMe. 這個類執行,如果冇有類文件名是在命令行中通過一個簡單的類。將此文件保存到 C: oolsjasperreports-5.0.1 estsrccomyiibai.
package com.yiibai; public class HelpMe { public static void main(String[] args) { System.out.println("This is the default class executed." + "Please pass the fully qualified class" + " name to be executed as command line" + " parameter, for example," + " com.yiibai.HelpMe "); } }
Jasper 管理類
還有的類,它們將被用來編譯JRXML報表設計,以填補報表,打印報表,導出為PDF,HTML和XML文件,查看生成的報表和報表設計序號。
這些類的列表是:-
net.sf.jasperreports.engine.JasperCompileManager: 用於編譯JRXML報表模板。
-
net.sf.jasperreports.engine.JasperFillManager: 用於填充一個報表,從數據源的數據
-
net.sf.jasperreports.engine.JasperPrintManager: 用於打印的JasperReports類庫生成的文件
-
net.sf.jasperreports.engine.JasperExportManager: 用於獲取PDF,HTML或XML內容以供報表填充過程中產生的文件
-
net.sf.jasperreports.view.JasperViewer: 它代表了一個簡單的Java Swing應用程序,可以加載和顯示報表。
-
net.sf.jasperreports.view.JasperDesignViewer: 用於在設計時預覽報表模板。
設置Apache ANT
我們將構建所有的例子使用Apache Ant。所以請檢查ANT - 設置Apache Ant環境。