[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