`

Cewolf+JFreeChart之报表代码实例大全(附效果图)

阅读更多
报表代码实例大全:
本实例采用Cewolf+JFreeChart做成。Cewolf是基于JFreechart的,利用JFreechart的绘制引擎,将最终的图片写入客户端.在服务器端不会创建任何文件。
其中这些实例中的web.xml的配置都是一样的,所以配置一次后就不再动它了
后面的每一个实例我都会给出java类和jsp页面的代码,并附上对应的显示出来的图形(这些实例中有些来自网上,我也都一并做过并成功实现)
#########################*************************######################
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<servlet>
		<servlet-name>CewolfServlet</servlet-name>
		<servlet-class>de.laures.cewolf.CewolfRenderer</servlet-class>
		<!-- sets storage implementation -->
		<init-param>
			<param-name>storage</param-name>
			<param-value>
		    	de.laures.cewolf.storage.TransientSessionStorage
		   </param-value>
		</init-param>
		<!-- sets overlib.js location relative to webapp -->
		<init-param>
			<param-name>overliburl</param-name>
			<param-value>/etc/overlib.js</param-value>
		</init-param>
		<!-- turn on or off debugging logging -->
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>4</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>CewolfServlet</servlet-name>
		<url-pattern>/adChart/*</url-pattern>
	</servlet-mapping>

</web-app>


时间序列图
package cewolf;

import java.io.Serializable;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.Map;

import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;

import de.laures.cewolf.DatasetProducer;

public class AdDateLineDataset implements DatasetProducer, Serializable {
	private Number[] data;

	private Date[] dateCategories;

	public AdDateLineDataset() {
		super();
		data = new Number[] { 11, 33, 27 };
		DateFormat df = DateFormat.getDateTimeInstance();
		try {
			dateCategories = new Date[] { df.parse("2008-03-5 08:00:00"),
					df.parse("2008-03-5 10:00:00"),
					df.parse("2008-03-5 15:00:00") };
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	public AdDateLineDataset(Date[] d, Number[] a) {
	}

	public Object produceDataset(Map params) {

		TimeSeries ts1 = new TimeSeries("My Title",
				org.jfree.data.time.Hour.class);
		for (int i = 0; i < data.length; i++) {
			ts1.add(new org.jfree.data.time.Hour(dateCategories[i]), data[i]);
		}
		TimeSeriesCollection collect = new TimeSeriesCollection(ts1);
		return collect;
	}

	public String getProducerId() {
		return "TimeDataProducer";
	}

	public boolean hasExpired(Map params, Date since) {
		return true;
	}
}


JSP页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
<%@taglib uri='/WEB-INF/tlds/cewolf.tld' prefix='cewolf'%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>test</title>
	</head>
	<body>

		<jsp:useBean id="data1" class="cewolf.AdDateLineDataset" />

		<cewolf:chart id="pageChart2" title="时间序列图" type="timeseries"
			xaxislabel="时间" yaxislabel="数量">
			<cewolf:data>
				<cewolf:producer id="data1" />
			</cewolf:data>
		</cewolf:chart>
		<cewolf:img chartid="pageChart2" renderer="/adChart" width="500"
			height="500" />

	</body>
</html>



折线图
package cewolf;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
import de.laures.cewolf.links.CategoryItemLinkGenerator;
import de.laures.cewolf.tooltips.CategoryToolTipGenerator;

/**
 * An example data producer.
 * 
 * @author Guido Laures
 */
public class PageViewCountData implements DatasetProducer,
		CategoryToolTipGenerator, CategoryItemLinkGenerator, Serializable {
	private static final Log log = LogFactory.getLog(PageViewCountData.class);
	// These values would normally not be hard coded but produced by
	// some kind of data source like a database or a file
	private final String[] categories = { "mon", "tue", "wen", "thu", "fri",
			"sat", "sun" };
	private final String[] seriesNames = { "cewolfset.jsp", "tutorial.jsp",
			"testpage.jsp", "performancetest.jsp" };

	/**
	 * Produces some random data.
	 */
	public Object produceDataset(Map params) throws DatasetProduceException {
		log.debug("producing data.");
		DefaultCategoryDataset dataset = new DefaultCategoryDataset() {
			/**
			 * @see java.lang.Object#finalize() 当垃圾回收器确定不存在对该对象的更多引用时,
			 *      由对象的垃圾回收器调用此方法
			 */
			protected void finalize() throws Throwable {
				super.finalize();
				log.debug(this + " finalized.");
			}
		};
		for (int series = 0; series < seriesNames.length; series++) {
			int lastY = (int) (Math.random() * 1000 + 1000);
			for (int i = 0; i < categories.length; i++) {
				final int y = lastY + (int) (Math.random() * 200 - 100);
				lastY = y;
				dataset.addValue(y, seriesNames[series], categories[i]);
			}
		}
		return dataset;
	}

	/**
	 * This producer's data is invalidated after 5 seconds. By this method the
	 * producer can influence Cewolf's caching behaviour the way it wants to.
	 */
	public boolean hasExpired(Map params, Date since) {
		log.debug(getClass().getName() + "hasExpired()");
		return (System.currentTimeMillis() - since.getTime()) > 5000;
	}

	/**
	 * Returns a unique ID for this DatasetProducer
	 */
	public String getProducerId() {
		return "PageViewCountData DatasetProducer";
	}

	/**
	 * Returns a link target for a special data item.
	 */
	public String generateLink(Object data, int series, Object category) {
		return seriesNames[series];
	}

	/**
	 * @see java.lang.Object#finalize()
	 */
	protected void finalize() throws Throwable {
		super.finalize();
		log.debug(this + " finalized.");
	}

	/**
	 * @see org.jfree.chart.tooltips.CategoryToolTipGenerator#generateToolTip(CategoryDataset,
	 *      int, int)
	 */
	public String generateToolTip(CategoryDataset arg0, int series, int arg2) {
		return seriesNames[series];
	}
}

JSP页面
<%@page contentType="text/html;charset=utf8"%>
<%@taglib uri='/WEB-INF/tlds/cewolf.tld' prefix='cewolf'%>
<HTML>
	<BODY>
		<H1>
			Page View Statistics
		</H1>
		<HR>
		<jsp:useBean id="pageViews" class="cewolf.PageViewCountData" />
		<cewolf:chart id="line" title="折线图" type="line" xaxislabel="Page"
			yaxislabel="Views">
			<cewolf:data>
				<cewolf:producer id="pageViews" />
			</cewolf:data>
		</cewolf:chart>
		<p>
			<cewolf:img chartid="line" renderer="/adChart" width="500"
				height="400" />
		<P>
	</BODY>
</HTML>




垂直柱条图
package cewolf;

import java.util.Date;
import java.util.Map;

import org.jfree.data.category.DefaultCategoryDataset;

import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;

public class VerticalBarData implements DatasetProducer {

	String chartTitle = "垂直直方图";
	String name[] = { "张三", "李四", "王五", "刘六", "赵七" };
	String category[] = { "第1周", "第2周", "第3周", "第4周" };

	@Override
	public String getProducerId() {
		return null;
	}

	@Override
	public boolean hasExpired(Map arg0, Date arg1) {
		return true;
	}

	@Override
	public Object produceDataset(Map arg0) throws DatasetProduceException {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		// 往数据集中添加绘制图表所需的数据
		int bookSales;
		for (int i = 0; i < name.length; i++) {
			for (int j = 0; j < category.length; j++) {
				// 随机生成销售量
				bookSales = 50 + (int) (Math.random() * 50);
				dataset.addValue(bookSales, name[i], category[j]);
			}
		}
		return dataset;
	}
}


JSP页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@page import="java.util.Date"%>
<%@taglib uri='/WEB-INF/tlds/cewolf.tld' prefix='cewolf'%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>test</title>
	</head>
	<body>
		<jsp:useBean id="data1" class="cewolf.VerticalBarData" />

		<cewolf:chart id="verticalBar" title="金牌公司推销人员业绩" type="verticalBar"
			xaxislabel="销售时间:2005年4月" yaxislabel="销售量">
			<cewolf:data>
				<cewolf:producer id="data1" />
			</cewolf:data>
		</cewolf:chart>

		<cewolf:img chartid="verticalBar" renderer="/adChart" width="500"
			height="375" />

	</body>
</html>



饼图
package cewolf;

import java.util.Date;
import java.util.Map;

import org.jfree.data.general.DefaultPieDataset;

import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;

public class PieData implements DatasetProducer {

	@Override
	public String getProducerId() {
		return null;
	}

	@Override
	public boolean hasExpired(Map arg0, Date arg1) {
		return true;
	}

	@Override
	public Object produceDataset(Map arg0) throws DatasetProduceException {
		DefaultPieDataset defaultpiedataset = new DefaultPieDataset();

		defaultpiedataset.setValue("One", new Double(43.200000000000003D));

		defaultpiedataset.setValue("Two", new Double(10D));

		defaultpiedataset.setValue("Three", new Double(27.5D));

		defaultpiedataset.setValue("Four", new Double(17.5D));

		return defaultpiedataset;
	}
}


JSP页面
<%@ page language="java" pageEncoding="UTF-8" %>
<%@page import="java.util.Date"%>
<%@taglib uri='/WEB-INF/tlds/cewolf.tld' prefix='cewolf' %>
    <html>
          <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>test</title>
      </head>
    <body>
    
      <jsp:useBean id="data1"      class="cewolf.PieData"/>
 
     <cewolf:chart 
                     id="pieChart" 
                     title="饼图" 
                     type="pie" >
                     <cewolf:data>
                            <cewolf:producer id="data1" />
                     </cewolf:data>
              </cewolf:chart>
 
              <cewolf:img 
                     chartid="pieChart" 
                     renderer="/adChart" 
                     width="500" 
                     height="375"/>
 
    </body>
    </html>






柱状图

 package cewolf;
 
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
import org.jfree.data.category.DefaultIntervalCategoryDataset;
import de.laures.cewolf.DatasetProduceException;
import de.laures.cewolf.DatasetProducer;
 
public class Tu implements DatasetProducer, Serializable{
    String categories[] = {"mon","tues","sun","xxx"};
    String seriesNames [] = {"show","click","ctr"};
        
    public String getProducerId() {            
        return "CategoryDataProducer";
    }
 
    public boolean hasExpired(Map arg0, Date arg1) {
    
        return true;
    }
 
    public Object produceDataset(Map arg0) throws DatasetProduceException {
 
        //以下是测试数据
        Number[][] datasets = new Number[4][3];
 
        
        datasets[0][0] = new Integer(201);
        datasets[0][1] = new Integer(2);
        datasets[0][2] = new Integer(3);
        
        datasets[1][0] = new Integer(11);
        datasets[1][1] = new Integer(22);
        datasets[1][2] = new Integer(33);
            
        datasets[2][0] = new Integer(44);
        datasets[2][1] = new Integer(55);
        datasets[2][2] = new Integer(66);  
        
        datasets[3][0] = new Integer(77);
        datasets[3][1] = new Integer(88);
        datasets[3][2] = new Integer(99);
          
         //参数1:横轴 参数2:纵轴  
        DefaultIntervalCategoryDataset ds = new DefaultIntervalCategoryDataset(
                categories,seriesNames,  datasets,datasets);
        return ds;
    }   
}


JSP页面
<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib uri='/WEB-INF/tlds/cewolf.tld' prefix='cewolf'%>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<title>test</title>
	</head>
	<body>
		<%
			cewolf.Tu tu = new cewolf.Tu();
			pageContext.setAttribute("data1", tu);

			{ // <cewolf:cha
		%>

		<cewolf:chart id="pageChart2" title="日期柱状图"
			type="stackedHorizontalBar" xaxislabel="时间" yaxislabel="数量">
			<cewolf:data>
				<cewolf:producer id="data1" />
			</cewolf:data>
		</cewolf:chart>
		<cewolf:img chartid="pageChart2" renderer="/adChart" width="500"
			height="500" />

	</body>
</html>






分享到:
评论
3 楼 javaxiongxing 2011-11-23  
急求回复,alanxiong@foxmail.com
2 楼 javaxiongxing 2011-11-23  
大哥,你的中文乱码是怎么解决的呢...
1 楼 javaxiongxing 2011-11-23  
需要导入哪些jar包呢

相关推荐

    jfreechart+cewolf的架包

    **JFreeChart与Cewolf:构建可视化报表的关键组件** 在Java开发中,生成美观且具有交互性的图表对于数据可视化和报表制作至关重要。JFreeChart和Cewolf是两个强大的开源库,它们共同为开发者提供了丰富的图形生成和...

    Cewolf web报表实例

    本实例将深入探讨Cewolf在Web报表开发中的应用,帮助开发者了解如何利用Cewolf创建动态、可视化的数据展示。 1. **Cewolf概述** - **功能特性**:Cewolf支持静态和动态图表,能够处理XML、JSON等多种数据格式,且...

    flex实战报表:jFreeChart,cewolf,iText.doc

    本篇文章将深入探讨三个流行的Java库——JFreeChart、Cewolf和iText,它们分别用于创建静态图表、交互式Web报表以及PDF文档生成。 **JFreeChart** 1. **JFreeChart介绍**:JFreeChart是一个开源的Java库,专门用于...

    Web报表开发技术-Cewolf开发技术实例

    通过学习这个Cewolf开发实例,你可以掌握如何在J2EE应用中集成和利用Cewolf技术来创建强大的Web报表系统。这不仅提高了应用的功能性,也提升了用户体验,因为用户可以直接在浏览器中查看和交互数据,而无需下载和...

    cewolf

    **CEWolf:JFreeChart的高效封装库** CEWolf是一个基于Java的图形库,它封装了JFreeChart库,提供了一种更简单、更高效的方式来创建和展示图表。JFreeChart是一个广泛使用的开源项目,用于生成高质量的2D图表,如...

    Java Web开发实例大全

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    图形报表制作jar包:cewolf

    Cewolf,能用于开发web工程的Servlet或JSP等,用于制作比较复杂的统计图表.它能够在写比较少的java代码的情况下,显示JSP页面,通过设置图的特征,象颜色,线条,图形,大小,比例等等.

    Java Web开发实例大全(基础卷) 完整pdf扫描版[179MB]

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    cewolf-1.2.1.zip

    **cewolf-1.2.1.zip** 是一个包含 Cewolf 1.2.1 版本资源的压缩文件,这个工具对于IT行业的开发者来说,尤其在进行特定的开发任务时,能提供极大的便利性。Cewolf,这个名字可能是“CE”(计算机工程)与“Wolf”...

    cewolf-1.1.4

    **cewolf-1.1.4** 是一个用于图形展示的开源库,主要与Java的JFreeChart库配合使用,提供更加便捷和丰富的图形渲染功能。这个版本是cewolf库的1.1.4更新,可能包含了一些性能优化、新特性和bug修复,以提升用户体验...

    JFreeChart详解

    它支持多种图形展示方式,包括饼图、折线图、柱状图(水平与垂直)、甘特图、XY散点图、时间序列图、高低开收盘图、蜡烛图、组合图、帕累托图、气泡图、风向图、仪表盘图等。JFreeChart官方网站提供了丰富的示例,...

    cewolf开发需要的jar文件

    总的来说,理解并正确使用cewolf所需的jar文件,是成功开发cewolf项目的关键步骤之一。开发者需要熟悉这些库的功能,以及如何在代码中调用它们提供的API,从而充分发挥cewolf在Web GUI开发中的作用。同时,持续关注...

    cewolf-1.2.3

    Cewolf可以在一个基于Servlet/JSP的Web应用程序内部使用,基于JFreechart的,利用JFreechart的绘制引擎的开源项目。以在Web页中嵌入各种复杂的图形图表(如,直方图、饼图、棒图等等)。它提供了一个功能完备的标签库来...

    cewolf应用

    "cewolf应用"是一个关于开源工具的讨论,主要聚焦在名为"TCEWolf"的软件上。这个工具可能是一个集成开发环境(IDE)或者一个特定领域的应用程序,鉴于标签中提到的"源码"和"工具",我们可以推断它与编程和代码编辑...

    Cewolf开发全攻略

    这里主要详细讲述了cewolf的用法发发发发发发发发发发发发发法案

    cewolf-1.0-bundle-2 第三方生成图形

    cewolf-1.0-bundle-2 第三方生成图形 好东东

    java 报表生成 工具介绍

    2. **JFreeChart**:JFreeChart是一个强大的Java库,专门用于创建各种类型的图表,如饼图、柱状图、线图、区域图等。它非常适合需要在应用程序中集成数据可视化的开发者。 3. **JasperReports**:JasperReports是一...

    贯通开源WEB图形与报表技术全集—part1

    本篇文章将详细探讨标题"贯通开源WEB图形与报表技术全集—part1"所涵盖的知识点,主要涉及JFreeChart、Cewolf、jCharts、iReport、JasperReports和OpenReports这六个流行的开源工具。 首先,JFreeChart是一款强大的...

Global site tag (gtag.js) - Google Analytics