下面还有破解版本:) http://blog.csdn.net/allisnew/
虽然它的使用已经非常简单了,但是在实际使用过程中还是碰到了几个麻烦,下面就写一下它的简单使用方法:(以for vs2003的webform举例,其他类同)
1.首先要搞定 帮助文档:从官方网站下载解压后把dotnetcharting4.2for1.x目录设置成虚拟目录,.net1.1的环境,然后就可以看帮助示例了。
2.把\bin\ dotnetCHARTING.dll添加到工具箱,并且添加引用
3.把控件拖到你的网页上,然后添加引用 using dotnetCHARTING;就可以用了
4.说下简单的 柱状图的用法(动态获取数据):它有个type属性,设置成Combo就是柱状图;下面是代码:
private
void
Page_Load(
object
sender, System.EventArgs e)
{
if (!IsPostBack)
{
ConfChart();
}
}
chart #region chart
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConString"]);
SqlDataAdapter adapter = new SqlDataAdapter();
string selectQuery = @"select newdate,count(PK_ID) as allcount from "
+"(select convert(varchar(10),fld_createtime,120) as newdate,* from FEEDBACK_FB_TAB where 1=1";
if (this.txt_StartTime.Text != "")
selectQuery += " and fld_createtime>"+Common.QuotedStr(txt_StartTime.Text+" 00:00:00");
if (this.txt_endtime.Text != "")
selectQuery += " and fld_createtime<"+Common.QuotedStr(txt_endtime.Text+" 23:59:59");
selectQuery += ") as t1 group by t1.newdate";
adapter.SelectCommand = new SqlCommand(selectQuery, conn);
adapter.Fill(dt);
return dt;
}
private void ConfChart()
{
Chart1.Debug = false;
Chart1.Mentor = false;
Chart1.Title="客户反馈日统计图";
//Chart1.XAxis.Label.Text="日期";
Chart1.YAxis.Label.Text="反馈次数";
Chart1.TempDirectory="temp";
Chart1.ShadingEffect = true;
Chart1.Use3D = true;
Chart1.Width = 600;
Chart1.Height = 350;
Chart1.Series.Name = "客户反馈次数";
Chart1.Series.Data = CreateDataTable();
Chart1.SeriesCollection.Add();
}
#endregion
5.下面是简单的
饼状图的做法(憋了半天才搞出了这个方法,网上基本没有帮助,它自带的帮助貌似pie全是静态生成数据),
期待各位更好的方法:
{
if (!IsPostBack)
{
ConfChart();
}
}
chart #region chart
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConString"]);
SqlDataAdapter adapter = new SqlDataAdapter();
string selectQuery = @"select newdate,count(PK_ID) as allcount from "
+"(select convert(varchar(10),fld_createtime,120) as newdate,* from FEEDBACK_FB_TAB where 1=1";
if (this.txt_StartTime.Text != "")
selectQuery += " and fld_createtime>"+Common.QuotedStr(txt_StartTime.Text+" 00:00:00");
if (this.txt_endtime.Text != "")
selectQuery += " and fld_createtime<"+Common.QuotedStr(txt_endtime.Text+" 23:59:59");
selectQuery += ") as t1 group by t1.newdate";
adapter.SelectCommand = new SqlCommand(selectQuery, conn);
adapter.Fill(dt);
return dt;
}
private void ConfChart()
{
Chart1.Debug = false;
Chart1.Mentor = false;
Chart1.Title="客户反馈日统计图";
//Chart1.XAxis.Label.Text="日期";
Chart1.YAxis.Label.Text="反馈次数";
Chart1.TempDirectory="temp";
Chart1.ShadingEffect = true;
Chart1.Use3D = true;
Chart1.Width = 600;
Chart1.Height = 350;
Chart1.Series.Name = "客户反馈次数";
Chart1.Series.Data = CreateDataTable();
Chart1.SeriesCollection.Add();
}
#endregion
首先设置type属性为pie,然后下面是动态数据的代码
private
void
Page_Load(
object
sender, System.EventArgs e)
{
if (!IsPostBack)
{
ConfChart();
}
}
chart #region chart
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConString"]);
SqlDataAdapter adapter = new SqlDataAdapter();
string selectQuery = @"select fld_channel,count(PK_ID) as channel_count from FEEDBACK_VIEW where 1=1";
if (this.txt_StartTime.Text != "")
selectQuery += " and fld_createtime>"+Common.QuotedStr(txt_StartTime.Text+" 00:00:00");
if (this.txt_endtime.Text != "")
selectQuery += " and fld_createtime<"+Common.QuotedStr(txt_endtime.Text+" 23:59:59");
selectQuery += " group by fld_channel order by channel_count DESC";
adapter.SelectCommand = new SqlCommand(selectQuery, conn);
adapter.Fill(dt);
return dt;
}
private void ConfChart()
{
Chart1.Debug = false;
//Chart1.Mentor = false;
Chart1.Title="频道反馈量统计图";
//Chart1.XAxis.Label.Text="日期";
//Chart1.YAxis.Label.Text="反馈次数";
Chart1.TempDirectory="temp";
Chart1.ShadingEffect = true;
Chart1.Use3D = true;
Chart1.Width = 600;
Chart1.Height = 350;
//Chart1.Series.Name = "客户反馈次数";
//Chart1.Series.Data = CreateDataTable();
//Chart1.Series.DataFields = "fld_channel";
Chart1.SeriesCollection.Add(getData());
}
饼状图 有无简便方法?#region 饼状图 有无简便方法?
private SeriesCollection getData()
{
SeriesCollection SC = new SeriesCollection();
DataTable mydt = CreateDataTable();
for ( int i = 0; i < mydt.Rows.Count; i++ )
{
Series s = new Series();
s.Name = mydt.Rows[i]["fld_channel"].ToString();
Element e = new Element();
e.Name = mydt.Rows[i]["fld_channel"].ToString();
e.ShowValue = true;
e.ToolTip = mydt.Rows[i]["fld_channel"].ToString();
e.YValue = Convert.ToInt32(mydt.Rows[i]["channel_count"].ToString());
s.AddElements(e);
SC.Add(s);
}
return SC;
}
#endregion
抓张图看看撒:
{
if (!IsPostBack)
{
ConfChart();
}
}
chart #region chart
private DataTable CreateDataTable()
{
DataTable dt = new DataTable();
SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["ConString"]);
SqlDataAdapter adapter = new SqlDataAdapter();
string selectQuery = @"select fld_channel,count(PK_ID) as channel_count from FEEDBACK_VIEW where 1=1";
if (this.txt_StartTime.Text != "")
selectQuery += " and fld_createtime>"+Common.QuotedStr(txt_StartTime.Text+" 00:00:00");
if (this.txt_endtime.Text != "")
selectQuery += " and fld_createtime<"+Common.QuotedStr(txt_endtime.Text+" 23:59:59");
selectQuery += " group by fld_channel order by channel_count DESC";
adapter.SelectCommand = new SqlCommand(selectQuery, conn);
adapter.Fill(dt);
return dt;
}
private void ConfChart()
{
Chart1.Debug = false;
//Chart1.Mentor = false;
Chart1.Title="频道反馈量统计图";
//Chart1.XAxis.Label.Text="日期";
//Chart1.YAxis.Label.Text="反馈次数";
Chart1.TempDirectory="temp";
Chart1.ShadingEffect = true;
Chart1.Use3D = true;
Chart1.Width = 600;
Chart1.Height = 350;
//Chart1.Series.Name = "客户反馈次数";
//Chart1.Series.Data = CreateDataTable();
//Chart1.Series.DataFields = "fld_channel";
Chart1.SeriesCollection.Add(getData());
}
饼状图 有无简便方法?#region 饼状图 有无简便方法?
private SeriesCollection getData()
{
SeriesCollection SC = new SeriesCollection();
DataTable mydt = CreateDataTable();
for ( int i = 0; i < mydt.Rows.Count; i++ )
{
Series s = new Series();
s.Name = mydt.Rows[i]["fld_channel"].ToString();
Element e = new Element();
e.Name = mydt.Rows[i]["fld_channel"].ToString();
e.ShowValue = true;
e.ToolTip = mydt.Rows[i]["fld_channel"].ToString();
e.YValue = Convert.ToInt32(mydt.Rows[i]["channel_count"].ToString());
s.AddElements(e);
SC.Add(s);
}
return SC;
}
#endregion
强烈推荐他的demo地址:
这个是所有的 DEMO 演示 http://www.dotnetcharting.com/demo.aspx
这个是 Online Documentation http://www.dotnetcharting.com/documentation/v4_4/webframe.html 里面会有详细的说明和用法。