http://www.cnblogs.com/fangbaiyi/archive/2009/12/06/1618022.html
看过不少报表的实现方式,如GDI,水晶报表,rdlc,OWC等等,还有就是用第三方控件库的,如ZedGraph,DotNetCharting等等,对比了下,个人感觉FusionCharts是最好的一个,当然这种事都是青菜萝卜,各有所爱,个人喜好而已,就不赘言了。
言归正传,就让我们看看FusionCharts做出来的效果:
第一步:当然,先获得FusionCharts,可从http://www.fusioncharts.com/,当然官方的是带水印的,可从网上下到破解的,此不赘言。
第二步,将JSClass和Charts引入到项目中,如图,JSClass放的是Falsh和页面交互的JS文件,如图,而Charts文件夹自然就是关于报表的Falsh了。
第三步:技术实现:
数据源:
<?xml version="1.0" encoding="utf-8" ?>
<chart caption="月统计表" xAxisName="月份" yAxisName="值" showValues="0" decimals="0" formatNumberScale="0" baseFont="Arial" baseFontSize="12">
<set label="一月" value="462" />
<set label="二月" value="857" />
<set label="三月" value="671" />
<set label="四月" value="494" />
<set label="五月" value="761" />
<set label="六月" value="960" />
<set label="七月" value="629" />
<set label="八月" value="622" />
<set label="九月" value="376" />
<set label="十月" value="494" />
<set label="十一月" value="761" />
<set label="十二月" value="960" />
</chart>
<!--
baseFont="Arial" 设置字体
baseFontSize="12 设置字号
caption="月统计表" 报表标题
xAxisName="Month" 月份
yAxisName="Units" 对应的值
-->
前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FusionCharts_Jquery打造交换报表._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>使用FusionCharts显示报表</title>
<!--数据编码-->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<!--引入FusionCharts的JS文件-->
<script type="text/javascript" src="JSClass/FusionCharts.js" ></script>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
function ShowReport(hei, wid, type, source) {
//显示报表
var chart = null;
if (type == "Pie") {
var chart = new FusionCharts("Charts/Pie3D.swf", "ChartId", wid, hei, "0", "0");
}
else if (type == "Column") {
chart = new FusionCharts("Charts/Column3D.swf", "ChartId", wid, hei, "0", "0");
}
else if (type == "Line") {
chart = new FusionCharts("Charts/Line.swf", "ChartId", wid, hei, "0", "0");
}
chart.setDataURL(source);
chart.render("ReportDiv");
}
</script>
<div id="ReportDiv">
</div>
</form>
</body>
</html>
后台调用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FusionCharts_Jquery打造交换报表
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
System.Random rand = new Random();//保证得到最新的数据
RegisterStartupScript("c", "<script>ShowReport(" + 550 + "," + 800 + ",'Column','../Source/MonthReport.xml?id=" + rand.Next(6000) + "');</script>");
}
}
}
}
这样一个月报表就做好了!