如何将DataGrid显示的数据用柱状图表示出来?例如:DataGrid有三列
===================================
项目名称     模块名称    完成时间
------------------
A项目          登录模块       2小时
A项目          注册模块       3小时
B项目          查询模块       1小时
B项目          统计模块       4小时
====================要实现的柱状图为:A项目显示为一个2+3=5的柱子
旁边有登录模块为2的小柱子和注册模块为3的小柱子
B项目显示为一个1+4=5的柱子
旁边有查询模块为1的小柱子和统计模块为4的小柱子
所有柱子在同一个水平线上,最好有不同颜色区分目前本人正在研究中 还没有完全实现 网上也没有找到合适的图表控件
如果有哪位大侠对图标显示数据技术比较熟悉 请指点一下 多谢了

解决方案 »

  1.   

    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)); }
      

  2.   

    参考楼上的,用OWC,装了OFFICE就有的
      

  3.   

    用ZedGraph还可以实现柱装图中的分段图