C#利用ZedDemo组件生成数据报表
来源:互联网 发布:蓝海软件 编辑:程序博客网 时间:2024/05/23 18:34
ZedGraph
ZedGraph官方对ZedGraph的解释是:ZedGraph是一个针对用c#编官吏的类库,在WinForm下和ASP.NET都有对应的控件,它可以绘制出OWC中所能支持的图表类型,如2D或者3D的饼图、柱状图等。尽管它提供了许多详尽的属性以供实现灵活的控件,但是使用默认的设置就能很简单地绘制出多种类型的图表。官网:http://www.zedgraph.org
ZedGraph控件常用属性
- OutputFormat:设置图表的导出格式,如jpg或者png,默认是导出成png格式图片
- RenderedImagePath:设置图表的导出后的保存路径,默认是~/ZedGraphImages/
- RenderMode:设置图表的如何在网面中显示,它有两个值:ImageTag值表示在网页中以<img>标签来显示,RawImage值表示在网面中直直接显示,默认值是ImageTag
- Height:设置高度
- Width:设置宽度
具体实例:
需下载并添加ZedGraph.dll和ZedGraph.Web.dll
ZedDemo.aspx //显示效果页面
<table> <tr> <td> 柱状图:<br /> <img src="ZedGraph_Other.aspx?type=Bar" /> </td> <td> 折线图:<br /> <img src="ZedGraph_Other.aspx?type=Curve" /> </td> </tr> <tr> <td> 线形图:<br /> <img src="ZedGraph_Other.aspx?type=Stick" /> </td> <td> 饼图:<br /> <img src="ZedGraph_Pie.aspx" /> </td> </tr> </table>
ZedGraph_Other.aspx页面 //生成除饼图以外的其它类型
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraph_Other.aspx.cs" Inherits="ZedGraph_Other" %><%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %><cc1:ZedGraphWeb ID="ZedGraphWeb1" runat="server" Width="500" Height="375" RenderMode="RawImage"></cc1:ZedGraphWeb>
ZedGraph_Other.aspx.cs页面 //生成除饼图以外的其它类型
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using ZedGraph;using ZedGraph.Web;using System.Drawing;public partial class ZedGraph_Other : System.Web.UI.Page{ protected override void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { ZedGraphWeb1.RenderGraph += new ZedGraphWebControlEventHandler(zedgraph_Pie_RenderGraph); } /// <summary> /// 绘制报表 /// </summary> /// <param name="webObject"></param> /// <param name="g"></param> /// <param name="pane"></param> void zedgraph_Pie_RenderGraph(ZedGraphWeb webObject, Graphics g, MasterPane pane) { GraphPane myPane = pane[0]; myPane.Chart.Fill = new Fill(Color.LightYellow); //设置报表标题 myPane.Title.Text = "网站访问统计"; //设置报表X轴标题 myPane.XAxis.Title = new AxisLabel("月份", "宋体", 24, Color.Green, true, false, false); //设置报表Y轴标题 myPane.YAxis.Title = new AxisLabel("IP", "宋体", 24, Color.Green, true, false, false); //定义在X轴要显示的分类 string[] labels = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" }; //设置X轴的显示分类内容 myPane.XAxis.Scale.TextLabels = labels; //设置X轴分类显示方式为text myPane.XAxis.Type = AxisType.Text; //分别为两个用户创建值 PointPairList pointList1 = new PointPairList(); PointPairList pointList2 = new PointPairList(); Random random = new Random(); for (int i = 1; i < 13; i++) { int x = i; int y1 = random.Next(3000) + 500; int y2 = random.Next(5000) + 1000; pointList1.Add(x, y1); pointList2.Add(x, y2); } //显示方式------------------------------------------------------------------------------------- //在此myPane后面的方法决定了显示什么报表类型,如下格式: //myPane.AddCurve("匿名用户", pointList1, Color.Red); //myPane.AddCurve("会员用户", pointList2, Color.Blue); //根据不同的参数显示不同的类型 if (Request.QueryString["type"] != null) { string type = Request.QueryString["type"].ToString(); switch (type) { case "Bar": //显示圆状图 myPane.AddBar("匿名用户", pointList1, Color.Red); myPane.AddBar("会员用户", pointList2, Color.Blue); break; case "Curve": //显示折线图 myPane.AddCurve("匿名用户", pointList1, Color.Red); myPane.AddCurve("会员用户", pointList2, Color.Blue); break; case "Stick": //显示线状图 myPane.AddStick("匿名用户", pointList1, Color.Red); myPane.AddStick("会员用户", pointList2, Color.Blue); break; default: //显示圆状图 myPane.AddBar("匿名用户", pointList1, Color.Red); myPane.AddBar("会员用户", pointList2, Color.Blue); break; } } else { //添加两个用户 myPane.AddCurve("匿名用户", pointList1, Color.Red); myPane.AddCurve("会员用户", pointList2, Color.Blue); } //---------------------------------------------------------------------------------------------- //设置报表外部的渐变颜色 myPane.Fill = new Fill(Color.White, Color.FromArgb(200, 200, 255), 45.0f); //设置报表内部的渐变颜色 myPane.Chart.Fill = new Fill(Color.White, Color.LightGoldenrodYellow, 45.0f); //刷新 pane.AxisChange(g); } protected void Page_Load(object sender, EventArgs e) { }}
ZedGraph_Pie.aspx //生成饼图代码页
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraph_Pie.aspx.cs" Inherits="ZedGraph_Pie" %><%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %><cc1:ZedGraphWeb ID="ZedGraphWeb1" runat="server" Width="500" Height="375" RenderMode="RawImage"></cc1:ZedGraphWeb>
ZedGraph_Pie.aspx.cs //生成饼图代码页
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using ZedGraph;using ZedGraph.Web;using System.Drawing;public partial class ZedGraph_Pie : System.Web.UI.Page{ protected override void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } private void InitializeComponent() { ZedGraphWeb1.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(ZedGraphWeb1_RenderGraph); } void ZedGraphWeb1_RenderGraph(ZedGraph.Web.ZedGraphWeb webObject, System.Drawing.Graphics g, ZedGraph.MasterPane pane) { GraphPane myPane = pane[0]; myPane.Chart.Fill = new Fill(Color.LightYellow); myPane.Title.Text = "文化程度比率"; string[] labels = new string[6]; double[] values = new double[6]; labels[0] = "小学"; labels[1] = "初中"; labels[2] = "高中"; labels[3] = "专科"; labels[4] = "本科"; labels[5] = "研究生"; values[0] = 5000; values[1] = 6000; values[2] = 7000; values[3] = 8000; values[4] = 9000; values[5] = 10000; myPane.AddPieSlices(values, labels); pane.AxisChange(); } protected void Page_Load(object sender, EventArgs e) { }}
------------------------------------------------------------------------------------------------------------------------------
如果希望报表在网页中以<img>标签方式显示可以在前台页面做如下设置:RenderMode="ImageTag"
具体实例代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ZedGraphDemo.aspx.cs" Inherits="ZedGraphDemo" %><%@ Register Assembly="ZedGraph.Web" Namespace="ZedGraph.Web" TagPrefix="cc1" %><!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></title></head><body> <form id="form1" runat="server"> <div> <cc1:ZedGraphWeb id="ZedGraphWeb1" runat="server" Height="300" Width="300" BarType="PercentStack" RenderMode="ImageTag" OutputFormat="Png" RenderedImagePath="images"> </cc1:ZedGraphWeb> </div> </form></body></html>
在ZedDemo.aspx页面显示效果如下:
本实例相关源码下载地址为:
http://download.csdn.net/detail/houxh86/3680711
- C#利用ZedDemo组件生成数据报表
- C#利用ZedDemo组件生成数据报表
- C#利用OWC组件生成数据报表
- C#利用OWC组件生成数据报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- 利用reportviewer与C#生成报表
- C#生成Excel报表 用MyXls组件生成更完美
- C#生成Excel报表 用MyXls组件生成更完美
- C#调用office2003的OWC11组件生成报表统计图
- 利用MS Reporting Services与C#生成报表
- 利用MS Reporting Services与C#生成报表
- 利用CrystalReport与C#生成报表(vs2010+sql2008)
- CLR VIA C# 可空值类型
- C++编程规范
- 优秀产品经理的核心技能
- word2003,2010 怎样生成目录后,标题前不会出现小黑点
- 两个不错的天气预报代码(带图)
- C#利用ZedDemo组件生成数据报表
- 怎样写linux下的USB设备驱动程序
- android sdk 1.5-2.3 sdk 源码下载地址
- Strust2获得session和request
- Android 四大组件之(2)Service实现原理以及AIDL语言的使用详解
- arm中断控制寄存器
- 分页的 ACTION
- 详介oracle的RBO/CBO优化器
- 自定议字符串hashcode函数