jasperreport教程:[6]查看和打印报告
1、报表填充过程JasperPrint对象的输出可以使用内置的浏览器组件来查看,打印或导出到更多的流行的文件格式,如PDF,HTML,RTF,XLS,ODT,CSV或XML。Jasper文件查看和打印将包括在本章中。
2、查看报表JasperReport提供了一个内置的浏览器观看原始格式生成的报表。这是一个基于Swing的组件和其他Java应用程序可以无需将文档导出为其他格式,以便查看或打印此集成组件。net.sf.jasperreports.view.JRViewer类表示这个可视组件。这个类也可以被定制为每个应用程序的需要,通过继承它。JasperReports也有用来查看报表的可视化组件Swing应用程序。此应用程序可以帮助在相同的格式查看报表为*.jrprint就产生了。这个Swing应用程序是在类net.sf.jasperreports.view.JasperViewer实现。要使用此功能,我们可以把这个包成一个Ant目标,以查看报表。查看生成的报告下面的示例演示如何查看使用JasperViewer类的报表。让我们来写一个报告模板。在JRXML文件(C:\tools\jasperreports-5.0.1\test\jasper_report_template.jrxml)的内容如下:
3、<queryString><![CDATA[]]></queryString><fieldnam髫潋啜缅e="country"class="java.lang.String"><fieldDescription><![CDATA[country]]></fieldDescription></field><fieldname="name"class="java.lang.String"><fieldDescription><![CDATA[name]]></fieldDescription></field><columnHeader><bandheight="23"><staticText><reportElementmode="Opaque"x="0"y="3"width="535"height="15"backcolor="#70A9A9"/><box><bottomPenlineWidth="1.0"lineColor="#CCCCCC"/></box><textElement/><text><![CDATA[]]></text></staticText><staticText><reportElementx="414"y="3"width="121"height="15"/><textElementtextAlignment="Center"verticalAlignment="Middle"><fontisBold="true"/></textElement><text><![CDATA[Country]]></text></staticText><staticText><reportElementx="0"y="3"width="136"height="15"/><textElementtextAlignment="Center"verticalAlignment="Middle"><fontisBold="true"/></textElement><text><![CDATA[Name]]></text></staticText></band></columnHeader><detail><bandheight="16"><staticText><reportElementmode="Opaque"x="0"y="0"width="535"height="14"backcolor="#E5ECF9"/><box><bottomPenlineWidth="0.25"lineColor="#CCCCCC"/></box><textElement/><text><![CDATA[]]></text></staticText><textField><reportElementx="414"y="0"width="121"height="15"/><textElementtextAlignment="Center"verticalAlignment="Middle">
4、<fontsize="9"/></textElement><textFieldExpressionclass="java.lang.String"><![CDATA[$F{country}]]></textFieldExpression></textField><textField><reportElementx="0"y="0"width="136"height="15"/><textElementtextAlignment="Center"verticalAlignment="Middle"/><textFieldExpressionclass="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression></textField></band></detail></jasperReport>接下来,让我们通过Java数据对象(Javabean)的集合,到Jasper报表引擎,填补了这一编译报告。写一个POJODataBean.java表示数据对象(的Javabean)。这个类定义了两个字符串对象name和country。把它保存到目录C:\tools\jasperreports-5.0.1\test\src\
5、packagepublicclassDataBean{privateStringname;privateStringcountry;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetCountry(){returncountry;}publicvoidsetCountry(Stringcountry){this.country=country;}}编写一个类DataBeanList.java具有业务逻辑生成javabean对象的集合。这是进一步传递到Jasper报表引擎,生成报告。在这里,我们添加在列表中的4个DataBean进行对象。把它保存到目录C:\tools\jasperreports-5.0.1\test\src\com\yiibai.packageimportjava.util.ArrayList;publicclassDataBeanList{publicArrayList<DataBean>getDataBeanList(){ArrayList<DataBean>dataBeanList=newArrayList<DataBean>();dataBeanList.add(produce("Manisha","India"));dataBeanList.add(produce("DennisRitchie","USA"));dataBeanList.add(produce("V.Anand","India"));dataBeanList.add(produce("Shrinath","California"));returndataBeanList;
6、写一个主类文件JasperReportFill.java,它从类(DataBeanList)得到的javabean的集合,并将其传稣匚邸腼递到Jasper报表引擎,填补了报告模板。把它保存到目录C:\tools\jasperreports-5.0.1\test\src\com\yiibai.packagecom.yiibai;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Map;importnet.sf.jasperreports.engine.JRException;importnet.sf.jasperreports.engine.JasperFillManager;importnet.sf.jasperreports.engine.data.JRBeanCollectionDataSource;publicclassJasperReportFill{@SuppressWarnings("unchecked")publicstaticvoidmain(String[]args){StringsourceFileName="c://tools/jasperreports-5.0.1/test/jasper_report_template.jasper";DataBeanListDataBeanList=newDataBeanList();ArrayList<DataBean>dataList=DataBeanList.getDataBeanList();JRBeanCollectionDataSourcebeanColDataSource=newJRBeanCollectionDataSource(dataList);Mapparameters=newHashMap();try{JasperFillManager.fillReportToFile(sourceFileName,parameters,beanColDataSource);}catch(JRExceptione){e.printStackTrace();}}}让我们来写一个目标viewFillReport的build.xml文件。build.xml文件如下所示:导入文件-baseBuild.xml环境设置,并应放置在同一目录中的build.xml。<?xmlversion="1.0"encoding="UTF-8"?><projectname="JasperReportTest"default="viewFillReport"basedir="."><importfile="baseBuild.xml"/><targetname="viewFillReport"depends="compile,compilereportdesing,run"description="Launchesthereportviewer
7、 topreviewthereportstoredinthe.JRprintfile."><javaclassname="net.s熠硒勘唏f.jasperreports.view.JasperViewer"fork="true"><argvalue="-F${file.name}.JRprint"/><classpathrefid="classpath"/></java></target><targetname="compilereportdesing"description="CompilestheJXMLfileandproducesthe.jasperfile."><taskdefname="jrc"classname="net.sf.jasperreports.ant.JRAntCompileTask"><classpathrefid="classpath"/></taskdef><jrcdestdir="."><src><filesetdir="."><includename="*.jrxml"/></fileset></src><classpathrefid="classpath"/></jrc></target></project>接下来,让我们打开命令行窗口并转到build.xml文件放置的目录。最后执行的命令ant-Dmain-class=com.yiibai.JasperReportFill(viewFillReport是默认的目标)。因此,我们看到一个JasperViewer窗口,如下面的屏幕: