日期:2014-05-20  浏览次数:20375 次

[50分求助]如何将DataGrid显示的数据用柱状图表示出来?
如何将DataGrid显示的数据用柱状图表示出来?

例如:DataGrid有三列
===================================
项目名称           模块名称         完成时间
------------------
A项目                     登录模块               2小时
A项目                     注册模块               3小时
B项目                     查询模块               1小时
B项目                     统计模块               4小时
====================

要实现的柱状图为:

A项目显示为一个2+3=5的柱子
旁边有登录模块为2的小柱子和注册模块为3的小柱子
B项目显示为一个1+4=5的柱子
旁边有查询模块为1的小柱子和统计模块为4的小柱子
所有柱子在同一个水平线上,最好有不同颜色区分

目前本人正在研究中   还没有完全实现   网上也没有找到合适的图表控件
如果有哪位大侠对图标显示数据技术比较熟悉   请指点一下   多谢了

------解决方案--------------------
private void DrawChart() { // 在此处放置用户代码以初始化页面 //创建ChartSpace对象来放置图表 OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象 OWC.WCChart objChart = objCSpace.Charts.Add(0); //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例 objChart.HasLegend = true; //给定标题 objChart.HasTitle = true; objChart.Title.Caption= "上半年分布图 "; //给定x,y轴的图示说明 objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = "Y : 数量 "; objChart.Axes[1].HasTitle = true; objChart.Axes[1].Title.Caption = "X : 月份 "; //计算数据 /*categories 和 values 可以用tab分割的字符串来表示*/ string strSeriesName = "图例 1 "; string strCategory = "1 " + '\t ' + "2 " + '\t ' + "3 " + '\t '+ "4 " + '\t ' + "5 " + '\t ' + "6 " + '\t '; string strValue = "9 " + '\t ' + "8 " + '\t ' + "4 " + '\t '+ "10 " + '\t ' + "12 " + '\t ' + "6 " + '\t '; //添加一个series objChart.SeriesCollection.Add(0); //给定series的名字 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimSeriesNames, + (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimCategories, + (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值 objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimValues, (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //创建GIF文件的相对路径. string strRelativePath = "./test.gif "; //输出成GIF文件. string strAbsolutePath = Server.MapPath(strRelativePath); objCSpace.ExportPicture(strAbsolutePath, "GIF ", 600, 350); //把图片添加到placeholder. string strImageTag = " <IMG SRC= ' " + strRelativePath + " '/> "; ChartHolder.Controls.Add(new LiteralControl(strImageTag)); }
------解决方案--------------------
参考楼上的,用OWC,装了OFFICE就有的
------解决方案--------------------
用ZedGraph还可以实现柱装图中的分段图
------解决方案--------------------
up