最近由于工作的需要在寻求一种比较好看、统计图表类别功能比较强大一些的图表显示方式,之前一直用aspchart,但是这种显示方式不管是从图表显示样式还是显示功能方面都非常单一有限。经过一段时间在网上查询资料,找了几个.net 中能用的图表组建,使用后相比之下还是发现chartlet插件比较好用。
首先,在使用之前需要将此插件添加到工具栏中,至于插件可以登录到http://www.chartlet.cn/网站下载最新版本。
添加过程:右键工具栏空白处--》选择项--》在.netframework选项卡下点击浏览--》找到下载后的Chartlet.dll文件--》打开---》确定
添加完成后在工具栏中便会出现 一项 “Chartlet” 的图标,这样添加过程完成了;
在使用时候Chartlet 可以像其他组件一样可以直接拖放,然后设置好属性和添加了数据后便可显示出各种图形,
在设定数据源时候一般有两种方法;
第一种也是最简单的一种,只要从数据库中查出数据源后将数据源绑定就可以
////设置一个初始AppearanceStyle 图表样式有很多种
AT.Text = "Bar_2D_Aurora_FlatCrystal_NoGlow_NoBorder";
SqlConnection con = new SqlConnection("server=;database=;uid=;pwd="); con.Open(); SqlDataAdapter da = new SqlDataAdapter(sqlcz, con); SqlCommandBuilder builder = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds, "table"); Chartlet1.ChartTitle.Text = "111"; Chartlet1.XLabels.UnitText = "222"; Chartlet1.YLabels.UnitText = "%"; Chartlet1.BindChartData(ds); con.Close();
还有一种方式就是采用数组形式将其赋值,就以每组三个数据为例,首先初始化
ArrayList XLabel = new ArrayList();//x轴
ArrayList[] DataArray = null;
DataArray = new ArrayList[] { new ArrayList(), new ArrayList(), new ArrayList() };//定义一个数组,里面的每个数组分别是一组柱状图中的每个柱子数据
ArrayList ColorGuider = new ArrayList();//每种颜色代表的意义
Chartlet1.ChartTitle.Text = strDefaultYear + "年" + strDefaultMonth + "月" + Drpdepartment.Items[Drpdepartment.SelectedIndex].Text + "指标统计"; //图表标题
Chartlet1.XLabels.UnitText = "";
Chartlet1.YLabels.UnitText = "";
Chartlet1.InitializeData(DataArray, XLabel, ColorGuider);
string yangshi = this.AT.Text;
string styleimg;
switch (yangshi) //选择图表的样式
{
case "二维柱状图":
styleimg = "Bar_2D_Breeze_NoCrystal_Glow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "三维柱状图":
styleimg = "Bar_3D_Aurora_FlatCrystal_NoGlow_NoBorder ";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "二维线图":
styleimg = "Line_2D_Aurora_ThinSquare_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "三维线图":
styleimg = "Line_3D_Aurora_GlassCrystalRound_NoGlow_NoBorder ";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "二维饼图":
styleimg = "Pie_2D_Breeze_NoCrystal_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "三维饼图":
styleimg = "Pie_3D_Aurora_NoCrystal_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "二维栈图":
styleimg = "Stack_2D_Aurora_FlatCrystal_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "三维栈图":
styleimg = "Stack_3D_Breeze_NoCrystal_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
case "二维横图":
styleimg = "HBar_2D_Aurora_NoCrystal_NoGlow_NoBorder";
Chartlet1.AppearanceStyle = (FanG.Chartlet.AppearanceStyles)System.Enum.Parse(typeof(FanG.Chartlet.AppearanceStyles), styleimg, true);
break;
}
这样只要给上面的数组付了值之后就可以出现相应的图表,而且根据不同样式可以看到不同效果的图。。。。