《jasperreport入门教程之查看和打印报告》由会员分享,可在线阅读,更多相关《jasperreport入门教程之查看和打印报告(16页珍藏版)》请在金锄头文库上搜索。
1、jasperreport 入门教程之查看和打印报告jasperreport 入门教程之查看和打印报告报表填充过程 JasperPrint 对象的输出可以使用内置的浏览器组件来查看,打印或导出到更多的流行的文件格式,如 PDF,HTML,RTF,XLS,ODT,CSV 或XML。Jasper 文件查看和打印将包括在本章中。查看报表JasperReport 提供了一个内置的浏览器观看原始格式生成的报表。这是一个基于 Swing 的组件和其他 Java 应用程序可以无需将文档导出为其他格式, 以便查看或打印此集成组件。net.sf.jasperreports.view.JRViewer 类表示这个可
2、视组件。这个类也可以被定制为每个应用程序的需要,通过继承它。JasperReports 也有用来查看报表的可视化组件 Swing 应用程序。此应用程序可以帮助在相同的格式查看报表为*.jrprint 就产生了。这个 Swing 应用程序是在类 net.sf.jasperreports.view.JasperViewer 实现。要使用此功能,我们可以把这个包成一个 Ant 目标,以查看报表。查看生成的报告下面的示例演示如何查看使用 JasperViewer 类的报表。让我们来写一个报告模板。在 JRXML 文件(C:toolsjasperreports-5.0.1testjasper_repor
3、t_template.jrxml)的内容如下:接下来,让我们通过 Java 数据对象(Java bean)的集合,到 Jasper 报表引擎,填补了这一编译报告。写一个 POJO DataBean.java 表示数据对象(的 Java bean)。这个类定义了两个字符串对象 name 和 country。把它保存到目录 C:toolsjasperreports-5.0.1testsrccomyiibai.package com.yiibai;public class DataBean private String name;private String country;public Strin
4、g getName() return name;public void setName(String name) this.name = name;public String getCountry() return country;public void setCountry(String country) this.country = country;编写一个类 DataBeanList.java 具有业务逻辑生成 java bean 对象的集合。这是进一步传递到 Jasper 报表引擎,生成报告。在这里,我们添加在列表中的 4 个DataBean进行对象。把它保存到目录C:toolsjas
5、perreports-5.0.1testsrccomyiibai.package com.yiibai;import java.util.ArrayList;public class DataBeanList public ArrayList getDataBeanList() ArrayList dataBeanList = new ArrayList();dataBeanList.add(produce(“Manisha“, “India“);dataBeanList.add(produce(“Dennis Ritchie“, “USA“);dataBeanList.add(produce
6、(“V.Anand“, “India“);dataBeanList.add(produce(“Shrinath“, “California“);return dataBeanList;/* This method returns a DataBean object,* with name and country set in it.*/private DataBean produce(String name, String country) DataBean dataBean = new DataBean();dataBean.setName(name);dataBean.setCountry
7、(country);return dataBean;写一个主类文件 JasperReportFill.java,它从类(DataBeanList)得到的 javabean 的集合,并将其传递到 Jasper 报表引擎,填补了报告模板。把它保存到目录 C:toolsjasperreports-5.0.1testsrccomyiibai.package com.yiibai;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import net.sf.jasperreports.engine.JRExc
8、eption;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;public class JasperReportFill SuppressWarnings(“unchecked“)public static void main(String args) String sourceFileName =“c:/tools/jasperreports-5.0.1/test/jasper_report_templ
9、ate.jasper“;DataBeanList DataBeanList = new DataBeanList();ArrayList dataList = DataBeanList.getDataBeanList();JRBeanCollectionDataSource beanColDataSource =new JRBeanCollectionDataSource(dataList);Map parameters = new HashMap();try JasperFillManager.fillReportToFile(sourceFileName,parameters,beanCo
10、lDataSource); catch (JRException e) e.printStackTrace();让我们来写一个目标 viewFillReport 的 build.xml 文件。 build.xml 文件如下所示:导入文件 - baseBuild.xml 环境设置,并应放置在同一目录中的 build.xml。接下来,让我们打开命令行窗口并转到 build.xml 文件放置的目录。最后执行的命令 ant -Dmain-class=com.yiibai.JasperReportFill( viewFillReport 是默认的目标)。因此,我们看到一个 JasperViewer 窗口
11、,如下面的屏幕: 打印报表我们可以使用 net.sf.jasperreports.engine.JasperPrintManager 类打印的JasperReports 类库生成的文件(在他们的专有格式 i.eJasperPrint 对象)。这是依赖于 Java2 API 打印一个假象类。 我们还可以打印文档, 一旦 JasperReport的文档导出为其他格式,如 HTML 或 PDF。 打印生成的报告下面的代码演示报表的打印。让我们更新现有的类 JasperReportFill。我们将使用 JasperPrintManager.printReport()方法。此方法需要源文件名.jrpri
12、nt(这里我们通过我们在上一步生成的使用方法JasperFillManager.fillReportToFile()) 作为第一个参数。 第二个参数是布尔值,用于显示标准打印对话框(我们将其设置为 true 这里)。package com.yiibai;import java.util.ArrayList;import java.util.HashMap;import java.util.Map;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JasperFillManager;
13、import net.sf.jasperreports.engine.JasperPrintManager;import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;public class JasperReportFill SuppressWarnings(“unchecked“)public static void main(String args) String sourceFileName = “c:/tools/jasperreports-5.0.1/“ +“test/jasper_report_templa
14、te.jasper“;String printFileName = null;DataBeanList DataBeanList = new DataBeanList();ArrayList dataList = DataBeanList.getDataBeanList();JRBeanCollectionDataSource beanColDataSource =new JRBeanCollectionDataSource(dataList);Map parameters = new HashMap();try printFileName = JasperFillManager.fillRe
15、portToFile(sourceFileName,parameters,beanColDataSource);if(printFileName != null)JasperPrintManager.printReport(printFileName, true); catch (JRException e) e.printStackTrace();现在,让我们将此文件保存到目录C:toolsjasperreports-5.0.1testsrccomyiibai. 我们将使用ANT编译并执行此文件.build.xml 文件的内容如下:接下来,让我们打开命令提示符并转到 build.xml 文件
16、放置的目录。最后,执行命令 ant -Dmain-class=com.yiibai.JasperReportPrint. 因此,会出现一个打印对话框。单击确定以打印文档。同为比较常用的报表工具,FineReport 的报表查看和打印不需要编码实现,FineReport 中所有的报表代码细节被隐藏,呈现出的是是可视化的设计过程。在 FineReport 中,查看报表只需要点击 报表设计器中 的预览报表按钮,以分页预览为例,讲述一下 FineReport 中报表的查看效果和设置:查看查看1. 描述分页预览即普通预览模式,FineReport 的默认预览方式,一般在只需要查看报表数据用于分析的时候使用。下面我们以内置的 GettingStarted.cpt 模板为例,来看看分页预览的使用方式以及其一些属性的设置。2. 分页预览直接打开设计器,双击打开 GettingStarted.cpt