首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:用JFreeReport做报表的实践过程

用JFreeReport做报表的实践过程

www.jz123.cn  2009-12-25   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

 准备工作:

  下载jfreeReport0.8.7 地址:http://www.jfree.org/jfreereport/index.php

  使用JFreeReport生成报表通常需要以下三个基本步骤:

  A. 生成可通过TableModel接口访问的数据,如本例中的createData方法完成的功能。

  B. 生成一个JFreeReport实例,他定义了我们如何格式化显示数据,如本例中的createReportDefinition方法完成的功能。

  C. 将数据和JFreeReport实例连接起来,并且将该JFreeReport实例传给PreviewDialog的一个实例显示给用户。

  下面开始>>>>>

  1. 新建一个WEB工程,在WebRootlib中import 如下jar文件:jcommon-1.0.1.jar jfreereport-0.8.7.jar jfreereport-demo-0.8.7.jar jfreereport-servlet-demo-0.8.7.jar

  (可在jfreereport包中解压得到)

  2. 写一个Demo.java 加入到工程的src包中. 内容如下:

  


import java.awt.Color;
  import java.awt.geom.Point2D;
  import javax.swing.table.DefaultTableModel;
  import javax.swing.table.TableModel;
  import org.jfree.report.ElementAlignment;
  import org.jfree.report.JFreeReport;
  import org.jfree.report.JFreeReportBoot;
  import org.jfree.report.ReportProcessingException;
  import org.jfree.report.demo.helper.DefaultCloseHandler;
  import org.jfree.report.demo.helper.DemoHandler;
  import org.jfree.report.demo.helper.PreviewHandler;
  import org.jfree.report.elementfactory.TextFieldElementFactory;
  import org.jfree.report.modules.gui.base.PreviewDialog;
  import org.jfree.ui.FloatDimension;
  import org.jfree.util.Log;
  public class Demo implements DemoHandler
  {
  private class HelloWorldPreviewHandler implements PreviewHandler
  {
  public HelloWorldPreviewHandler()
  {
  }
  public void attemptPreview()
  {
  executeReport();
  }
  }
  public Demo (){
  }
  protected void executeReport ()
  {
  final TableModel data = createData();
  final JFreeReport report = createReportDefinition();
  report.setData(data);
  try
  {
  final PreviewDialog preview = new PreviewDialog(report);
  preview.addWindowListener(new DefaultCloseHandler());
  preview.pack();
  preview.setVisible(true);
  }
  catch (ReportProcessingException e)
  {
  Log.error("Failed to generate report ", e);
  }
  }
  private TableModel createData ()
  {
  final Object[] columnNames = new String[]{"Column1", "Column2"};
  final DefaultTableModel result = new DefaultTableModel(columnNames, 101);
  for (int i=1;i<101;i++){
  result.setValueAt("用繁篦字???看看n", i, 0);
  result.setValueAt("简体中文输出第"+i+"次", i, 1);
  }
  return result;
  }

上一篇:Java类的初始化顺序内容简介 下一篇:漫谈Java理念的转变与JVM的五大优势

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图