龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

免费图表控件MsChart教程系列之实例操作数据绑定(交叉表)应用(4)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
2.绑定一个交叉表 微软的图表控件提供了一个交叉表数据的绑定方法DataBindCrossTable,它可以根据数据动态的生成数据序列(Series),借用官方的例子,数据

2.绑定一个交叉表
  微软的图表控件提供了一个交叉表数据的绑定方法DataBindCrossTable,它可以根据数据动态的生成数据序列(Series),借用官方的例子,数据库的表数据如下:

NameYearSalesCommissions
John 2002 55676.55 2699.33
Mary 2002 44333 2299
Andrew 2002 64455.4 3636
John 2003 49884 2355
Mary 2003 52994 2487
Andrew 2003 66449 3794
John 2004 62994 3593
Mary 2004 54993 2599
REPSALES

我们先看看DataBindCrossTable的参数,它有两个重载方法,分别是:
public void DataBindCrossTable (
 IEnumerable dataSource,
 string seriesGroupByField,
 string xField,
 string yFields,
 string otherFields,
 PointSortOrder sortingOrder
)
以及
public void DataBindCrossTable (
 IEnumerable dataSource,
 string seriesGroupByField,
 string xField,
 string yFields,
 string otherFields
)

每个参数的含义如下:
dataSource
要绑定的数据源.
seriesGroupByField
要分组统计的数据字段名称,例如按姓名、日期等.
xField
X轴绑定的字段名称.
yFields
Y轴绑定的字段名称,如果需要绑定多个字段,则用逗号将字段名分开.
otherFields
其它数据字段属性,就是上面刚讲的,标签、提示、Url等属性.
sortingOrder
设置数据是正确还是逆序排列.
此时要以统计每个用户的年销售曲线,那么分组统计的字段名应该设置为Name,如下:

Chart1.DataBindCrossTable(
                myReader,
               
"Name",
               
"Year" ,
               
"Sales",
               
"Label=Commissions{C}");

用如上的方法绑定,生成的图形如下:

相反,如果要统计用户每年的曲线,则将字段反转一下即可,如下:

Chart1.DataBindCrossTable(
                myReader,
               
"Year",
               
"Name",
               
"Sales",
               
"Label=Commissions{C}");

生成的曲线图如下:

这次就先说到这里咯,说几个需要注意的地方:

  1. 在进行Y轴数据绑定的时候,如果要绑定多个字段,默认情况会出错,那是因为需要设置Y轴的可保存值数量,设置为你需要保存的数量即可,设置的地点在:Series-》YValuesPrePoint,设置为你需要显示的个数即可。
  2. 在进行DataTable绑定的时候,Label、ToolTip等属性的字段格式化比较困难(otherFields 属性),我试了半天,也就试出了一次只能绑定一个字段,因为是和数据集绑定,如果要在标签上增加文字的话,可以使用:Field{xxxx#xxxx},其中#会替换为相应的文字,例如:Field的值为45,那么最后的呈现的结果就是:xxxx45XXXX.

  BTW:有很多东西我自己也在研究中,因此说得不是很完善,希望大家一起研究吧~下次再研究一下数据操作方面的东东以及标签等的显示。


精彩图集

赞助商链接