浅谈TeeChart在Asp.Net中的应用

最近一个项目,用到TeeChart。希望以下心得能给入门者抛砖引玉的作用。

        首先看一下此实例的显示效果。

图1 演示一
        单击DrawPie按钮显示饼形图,如下图所示,此图显示的数据为sqlserver数据库中数据。
图2 饼形图
        单击DrawBar按钮显示柱形图,如下图所示,此图显示的数据为sqlserver数据库中数据。
图3柱形图
在工具箱中添加TeeChart控件
        首先,下载TeeChart控件安装到本地计算机。
        新建一个项目,右击工具箱--web窗体,选择添加/移出项(I)...,弹出自定义工具箱窗体,如下图所示,在TChart前的复选框内打上钩。

 图1 添加移出项--自定义工具箱

 

         单击确定按钮,此时会发现工具箱中出现如右图所示图标

在WebForm中添加TeeChart控件

  • 新建一个Asp.Net Web应用程序,名称为TeeChartTest;
  • 选择文件--〉添加新项,弹出添加新项窗体,在模板中选择web 窗体,在名称中输入Default.aspx;
  • 从工具箱中选择 WebChart 控件,并把它拖拽到Default.aspx页面中;
  • 右击TeeChart控件,选择 'Edit...' ,打开TeeChart Editor 窗体;
  • 在此你可以添加和修改Series,Axes 和其他属性。
  • 选择 WebChart1 对象 ,在属性窗体中,修改TempChart 属性, 把File 改成Session. 这意味着WebChart 生成的图片将存储在session变量中,而不是存储在一个临时文件夹中。
  • 为了覆盖session变量中的图表, 我们新建一个asp.net页面,命名为GetChart.aspx. 在Page_Load事件中添加如下代码:

    private void Page_Load(object sender, System.EventArgs e)
    {
         string chartName=Request.QueryString["Chart"];              
         if (Session[chartName]!=null)              
        {                  
            System.IO.MemoryStream chartStream = new System.IO.MemoryStream();              
            chartStream=((System.IO.MemoryStream)Session[chartName];                  
            Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length);                  
            chartStream.Close();                  
            Session.Remove(chartName);              
        }  
    }

    生成如图1所示的代码

  • 在Default.aspx中Page_Load事件中添加如下代码:

  • private void Page_Load(object sender, System.EventArgs e)
    {
         //Let's work with the Chart object for convenience
         Steema.TeeChart.Chart Chart1 = WebChart1.Chart;

         //Add in a series and fill it
         Chart1.Aspect.View3D = false;
         Steema.TeeChart.Styles.Bubble bubble1 = new Steema.TeeChart.Styles.Bubble(Chart1);
         bubble1.FillSampleValues();

         //Add a SeriesToolTip to the Chart
         Steema.TeeChart.Tools.SeriesHotspot seriesHotSpot1 = new Steema.TeeChart.Tools.SeriesHotspot(Chart1);
         //Steema.TeeChart.Styles.MapAction.Mark is the default value
         seriesHotSpot1.MapAction = Steema.TeeChart.Styles.MapAction.Mark;
    }

    连接数据库

  • 在SQLServer中新建Test数据库;

  • 新建PeopleNum表,表中数据如下图所示:

  • 新建DataAccess类,在类中添加如下代码:
  • using System;
    using System .Data.SqlClient;
    using System.Data;
    using System.Configuration;
  • namespace TeeChartTest
    {
     /// <summary>
     /// DataAccess 的摘要说明。
     /// </summary>
     public class DataAccess
     {
      public DataAccess()
      {
       //
       // TODO: 在此处添加构造函数逻辑
       //
      }
  •   public static DataSet GetDataSet(string sql)
      {
       string connstring = ConfigurationSettings.AppSettings["ConnectionString"];
       SqlDataAdapter sda = new SqlDataAdapter(sql,connstring);
       DataSet ds = new DataSet();
       sda.Fill(ds);
       return ds;
      }
  •  }
    }
  • 在web.config中,<configuration>和  <system.web>之间添加如下代码
  •     <appSettings>
      <add key="ConnectionString" value="data source=127.0.0.1;initial catalog=test;user id=sa;password=sw"/>
     </appSettings>
  • 修改您的用户名和密码;
  • 双击DrawPie按钮,添加如下代码
  • private void Button1_Click(object sender, System.EventArgs e)
      {
       this.DrawPie();
      }
  •   private void DrawPie()
      {
       WebChart1.Chart.Panel.Color = System.Drawing.Color.AliceBlue;
       WebChart1.Chart.Legend.LegendStyle = Steema.TeeChart.LegendStyles.Auto;
       WebChart1.Chart.Legend.Alignment = Steema.TeeChart.LegendAlignments.Bottom;
       WebChart1.Chart.Legend.Inverted = true;
       WebChart1.Chart.Legend.ShapeStyle = Steema.TeeChart.Drawing.TextShapeStyle.RoundRectangle;
       WebChart1.Chart.Legend.Symbol.Visible = true;
       WebChart1.Chart.Legend.Font.Color = System.Drawing.Color.DarkBlue;

  •    WebChart1.Dispose();
       string chartTitle = "世界各大洲按人口数目统计的比例图";
       WebChart1.Chart.Header.Text = chartTitle.Trim().ToString();
       WebChart1.Chart.Axes.Left.Title.Text = "世界各大洲按人口数目统计的比例图";
       
       Steema.TeeChart.Styles.Pie Pie1 = new Steema.TeeChart.Styles.Pie();
       WebChart1.Chart.Series.Add(Pie1);
  •    DataSet dsall = DataAccess.GetDataSet("select  * from PeopleNum");
       Pie1.DataSource = dsall.Tables[0];
       Pie1.YValues.DataMember = dsall.Tables[0].Columns[2].ToString();
       Pie1.LabelMember = dsall.Tables[0].Columns[1].ToString();
       
       WebChart1.DataBind();
  •    //WebChart1.Chart.Export.Image.JPEG.Save("D://Mine//pciture//0001.jpeg");
  •   }
  • 在DrawBar中添加如下代码:
  • private void Button2_Click(object sender, System.EventArgs e)
      {
       DrawBar();
      }
      private void DrawBar()
      {
  •    Steema.TeeChart.Styles.Bar Bar1 ;
       DataSet DS = new DataSet();
  •    WebChart1.Chart.Header.Text = "世界各大洲人口数目柱形图";
       WebChart1.Chart.Axes.Left.Title.Text = "世界各大洲人口数目柱形图";
       WebChart1.Dispose();
       Bar1 = new Steema.TeeChart.Styles.Bar(WebChart1.Chart);
       Bar1.ColorEach = true;
  •    WebChart1.Chart.Axes.Bottom.Title.Text = "世界各大洲人口数目柱形图";
       string SelectStr = "select  * from PeopleNum" ;
       DS.Clear();
  •    try
       {
        DS = DataAccess.GetDataSet(SelectStr);
       }
       catch
       {}
  •    Bar1.DataSource = DS.Tables[0];
       Bar1.YValues.DataMember = DS.Tables[0].Columns[2].ToString();
       Bar1.LabelMember = DS.Tables[0].Columns[1].ToString();
       WebChart1.DataBind();
  •    //WebChart1.Chart.Export.Image.JPEG.Save("D://Mine//pciture
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值