JasperReports - 環境設定



JasperReports 是一個純 Java 庫,而不是一個獨立的應用程式。它不能獨立執行,因此需要嵌入到另一個客戶端或伺服器端的 Java 應用程式中。由於它是基於 Java 的,因此它可以在任何支援 Java 的平臺上執行(JDK 1.3 及更高版本)。所有 JasperReport 的功能都集中在一個 JAR 檔案中,jasperreports-x.x.x.jar。這個 JAR 以及所需的和可選的庫(.ZIP 檔案)可以從以下網站下載:JasperReport 庫連結。從該連結下載最新版本。

ZIP 檔案包含 JasperReports JAR 檔案以及 JasperReports 原始碼、依賴 JAR 和許多演示 JasperReport 功能的示例。

JasperReport 環境

要開始建立報表,我們需要設定好環境。將下載的 JasperReport.ZIP 檔案解壓縮到任何位置(在本例中,我們將其解壓縮到 C:\tools\jasperreports-5.0.1)。解壓縮檔案的目錄結構與下面顯示的相同 -

Jasper directory structure

以下是所有目錄的詳細資訊 -

  • build - 包含已編譯的 JasperReport 類檔案。

  • demo - 包含各種示例,演示了 JasperReports 功能的幾個方面。

  • dist - 包含 jasperreports-x.x.x.jar 檔案。我們將把這個 JAR 檔案新增到我們的 CLASSPATH 中以利用 JasperReports。

  • docs - 包含 JasperReports 文件的本地副本。

  • lib - 包含所有需要的 JAR,用於構建 JasperReports 和在我們的應用程式中使用它。

  • src - 包含 JasperReports 原始碼。

  • build.xml - 一個 ANT 構建檔案,用於構建 JasperReports 原始碼。如果我們不打算修改 JasperReports,則不需要使用此檔案,因為 JasperReports 以編譯形式分發。

  • changes.txt - 一個文字文件,解釋了當前版本和先前版本的 JasperReports 類庫之間的差異。

  • license.txt - 一個文字文件,包含 LGPL(較小通用公共許可證)許可證的全文。

  • readme.txt - 一個文字文件,包含有關如何構建和執行提供的示例的說明。

基本上,我們只使用 dist 下的 jasperreports-x.x.x.jar 和 lib 目錄下的 JAR 來生成報表。由於 JasperReports 是一個開源工具,如果在 jasperreports-x.x.x.jar 中執行期間識別到任何缺陷或錯誤,我們可以修復它並使用 build.xml 檔案重新構建 JAR。

設定 CLASSPATH

要使用 JasperReport,我們需要將以下檔案設定到我們的 CLASSPATH 中 -

  • jasperreports-x.x.x.jar,其中 x.x.x 是 JasperReports 版本。(位於目錄 C:\tools\jasperreports-x.x.x\dist 下)。

  • lib 子目錄下的所有 JAR 檔案(C:\tools\jasperreports-x.x.x\lib)。

在安裝時,我們使用了 JasperReport 5.0.1 版本。右鍵單擊“我的電腦”,然後選擇“屬性”,在“高階”選項卡下單擊“環境變數”按鈕。現在用 C:\tools\jasperreports-5.0.1\dist\jasperreports-5.0.1.jar:C:\tools\jasperreports-5.0.1\lib 更新“Path”變數。現在您已準備好建立報表了。

在本教程的所有示例中,我們都使用了 ANT 任務來生成報表。build 檔案負責匯入生成報表所需的所有必需 JAR。因此,如上所述設定 CLASSPATH 將僅幫助那些希望在不使用 ANT 的情況下生成報表的人。

構建設定

本教程中的所有示例 -

  • 都是使用簡單的文字編輯器編寫的。

  • 都儲存在目錄 C:\tools\jasperreports-5.0.1\test\src\com\tutorialspoint 下。

  • 都已使用 Apache ANT 從命令提示符編譯和執行。我們將使用一個 baseBuild.xml 檔案,我們將在後續章節中將其匯入 ANT build.xml 檔案中。將此檔案儲存到 C:\tools\jasperreports-5.0.1\test。以下是 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.tutorialspoint.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:\tools\jasperreports-5.0.1\test) -

  • jasper.dir - 是 C:\tools\jasperreports-5.0.1 目錄

  • lib.dir - 是 C:\tools\jasperreports-5.0.1\lib 目錄

  • src.dir - 是 C:\tools\jasperreports-5.0.1\test\src

  • classes.dir - 是 C:\tools\jasperreports-5.0.1\test\classes

  • main-class - com.tutorialspoint.HelpMe。當沒有從命令列傳遞類檔名時,此類是一個簡單的執行類。將此檔案儲存到 C:\tools\jasperreports-5.0.1\test\src\com\tutorialspoint。

package com.tutorialspoint;

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.tutorialspoint.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。

廣告

© . All rights reserved.