同学告诉我需要引用一个owc控件 还是不明白 希望能有相关代码……

解决方案 »

  1.   

    你指的图是什么意思?为什么不把String输到页面.
      

  2.   

    我需要用两种方式显示数据 一个用datagrid显示 另一种用图形显示 您还有什么其他建议吗?
      

  3.   

    public Bitmap curbitmap;
        private Rectangle rect = new Rectangle(250, 150, 200, 200);
        public ArrayList sliceList = new ArrayList();
        int[] valArray ={ 50, 25, 75, 100, 50 };
        Color[] clrArray ={ Color.Red,Color.Gray,Color.Yellow,Color.Pink,Color.Aqua};
        int total = 0;
        private void DrawPieChart(bool fiMode)
        {
            Bitmap curbitmap = new Bitmap(500, 300);
            Graphics g = Graphics.FromImage(curbitmap);
            g.SmoothingMode = SmoothingMode.AntiAlias;
            float angle = 0;
            float sweep = 0;
            //zongshu
            for (int i = 0; i < valArray.Length; i++)
            {
                total += valArray[i];
            }
            //从数组中取出颜色和值 并计算扫描角
            for (int i = 0; i < valArray.Length; i++)
            {
                int val = valArray[i];
                Color clr = clrArray[i];
                sweep = 360f * val / total;
                //如果填充模式,绘制饼图
                if (fiMode)
                {
                    SolidBrush brush = new SolidBrush(clr);
                    g.FillPie(brush, 20.0f, 20.0f, 200, 200, angle, sweep);
                }
                else
                {
                    Pen pn = new Pen(clr, 2);
                    g.DrawPie(pn,20.0f,20.0f,200,200,angle,sweep);
                }
                angle += sweep;
            }
            //将输出发送到浏览器
            curbitmap.Save(this.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            curbitmap.Dispose();
            g.Dispose();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            DrawPieChart(true);
        }
      

  4.   

    添加
    using System.Drawing;
    using System.Drawing.Drawing2D;
    这是绘制饼图的,局限性还是比较大的
    可能有更好用的第三方控件,你可以查找下 
      

  5.   

    要生成图吗?(柱状?饼图等?)是的话可以用owc,很方便网上查一下资料会有很多.
      

  6.   

       int[] valArray ={ 50, 25, 75, 100, 50 }; 
    根据这个数组来绘制比例图
    你可以从数据库中动态的取出数据,填充数组
    然后定义多一些颜色 如果需要比较简单的功能,问题应该不大 
    至于其它的,如绘制区域的大小,自己调整下就可以
      

  7.   

    给你一个参考,里面有说明和源码。http://blog.csdn.net/daichenghua/articles/620055.aspx
      

  8.   

    public System.Web.UI.WebControls.Image  MarkChart()
      {   
       System.Web.UI.WebControls.Image image =new System.Web.UI.WebControls.Image();
       //创建ChartSpace对象来放置图表
       OWC10.ChartSpace  objCSpace=new OWC10.ChartSpaceClass();
               OWC10.ChChart objChart=objCSpace.Charts.Add(0);   //在ChartSpace对象中添加图表,Add方法返回chart对象   //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
      
                objChart.Type=OWC10.ChartChartTypeEnum.chChartTypeLineMarkers;
       //指定图表是否需要图例
     
                 objChart.HasLegend=true;//指定图表工作区中含有图例 
     // -------设置图例--------------------------------------------    objChart.Legend.Font.Size = 9 ;//'其他有关字体项的设置参见设置图表标题部分 
          //给定标题
       objChart.HasTitle=true;
       objCSpace.HasChartSpaceTitle=true;
       objCSpace.AllowScreenTipEvents=true;
        objCSpace.DisplayBranding=true;
       objCSpace.ChartSpaceTitle.Caption= "我的OWC";
      objChart.Title.Font.Bold=true;
       objChart.Title.Font.Color="red";
                 objCSpace.AllowFiltering=true;
       objCSpace.AllowGrouping=true;
                 objCSpace.DisplayBranding=true;
       objCSpace.DisplayFieldButtons=true;
       objCSpace.HasPassiveAlerts=true;  objCSpace.HasUnifiedScales=true;
       objCSpace.IsDirty=true;
      
       //给定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 = "我的OWC";
       string strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t'+"4" + '\t' + "5" + '\t' + "6" + '\t'+ "7" + '\t' + "8" + '\t'+"9" + '\t' + "10" + '\t' + "11" + '\t';
       string strValue = "9" + '\t' + "9" + '\t' + "6" + '\t'+"4" + '\t' + "12" + '\t' + "6" + '\t'+  "8" + '\t' + '9' + '\t'+'2' + '\t' + "12" + '\t' + "6" + '\t';   //添加一个series
       objChart.SeriesCollection.Add(0);   //给定series的名字
       objChart.SeriesCollection[0].SetData (OWC10.ChartDimensionsEnum.chDimSeriesNames,
        + (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);   //给定分类
       objChart.SeriesCollection[0].SetData (OWC10.ChartDimensionsEnum.chDimCategories,
        + (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);   //给定值
       objChart.SeriesCollection[0].SetData
        (OWC10.ChartDimensionsEnum.chDimValues,
        (int)OWC10.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); 
         //输出成GIF文件. 
       //创建GIF文件的相对路径.   
       string ProjectName=ConfigurationSettings.AppSettings["ProjectName"]; 
       string ImageUrl=@"c:\me.gif";;  
       objCSpace.ExportPicture(ImageUrl, "GIF", 750, 400); 
       image.ImageUrl=ImageUrl; 
       return image;  }
      

  9.   

    再给你个参考:http://www.yaosansi.com/post/774.html
      

  10.   

    我要提供两种显示方法 一种是datagrid显示 另一种是用图显示 我也没想好用什么图显示 所以请教大家