资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
使用JFreeReport生成报表报表生成一直是企业信息化过程中重要的一环,也是目前比较难于实现的一坏,今天作者给大家介绍一种新的报表生成组件JFreeReport oJFreeReport是JFreeReport.Org基于LGPL授权协议提供的一组java包,用丁生成各类报 表,JFweRepo”的数据继承自Swing组件的TableModel接口,使用基于XML的报表格 式定义文件对报表进行格式化。JFreeReport生成的报表可以分页预览、打卬,而且支持 导出为多种格式的文件如pdf、Excel、CSV、html等。更重要的是,JFweRcpoH不仅支 持基于C/S结构的系统,而且支持基于B/S结构的系统中的在线报表显示。更详细的关 于JFreeReport的介绍请大家访问JFreeReport的官方网站JFree.orgo1环境准备1.1 JFreeReport 组件请大家至U 7jfreereport?jfreereport0.&4_7.zip?download 下载JFreeReport组件,下载的是一个ZIP文件,然后将ZIP文件解压缩到c:jfreereport (后面的章节中将使用jfreerepoil_home%表示这个目录)目录下。1.2 JFreeReport 扩展组件请大家到 http:/www.jfree.Org/jfreereport/jfreereport-ext-0.8.4_7.zip 下载 JFreeReport 扩 展组件,他用于支持JFreeReport组件生成的报表的在线显示。请大载后解压缩到 c:jfreereport-ext目录下(后面的章节中将使用%jfreereport_ext_home%表示这个目录)1.3 Ant工具Apache公司提供的一个基于JAVA的自动化脚木引擎,请人家到http:/ant.apache.org/ 下载ant的可执行文件,关于如何使用ant请大家查看ant的帮助文档或者 http:/ant.apache.org/网站上的在线帮助文档。示例中主要是用ant来负责编译java代码。1.4作者提供的代码为了运行本文中作者提到的例子和相关资源文件,请大家下载作者提供的 vivianjDemo.zip 文件和中文转换工具 gb2unicode.jar0 然后解压缩到 %jfreereport_home% vivianjDemo (后面的章节中将使用demo_home%表示这个目录)目录下。2 JFreeReport生成报表的基本步骤我们首先演示一个简单的例子,说明使用JFreeReport生成报表的一些必要的步骤。2.1实例说明在这个例子中,我们将循环生成100条数据放入TableModel中,然后使用JFreeReport 组件提供的预览功能在屏幕上显示生成的报表。注为了简化,这里仅仅是逐条显示数据,不作任何修饰和统计工作,所以也不 使用报表格式定义文件。2.2代码编制整个演示实例(HelloWorld.java)的代码和相关注释如下,如果你执行了 1.3中规定的步骤,你J 以在 % demo _home%/src/org/vivianj/jfreereport/看到这个文件。* HelloWorld.java*/package org.vivianj .j freereport;import java.awt.Color;import java.awt.event. Window Adapter;import java.awt.event.WindowEvent;import java.awt.geom.Point2D;import javax.swing.table.DefaultTableModel;import javax.swing.table.TableModel;import org.j free. report .Boot;import org.jfree.report.ElementAlignment;import org.jfree.report.JFreeReport;import org.jfree.report.ReportProcessingException;import org.jfree.report.elementfactory.TextFieldElementFactory;import org.jfree.report.modules.gui.base.PreviewDialog;import org.jfree.ui.FloatDimension;*使用JFreeReport生成报表的简单例子,用于演示使用JFreeReport生成报表的一些基本步骤木例子中,为了简化操作,报表定义是使用java直接编码* 作者:bookman*/public class HelioWorld/*处理窗口关闭事件*/protected static class CloseHandler extends Window Adapterpublic void windowClosing(final WindowEvent event)System.exit(O);*创建和显示简单的报表犁public HelloWorld()/获得创建报表需要用到的数据final TableModel data = createData();获得报表要用到的报表定义内容final JFreeReport report = createReportDefinition();将报表定义和数据结合report.setData(data);try将生成的报表放到预览窗口中final PreviewDialog preview = new PreviewDialog(report);preview.addWindowListener(new CloseHandler(); preview.pack();显示报表预览窗口preview.setVisible(true);catch (ReportProcessingException e)System.out.println(e);*创建牛成报表需要用到的数据* 返冋一个TableModel实例*/private TableModel createData()final Objectf columnNames = new StringColumn 1 蔦 nColumn2H; final DefaultTableModel result = new DefaultTableModel(columnNames, 100); int rownum = 0;int colnum = 0;for (;rownum 100 ; rownum+)result.set Vai ueAt(say Hello H + rownum + 次蔦 rownum, 0);result.setValueAt(Hsay World H + rownum + ”次”,rownum, 1);return result;*创建一个报表定义* 返冋一个报表定义实例*/private JFreeReport createReportDefinition()final JFreeReport report = new JFreeReport();report.setName(uA Very Simple Report11);*定义要显示报表第一列的样式 TextFieldElementFactory factory = new TextFieldElementFactoryO; factory.setName(Tl);factory.setAbsolutePosition(new Point2D.Float(0, 0);factory.setMinimumSize(new FloatDimension( 150, 20);factory.setColor(Colo r.b lack); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.set Vertical Alignment(ElementAlignment.MIDDLE); factory.setNullString(,-n);factory.setFieldname(HColumn 1H);report.getltemBa nd()addElement(factory.createElement();/*孚定义要显示报表第二列的样式factory = new TextFieldElementFactoryO;factory.setName(T2);factory.setAbsolutePosition(new Point2D.Float(200, 0);factory.setMinimumSize(new FloatDimension( 150, 20);factory.setColor(Color.black);factory.setHorizontalAlig nment(Element Al ig nm ent.LEFT);factory.set VerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString(,-n);factory.setFieldname(MColunin2H);report.getItemBand().addElement(factory.createElement();返回一个报表定义的实例return report;public static void main(final Stringf args)/ 初始化 JFreeReportBoot.start();调用演示实例new HelloWorld();2.3运行例子如果你执行了 1.3中规定的步骤,你可以进入命令行界面,然后进入demo_home% 目录下,修改setenv.cmd中的相关设置,执行serenv.cmd设置环境变量。执行java org.vivianj .j freereport. Hello World查看运行结果。下面这个图片是作者执行后结果的屏幕 截图:大家可以看到,JFreeReport己经自动帮我们实现了分页。上面这个图片显示的是第 一页的数据,你可以通过工具栏中的查看其它页面中的内容。2.4基木步骤解释生成可通过TableModel接口访问的数据,如本例中的createData方法完成的功能生成一个JFreeReport实例,他定义了我们如何格式化显示数据,如本例中的 createReportDefinilion方法完成的功能将数据和JFreeReport实例连接起来,并且将该JFreeReport实例传给PreviewDialog 的一个实例显示给用户3使用JFreeReport生成复杂报表3报表定义文件报表定义文件是JFreeReport生成复杂报表的重要文件,他就是一个XML文档,主 要描述如何使用指定的格式生成复
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号