基本信息
源码名称:Dev ChartControl图表展示控件用法展示
源码大小:17.78M
文件格式:.zip
开发语言:C#
更新时间:2017-12-02
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
【实例简介
【实例简介
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraCharts;
using DevExpress.XtraEditors;
namespace ChartControlTest
{
public partial class CrimeForm : DevExpress.XtraEditors.XtraForm
{
GetNewData getNewData = new GetNewData();
private int seletedIndex = 0;
public CrimeForm()
{
InitializeComponent();
BindDataByPrivince();
}
private void BindDataByPrivince()
{
var dt = GetCrimEventByProvince();
chartControl1.Series.Clear();
var series1 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Bar, dt, "StrikeWhere", "EventCount");
chartControl1.Series.Add(series1);
chartControl2.Series.Clear();
var series2 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Pie3D, dt, "StrikeWhere", "EventCount");
chartControl2.Series.Add(series2);
chartControl3.Series.Clear();
var series3 = CreateNewSeries("各省近年来暴力事件汇总", ViewType.Line, dt, "StrikeWhere", "EventCount");
chartControl3.Series.Add(series3);
//// 柱状图里的第一个柱
//var series1 = new Series("各省近年来暴力事件汇总", ViewType.Bar)
// {
// DataSource = GetCrimEventByProvince(),
// ArgumentScaleType = ScaleType.Qualitative,
// ArgumentDataMember = "StrikeWhere",
// ValueScaleType = ScaleType.Numerical,
// ShowInLegend = true,
// Label = { Visible = true }
// };
//series1.ValueDataMembers.AddRange(new string[] { "EventCount" });
//chartControl1.Series.Add(series1);
//chartControl2.Series.Clear();
//var series2 = new Series("各省近年来暴力事件汇总", ViewType.Pie3D)
// {
// DataSource = GetCrimEventByProvince(),
// ArgumentScaleType = ScaleType.Qualitative,
// ArgumentDataMember = "StrikeWhere",
// ValueScaleType = ScaleType.Numerical,
// ShowInLegend = true,
// Label = { Visible = true },
// LegendPointOptions = { PointView = PointView.ArgumentAndValues }
// };
//series2.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
//series2.ValueDataMembers.AddRange(new string[] { "EventCount" });
//chartControl2.Series.Add(series2);
//chartControl3.Series.Clear();
//var series3 = new Series("各省近年来暴力事件汇总", ViewType.Line)
//{
// DataSource = GetCrimEventByProvince(),
// ArgumentScaleType = ScaleType.Qualitative,
// ArgumentDataMember = "StrikeWhere",
// ValueScaleType = ScaleType.Numerical,
// ShowInLegend = true,
// Label = { Visible = true }
//};
//series3.ValueDataMembers.AddRange(new string[] { "EventCount" });
//chartControl3.Series.Add(series3);
}
private Series CreateNewSeries(string title, ViewType type, DataTable dt, string argumentDataMemberName, string valueDataMemberName)
{
var series = new Series(title, type)
{
DataSource = dt,
ArgumentScaleType = ScaleType.Qualitative,
ArgumentDataMember = argumentDataMemberName,
ValueScaleType = ScaleType.Numerical,
ShowInLegend = true,
Label = { Visible = true }
};
if (type == ViewType.Pie3D)
{
series.LegendPointOptions.PointView = PointView.ArgumentAndValues;
series.LegendPointOptions.ValueNumericOptions.Format = NumericFormat.Percent;
}
series.ValueDataMembers.AddRange(new string[] { valueDataMemberName });
return series;
}
private void BindDataByMonth()
{
var dt = GetCrimEventByMouth();
chartControl1.Series.Clear();
var series1 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Bar, dt, "Month", "EventCount");
chartControl1.Series.Add(series1);
chartControl2.Series.Clear();
var series2 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Pie3D, dt, "Month", "EventCount");
chartControl2.Series.Add(series2);
chartControl3.Series.Clear();
var series3 = CreateNewSeries("近年来各月暴力事件汇总", ViewType.Line, dt, "Month", "EventCount");
chartControl3.Series.Add(series3);
}
//按照所在地区分组统计
private DataTable GetCrimEventByProvince()
{
var ds = getNewData.GetDataSourceOfCrime();
var dt = ds.Tables[0];
var query = from t in dt.AsEnumerable()
group t by new { t1 = t.Field<string>("StrikeWhere") } into m
select new
{
StrikeWhere = m.Key.t1,
Count = m.Count()
//StaffNum = m.Sum(n => n.Field<int>("StaffNum"))
};
var newDt = getNewData.CreateShowDataTableByPrivince();
if (query.ToList().Count > 0)
{
for (int i = 0; i < query.Count(); i )
{
var row = newDt.NewRow();
row["StrikeWhere"] = query.ToList()[i].StrikeWhere;
row["EventCount"] = query.ToList()[i].Count;
newDt.Rows.Add(row);
}
}
return newDt;
}
//按照月份分组
private DataTable GetCrimEventByMouth()
{
var ds = getNewData.GetDataSourceOfCrime();
var dt = ds.Tables[0];
var dtNew = dt.Copy();
var column = new DataColumn
{
DataType = System.Type.GetType("System.Int32"),
ColumnName = "Month",
AutoIncrement = false,
Caption = "所属月份",
ReadOnly = false,
Unique = false
};
dtNew.Columns.Add(column);
for (int i = 0; i < dtNew.Rows.Count; i )
{
dtNew.Rows[i]["Month"] = DateTime.Parse(dtNew.Rows[i]["StrikeWhen"].ToString()).Month;
}
var query = from t in dtNew.AsEnumerable()
group t by new { t1 = t.Field<Int32>("Month") } into m
select new
{
Month = m.Key.t1,
Count = m.Count()
};
var newDt = getNewData.CreateShowDataTableByMonth();
if (query.ToList().Count > 0)
{
query = query.ToList().OrderBy(p => p.Month);
for (int i = 0; i < query.Count(); i )
{
var row = newDt.NewRow();
row["Month"] = string.Format("{0}月", query.ToList()[i].Month);
row["EventCount"] = query.ToList()[i].Count;
newDt.Rows.Add(row);
}
}
return newDt;
}
private void comboBoxEdit1_SelectedIndexChanged(object sender, EventArgs e)
{
var nowSeltIndex = comboBoxEdit1.SelectedIndex;
if(nowSeltIndex==seletedIndex) return;
seletedIndex = nowSeltIndex;
if (seletedIndex == 0)
BindDataByPrivince();
else
BindDataByMonth();
}
}
}