JasperReports_3.5_ch03

3
创建第一份报表
本章我们将创建、编译、预览我们的第一份报表。
通过本章学习,我们将能够:
•创建一份简单的JRXML报表模板
•用JasperReports自定义ANT目标来预览报表模板
•编译JRXML文件生成Jasper二进制报表模板
•编写从JasperReports模板生成报表的代码
•通过JaspreReports提供的工具浏览生成的JasperReports本地格式报表
•生成能够显示在web浏览器中的报表
•识别与报表中各片段相对应的JRXML元素
创建JRXML报表模板
创建报表的第一步是创建一份JRXML模板,我们在第1章中介绍了,JasperReports的JRXML模板是标准的XML文件。但是,依照惯例,其扩展
名为.jrxml,称为JRXML文件或JRXML模板。JRXML模板可以手工编写,也
可以使用可视化报表模板生成工具。时下,最流行的JRXML报表模板生成工具
是iReport。我们将在第10章中介绍它。
所有的JRXML文件都包含一个<jasperReport>根元素,它又包含若干子元素。所有的子元素都是可选的。因为而我们在这一章里主要是感受一下怎样设计报表,所以略掉了大多数<jasperReport>子元素,而只用了一个名为<detail>的子元素。
我们的第一份报表将显示一个静态的字符串,其JRXML如下:
忆大唐
<?xml version="1.0"?>
<jasperReport
xmlns="jasperreports.sourceforge/jasperreports"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="jasperreports.sourceforge/
jasperreports jasperreports.
sourceforge/xsd/jasperreport.xsd"
name="FirstReport">
<detail>
<band height="20">
<staticText>
<reportElement x="20" y="0" width="200" height="20"/>
<text>
<![CDATA[If you don't see this, it didn't work]]>
</text>
</staticText>
</band>
</detail>
</jasperReport>
在这个JRXML文件的元素中,有些我们在前面的章节中还没有接触过。例如:
•<staticText> 定义了静态文本,它不需要依赖于任何数据源、变量、参数或报表表达式。
•<reportElement> 定义了<staticText>元素的位置和宽度。
•<text> 定义了显示在报表上的实际的静态文本。
在上面的例子中,我们看到了<band>元素。<detail>元素只能包含一个单独的<band>元素作为其子元
素,而<band>元素可以包含许多不同的元素,用来显示文本、图表、图片或几何图形。本例中,它只包含了一个<staticText>元素。
对于<staticText>元素和所有<band>元素的子元素,
<reportElement>元素都是必需的。<reportElement>中的定
义的x和y相对于包含它的父元素(本例中为<staticText>)。
预览XML报表模板什么是君主立宪制
JasperReports里有个工具可以用来预览报表的设计效果,它使得报表的设计更加快速。通过它,我们不用编译和填充就能立即对报表进行预览。
该工具是一个独立的Java应用程序,它包含在JasperReports的JAR文件中。需要执行的类是net.sf.jasperreports.view.JasperDesignViewer,执行它的最简单方法是把所有需要的库都添加到CLASSPATH中,然后使用ANT目标来运行它,这也是在工程JAR文件中的JasperReports范例所使用的方法,下面的ANT构建文件将加载JasperDesignViewer来预览我们刚完成的报表:<project name="FirstReport XML Design Preview" default="viewDesignXML"
basedir=".">
<description>
Previews our First Report XML Design
</description>
<property name="file.name" value="FirstReport" />
<!-- Directory where the JasperReports project file was extracted, needs to be changed to match the local environment --> <property name="jasper.dir"
value="/opt/jasperreports-3.5.2"/>
<property name="classes.dir" value="${jasper.dir}/build/classes" />
<property name="lib.dir" value="${jasper.dir}/lib" />
<path id="classpath">
<pathelement location="./"/>
<pathelement location="${classes.dir}" />
海量搜索<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="viewDesignXML"
曲金华
马丁麦克多纳description="Launches the design viewer to preview the XML
report design.">
<java classname="net.sf.jasperreports.view.JasperDesignViewer"
fork="true">
<arg value="-XML"/>
<arg value="-F${file.name}.jrxml"/>
<classpath refid="classpath"/>
细胞自噬</java>
</target>
</project>
这个ANT构建文件必须和JRXML文件保存在相同的目录中,建议把JRXML文件的报表名和文件名使
用一致的名称。报表名称在<jasperReport>根元素中定义,在这里,我们用FirstReport作为报表名称。因此,建议报表模板的文件名使用FirstReport.jrxml。
如果我们保存ANT构建文件为标准名称l,就不需要在命令行中再指定构建文件名。此处的示例中,构建文件有一个名为viewDesignXML的
<target>目标元素。由于它是缺省的目标,我们就不需要在命令行中指定它。只需要在命令行输入ant,缺省的目标就会被执行,并显示出预览报表。
$ ant
Buildfile: l
viewDesignXML:
执行完viewDesignXML目标后,我们会看到一个窗口显示出预览状态的报表模板,其标签名称为JasperDesignViewer。
通过关闭窗口,或在命令行窗口中输入Ctrl-c,这个JasperDesignViewer可以被安全地关闭。
在这个特殊的例子中中,我们能在预览状态下看到全部文本,这
是因为此报表只包含了静态文本。如果报表的数据是来源于数据
库或报表参数,此处不会显示实际文本,而是显示包含了要显示
的数据的表达式。这是因为JasperDesignViewer不会对数据源
或报表参数进行实际访问。
创建二进制报表模板
JRXML不能用来直接生成报表,它们需要被编译成JasperReports的本地二进制格式,编译后的报表模板称为Jasper文件。有两种不同的方法来把JRXML 文件编译成Jasper文件:通过编程实现,或通过JasperReports提供的自定义ANT任务来实现。
通过编程来编译JRXML模板
通过调用net.ine.JasperCompileManager类的compileReportToFile()方法,可以把JRXML模板编译成Jasper文件。JasperCompileManagerpileReportToFile()方法有三个重载版本,如下所示:
•JasperCompileManagerpileReportToFile(String
sourceFileName)
•JasperCompileManagerpileReportToFile(String
sourceFileName, String destFileName)
•JasperCompileManagerpileReportToFile(JasperDesign jasperDesign, String destFileName)
下面的表格对这些方法的参数进行了说明:
参数说明
String sourceFileName 此参数指定JRXML模板的位置,它被用于编译生成报表
模板。它可以是绝对路径,也可以相对路径。编译生成

本文发布于:2024-09-23 01:21:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/292680.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报表   模板   文件   显示
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议