最近需要制作一个简易的数据统计工具,以帮助市场做运营分析,一期需求比较简单,即对服务器数据基于时间做一些聚合运算。在开始之前,查阅了部分资料,目前可做图形报表的控件主要有第三方收费产品如DevExpress,开源的ZedGraph,微软的3.5插件MSChart。前两个在图形效果以及运行效率上各有千秋,不过考虑到准确性及稳定性,最终还是决定使用MS自家的控件,据说最新的2010中已经集成了该控件,未考证。
MSChart继承了微软控件简单易用的特点,所以建议自己下载安装附录中的内容,安装好后工具箱的Data选项卡将会多出一个名为Chart的控件,根据下文介绍一起熟悉主要对象和属性。值得一提的是,该控件支持设计时的动态显示,且有Web和Client两个版本,只需添加一些默认数据,并且切换图形类型,就能看到不同效果,不得不说MS将封装做到了极致,因此就没再建立DEMO结合图文来进行说明。MSChart主要涉及了以下几个对象:
Chart类——这个就是我们的主角,所有图形都是在这里展示的,当然,一个好汉三个帮,他最得力的帮手莫过于Series属性;
Series类——主要的图形绘制实现者,根据对Points属性的计算及指定的ChartType和ChartArea属性来决定图形形状、图形种类、生成位置;
DataPoint类——数据存储对象,可设置一个X值和一个或多个Y值;
SeriesChartType类——枚举了三十多种常见的报表类型,包括用的最多的柱形图、点线图、饼状图等。
注意事项:
1、 有些属性同时存在于Series和DataPoint对象,此时给Series对象设置一个属性将会对其包含的所有DataPoint对象生效,但是直接设置某个DataPoint的优先级更高;
2、 属性中含有逗号(,)的情况,需要加“\”转义;
3、 Series默认显示设置即ChartArea属性是可查询到的第一个可用显示区域,如果需要隐藏现有的一个Series,设置它的ChartArea为空字符串就;
4、 目前除了Bubble/Candlestick/Stock这三种类型的图片外,其余类型只需提供一个Y值。如股票价格曲线中每天会有最高,最低,开盘,收盘。
附1:程序集安装包
附2:工具箱扩展
附3:帮助文档