JasperReports - 环境设置


JasperReports 是一个纯 Java 库,而不是一个独立的应用程序。它不能独立运行,因此需要嵌入到另一个客户端或服务器端 Java 应用程序中。由于它基于 Java,因此可以在任何支持 Java 的平台(JDK 1.3 及更高版本)上运行。JasperReport 的所有功能都集中在一个 JAR 文件 jasperreports-xxxjar 中。该 JAR 以及必需的和可选的库(.ZIP 文件)可以从以下站点下载:JasperReport Library Link。从此链接下载最新版本。

ZIP 文件包含 JasperReports JAR 文件以及 JasperReports 源代码、依赖 JAR 以及演示 JasperReport 功能的大量示例。

JasperReport环境

要开始创建报告,我们需要准备好环境。将下载的 JasperReport.ZIP 文件解压到任意位置(在我们的例子中,我们将其解压到 C:\tools\jasperreports-5.0.1)。提取文件的目录结构如下所示 -

贾斯珀目录结构

这是所有目录的详细信息 -

  • build - 包含已编译的 JasperReport 类文件。

  • demo - 包含各种示例,演示 JasperReports 功能的几个方面。

  • dist - 包含 jasperreports-xxxjar 文件。我们将这个 JAR 文件添加到我们的 CLASSPATH 中以利用 JasperReports。

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

  • lib - 包含构建 JasperReports 和在我们的应用程序中使用它所需的所有 JAR。

  • src - 包含 JasperReports 源代码。

  • build.xml - 用于构建 JasperReports 源代码的 ANT 构建文件。如果我们不打算修改 JasperReports,则不需要使用此文件,因为 JasperReports 以编译形式分发。

  • changes.txt - 一个文本文档,解释 JasperReports 类库当前版本和以前版本之间的差异。

  • license.txt - 包含 LGPL(较宽松的通用公共许可证)许可证全文的文本文档。

  • readme.txt - 文本文档,包含有关如何构建和执行所提供示例的说明。

基本上,我们只使用dist下的jasperreports-xxxjar和lib目录下的JAR来生成报告。由于 JasperReports 是一个开源工具,如果在 jasperreports-xxxjar 执行过程中发现任何缺陷或错误,我们可以修复它并使用 build.xml 文件再次构建 JAR。

设置类路径

要使用 JasperReport,我们需要将以下文件设置到我们的 CLASSPATH -

  • jasperreports-xxxjar,其中 xxx 是 JasperReports 版本。这可以在目录 C:\tools\jasperreports-xxx\dist 下找到。

  • lib子目录 (C:\tools\jasperreports-xxx\lib)下的所有 JAR 文件。

安装时,我们使用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 任务来生成报告。构建文件负责导入生成报告所需的所有 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

  • 主类- 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 ");
   }
}

贾斯珀经理课程

有许多类,将用于编译 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。