JasperReports - 环境设置

JasperReports是一个纯Java库,而不是一个独立的应用程序.它不能独立运行,因此需要嵌入到另一个客户端或服务器端Java应用程序中.由于它是基于Java的,因此可以在任何支持Java的平台(JDK 1.3及更高版本)上运行.所有JasperReport的功能都收集在一个JAR文件jasperreports-x.x.x.jar中.

ZIP文件包括JasperReports JAR文件以及JasperReports源代码,相关JAR以及大量演示JasperReport功能的示例.

JasperReport Environment

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

Jasper目录结构

以下是所有目录的详细信息 :

  • build &minus ;包含已编译的JasperReport类文件.

  • demo : 包含各种示例,演示了JasperReports功能的几个方面.

  • dist : 包含jasperreports-x.x.x.jar文件.我们将把这个JAR文件添加到CLASSPATH中以利用JasperReports.

  • docs : 包含JasperReports文档的本地副本.

  • lib : 包含所有需要的JAR,用于构建JasperReports并在我们的应用程序中使用它.

  • src : 包含JasperReports源代码.

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

  • 更改.txt : 一个文本文档,解释了当前和以前版本的JasperReports类库之间的差异.

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

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

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

设置CLASSPATH

要使用JasperReport,我们需要将以下文件设置为CLASSPATH :

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

  • lib 子目录(C:\tools\jasperreports-xxx \lib).

在安装时,我们使用了JasperReport版本5.0.1.右键单击"我的电脑"并选择"属性",然后单击"高级"选项卡下的"环境变量"按钮.现在用这个 C:\tools\jasperreports-5.0.1\dist\jasperreports-5.0.1.jar:C:\tools\jasperreports-5.0.1\lib 的.现在您已准备好创建报告.

在本教程的所有示例中,我们使用ANT任务生成报告. 构建文件负责导入所有必需的JAR以生成报告.因此,如上所述设置CLASSPATH只会帮助那些希望在不使用ANT的情况下生成报告的人.

构建设置

本教程中的所有示例 :

  • 使用简单的文本编辑器编写.

  • 已保存在目录C:\tools\jasperreports-5.0.1 \ test \ src \ com \ it1352中.

  • 已使用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.IT屋.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.it1352.HelpMe.当没有从命令行传递类文件名时,此类是一个简单的类.将此文件保存到C:\tools \ jasperreports-5.0.1 \test\src\com\

    package com.it1352; 
    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.IT屋.HelpMe ");
       } 
    }

    Jasper Managers Classes

    有多少课程,用于编译JRXML报表设计,填写报表,打印报表,导出为PDF,HTML& XML文件,查看生成的报告和报告设计.

    经理类

    这些类的列表是 :

    设置Apache ANT

    我们是将使用Apache ANT构建所有示例.因此,请检查 ANT  - 环境设置一章,以便在您的系统上设置Apache ANT.

    • 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 : 在设计时用于预览报告模板.