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)。解壓縮檔案的目錄結構如下圖示:

Jasper directory structure

下面是所有目錄的詳細資訊:

  • 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檔案,檢視生成的報表和報表設計序號。

Manager Classes這些類的列表是:
  • 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環境。