如题
    是否可以发份样本  或代码给我啊  :)
邮箱:[email protected]
先谢谢各位拉

解决方案 »

  1.   

    1.Crystal Report)
    2.Reporting Services
    3.VML
    4.GDI+
    -----------------
    你想要哪种?~~
      

  2.   

    我是想动态的生成曲线图
       恩  就想哪个验证码一样  
    我做的是一个  关于基金的东西你们看看  http://fund3.eastmoney.com/510181.html
    这个把
      

  3.   


    图表组件wsChart4.6(DLL版) 
    http://www.wave12.com/web/home.asp 示例
      

  4.   

    使用owc11吧,画出来的效果很不错,可以实现饼图,柱图,曲线图等等.在我的blog里面有一个具体的实例,你可以参考一下,希望对你有帮助.
    http://blog.csdn.net/zhanglei5415/archive/2007/07/23/1702494.aspx
      

  5.   

    带图形的实例,请看这篇文章
    http://blog.csdn.net/zhanglei5415/archive/2007/07/16/1693333.aspx
      

  6.   

    用OFFICE自带的控件就行,现成的。
      

  7.   

    //获取数据
    DataSet ds=getData1(param1,param2,param3,param4);//自己替换掉
    //建立图形对象
    Graphics objGraphics;//建立画板对象
    Bitmap objBitmap=new Bitmap(1000,500);//建立位图对象
    objGraphics=Graphics.FromImage(objBitmap);//根据位图对象建立画板对象
    objGraphics.Clear(Color.White);//设置画板对象背景色
    //绘制坐标轴
    PointF point1=new PointF(30,420);//定义坐标轴原点
    PointF point2=new PointF(970,420);//定义横坐标终点
    PointF point3=new PointF(30,30);//定义纵坐标终点
    PointF point4=new PointF(25,40);//定义箭头左侧点
    PointF point5=new PointF(35,40);//定义箭头右侧点
    PointF line1Start=new PointF(30,320);//定义水平线100单位起点
    PointF line1End=new PointF(970,320);//定义水平线100单位终点
    PointF line2Start=new PointF(30,220);//定义水平线200单位起点
    PointF line2End=new PointF(970,220);//定义水平线200单位终点
    PointF line3Start=new PointF(30,120);//定义水平线300单位起点
    PointF line3End=new PointF(970,120);//定义水平线300单位终点
    objGraphics.DrawLine(Pens.Black,point1,point2);//绘制横坐标
    objGraphics.DrawLine(Pens.Black,point1,point3);//绘制纵坐标
    objGraphics.DrawLine(Pens.Black,point3,point4);//绘制左侧箭头线
    objGraphics.DrawLine(Pens.Black,point3,point5);//绘制右侧箭头线
    objGraphics.DrawLine(Pens.YellowGreen,line1Start,line1End);//绘制水平线100单位
    objGraphics.DrawLine(Pens.YellowGreen,line2Start,line2End);//绘制水平线200单位
    objGraphics.DrawLine(Pens.YellowGreen,line3Start,line3End);//绘制水平线300单位
    //获取数据
    float[] arrValues=new float[ds.Tables[0].Rows.Count];
    float flag=0;//获取最大的数值
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    arrValues[i]=float.Parse(ds.Tables[0].Rows[i][0].ToString());
    if(arrValues[i]>flag)
    {
    flag=arrValues[i];
    }
    }
    int pos=flag.ToString().IndexOf(".");//获取最大值中小数点的索引位置
    int count1=0;
    int countParam1=1;//缩放参数1
    int count2=1;
    float countParam2=1;//缩放参数2
    //最大值大于1000(最大值中小数点索引位置大于3)
    if(pos>3)
    {
    count1=pos-3;
    for(int i=0;i<count1;i++)
    {
    countParam1=countParam1*10;
    }
    }
    //最大值的整数位数
    for(int i=1;i<pos;i++)
    {
    count2=count2*10;
    }
    //最大值最高位的数值大于4的情况下,缩放参数2的值为0.4
    if(flag/count2>4)
    {
    countParam2=float.Parse("0.4");
    }
    //使用缩放参数调整要显示的数值
    for(int i=0;i<ds.Tables[0].Rows.Count;i++)
    {
    arrValues[i]=countParam2*float.Parse(ds.Tables[0].Rows[i][0].ToString())/countParam1+1;//加参数以避免实体超出图像范围,加1以避免未达到一个单位的矩形无法显示
    }
    //使用缩放参数调整坐标轴刻度值
    float scale1=100*countParam1/countParam2;
    float scale2=200*countParam1/countParam2;
    float scale3=300*countParam1/countParam2;
    if(param5=="1" || param5=="3")
    {
    //绘制调整后的坐标轴刻度值
    PointF scalePoint1=new PointF(30,320);
    PointF scalePoint2=new PointF(30,220);
    PointF scalePoint3=new PointF(30,120);
    objGraphics.DrawString(scale1.ToString(),new Font("宋体",9),Brushes.Black,scalePoint1);
    objGraphics.DrawString(scale2.ToString(),new Font("宋体",9),Brushes.Black,scalePoint2);
    objGraphics.DrawString(scale3.ToString(),new Font("宋体",9),Brushes.Black,scalePoint3);
    }//画折线图
    for(int j=0;j<arrValues.Length;j++)
    {
    if(j>0)
    {
    int k=j-1;
    PointF pointA=new PointF((j*65)+60,420-arrValues[j]);//定义起始点
    PointF pointB=new PointF((k*65)+60,420-arrValues[k]);//定义结束点
    objGraphics.DrawLine(Pens.Blue,pointA,pointB);//画折线
    }
    //标出数据
    PointF dataLeg=new PointF((j*65)+50,400-arrValues[j]);
    objGraphics.DrawString(ds.Tables[0].Rows[j][0].ToString(),new Font("宋体",9),Brushes.Red,dataLeg);
    //标出名称
    PointF nameLeg=new PointF((j*65)+50,440);
    string name=ds.Tables[0].Rows[j][1].ToString();
    string name2="";
    char[] nameElements=name.ToCharArray();
    for(int i=0;i<nameElements.Length;i++)
    {
    if(i==3 && nameElements.Length>3)
    {
    name2=name2+nameElements[i].ToString()+"\n";//在第四个字后换行
    }
    else
    {
    name2=name2+nameElements[i].ToString();
    }
    }
    objGraphics.DrawString(name2,new Font("宋体",9),Brushes.Black,nameLeg);
    }
    //绘制三角形便于突出显示各点
    for(int j=0;j<arrValues.Length;j++)
    {
    float paramA=float.Parse("8.66");
    float paramB=float.Parse("5");
    PointF points0=new PointF((j*65)+60,420-arrValues[j]-paramA);
    PointF points1=new PointF((j*65)+60-paramA,420-arrValues[j]+paramB);
    PointF points2=new PointF((j*65)+60+paramA,420-arrValues[j]+paramB);
    PointF[] points=new PointF[3]{points0,points1,points2};
    objGraphics.DrawPolygon(Pens.Green,points);
    objGraphics.FillPolygon(new SolidBrush(Color.Green),points);
    }
    objBitmap.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif);
      

  8.   

    zedgraph,这个是开源的控件,感觉不错
      

  9.   

    Dundas Chart for Windows Forms - Enterprise Eval (VS 2005)
      

  10.   

    用chart控件 很简单 可以直接绑定  而且做出来很漂亮