开发环境:Vs2008
1。实现目标
很多时候,我经常要做如下这样的一张报表:
纵向为统计粒度,横向为指标值,本例中合计是没有意义的,只是为了演示
2。具体实现
从数据库中取出三张表(DataTable):
表1,命名为:VTable,作用:保存纵向统计力度的名称列表
表2,命名为:HTable,作用:保存横向指标的名称列表
表3,命名为:CellTable,作用:保存指标值
然后将三张表合在一个DataSet里,通过DataSet的GetXml()方法取得一个XML字符串,
这样,有了这个Xml字符串,配上通用的Xslt,就可以使用Asp:Xml控件进行展现
以下开始演示:
我建了三张表:StudentInfo, SubjectInfo, ScoreInfo
结合上图,很容易知道三张表各自的用途
看下面取DataSet数据源的代码:
有几个约定:表名(VTable,HTable,CellTable),列名(VName,HName,CellValue)
再看下面的XSLT:
通过Asp:Xml控件(x1)展现:
搞定!
这样,当需要做这样的报表的时候,只需要写3条非常简单的sql语句就完成了。
^_^