HtmlExampleServlet演示如何通过HTML表格在Web环境下展示JFreeReport定义的表格
简单报表的HTML展示
JFreeReport提供HtmlProcessor类来将输入的JFreeReport报表变成HTML表格形式,最后通过Servlet的输出通道展示给用户,具体的用法如下例:
import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jfree.report.JFreeReport; import org.jfree.report.modules.output.table.base.TableProcessor; import org.jfree.report.modules.output.table.html.HtmlProcessor; import org.jfree.report.modules.output.table.html.StreamHtmlFilesystem; import org.jfree.report.util.Log; /** * * <p>HtmlExampleServlet演示如何通过HTML表格在Web环境下展示JFreeReport定义的表格 * 简单报表的HTML展示 JFreeReport提供HtmlProcessor类来将输入的JFreeReport报表变成HTML表格形式,最后通过Servlet的输出通道展示给用户,具体的用法如下例: * * <p> * * 创建日期 2013-5-13<br> * @author longgangbai<br> * @version $Revision$ 2013-5-13 * @since 3.0.0 */ public class JFreeReportHtmlServlet extends HttpServlet { // private static final long serialVersionUID = 1L; public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { TableProcessor worker; // 设置输出页面的Meta信息 response.setHeader("Content-Disposition", "inline; filename=\"" + "unknown.html" + "\""); // 设置页面的输出格式 response.setHeader("Content-Type", "text/html"); try { // 获取Servlet的输出流 OutputStream out = response.getOutputStream(); // 获取HelloWorld中定义的报表 JFreeReportView jfreeReport =new JFreeReportView(); JFreeReport report=jfreeReport.getJFreeReport(); // 将报表和Servlet的输出流作为参数传递给TableProcessor的实例 final HtmlProcessor processor = new HtmlProcessor(report); processor.setFilesystem(new StreamHtmlFilesystem(out)); worker = processor; } catch (Exception e) { Log.debug("无法解析报表定义", e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } try { // 输出结果 worker.processReport(); } catch (Exception e) { Log.debug("输出结果产生错误", e); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } } }
动态的JFreeReport报表实现:
import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; 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.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 JFreeReportView { /** * 处理窗口关闭事件 */ protected static class CloseHandler extends WindowAdapter { public void windowClosing(final WindowEvent event) { System.exit(0); } } /** * 创建和显示简单的报表 */ public JFreeReportView() { } public JFreeReport getJFreeReport() { // 获得创建报表需要用到的数据 final TableModel data = createData(); // 获得报表要用到的报表定义内容 final JFreeReport report = createReportDefinition(); // 将报表定义和数据结合 report.setData(data); return report; } public void viewJFreeReport() { try { JFreeReport report =getJFreeReport(); // 将生成的报表放到预览窗口中 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 Object[] columnNames = new String[] {"Column1", "Column2" }; final DefaultTableModel result = new DefaultTableModel(columnNames, 100); int rownum = 0; for (; rownum < 100; rownum++) { result.setValueAt("say Hello " + rownum + "次", rownum, 0); result.setValueAt("say World " + rownum + "次", rownum, 1); } return result; } /** * 创建一个报表定义 * * @返回一个报表定义实例 */ private JFreeReport createReportDefinition() { final JFreeReport report = new JFreeReport(); report.setName("A Very Simple Report"); /** * 定义要显示报表第一列的样式 */ TextFieldElementFactory factory = new TextFieldElementFactory(); factory.setName("T1"); factory.setAbsolutePosition(new Point2D.Float(0, 0)); factory.setMinimumSize(new FloatDimension(150, 20)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString("-"); factory.setFieldname("Column1"); report.getItemBand().addElement(factory.createElement()); /** * 定义要显示报表第二列的样式 */ factory = new TextFieldElementFactory(); factory.setName("T2"); factory.setAbsolutePosition(new Point2D.Float(200, 0)); factory.setMinimumSize(new FloatDimension(150, 20)); factory.setColor(Color.black); factory.setHorizontalAlignment(ElementAlignment.LEFT); factory.setVerticalAlignment(ElementAlignment.MIDDLE); factory.setNullString("-"); factory.setFieldname("Column2"); report.getItemBand().addElement(factory.createElement()); /** * 返回一个报表定义的实例 */ return report; } }
相关推荐
本资源包含JFreeReport web报表 源代码
j2ee技术结合web报表技术,使您 的web开发更加精彩,该实例展现了怎样在一个web程序开发中使用JFreeReport技术的实例, 想做这方面应用的朋友可以参考一下!!
报表工具 jfreereport报表工具 jfreereport 报表工具 jfreereport 报表工具 jfreereport
报表工具 jfreereport 报表工具 jfreereport 报表工具 jfreereport
本资料主要用于如何使用JfreeReport生成图表
Pentaho报表(JFreeReport)使用指南
pentaho-report-wizard-1.7.0.RC2.jar
jfreereport API 英文版doc,对使用jfreereport 有帮助,另附使用文档。
真是java代码实现jfreereport的代码,内涵使用到的jar包
它能够用在Swing和Web等中制作自定义的图表或报表,并且得 到广泛的应用。 JFreeChart 是JFreeChart公司在开源网站SourceForge.net上的一个项目,该公司的主要产品有如 下: 1.JFreeReport :报表解决工具 2....
该附件主要讲了JFR的配置,应用,适合初学者,这方面的资料很少,很难得啊
jfreereport-0.8.7-5.jar,比较新的一个版本,免费使用
1.JFreeReport :报表解决工具 2.JFreeChart:Java 图形解决方案(Application/Applet/Servlet/Jsp) 3.JCommon :JFreeReport和JFreeChart的公共类库 4.JFreeDesigner :JFreeReport的报表设计工具 我们可以...
简单的演示了JFreeReport进程 各种架包都已倒好
jfreereport-0.8.4_7-all.jar jfreereport-0.8.4_7-all.jar
jfreechar源码包 JFreeReport:报表解决工具 JFreeChart:Java图形解决方案 JCommon:JFreeReport和JFreeChart的公共类库 JFreeDesigner:JFreeReport的报表设计工具
FineReport-免费设计器报表 专业报表工具,纯java编写,类Excel免费 设计器,支持多数据源,零编码表单制作.
支持JDBC查询和快速便捷的报表设计的报表设计器