JasperReport环境设置 - JasperReports教程
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环境。