Microsoft Reporting Service or Crystal Report or OWC.

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=221BC601-1A1B-4E1F-883D-04B043659703
      

  2.   

    有3个方法
    1.CRYISTREPORT上有的 你安装了没
    2.去网上找免费的CHART控件
    3.自己有.NET带的GDI组件画 这个是又累又不好的 我以前用的 你可以自己写组件
      

  3.   

    <%@ Import NameSpace="homepage" %>
    <%@ Import NameSpace="System.Drawing" %>
    <%@ Import NameSpace="System.Drawing.Imaging" %>
    <%@ Import NameSpace="System.Math" %><script runat="SERVER">
    Dim homepage As usershop
    Dim typeid As String
    Dim gui_bm As BitMap
    Dim gui_gh As Graphics
    Dim votename As String
    Dim votecount As Integer
    Dim showp As Byte
    Dim i As BytePrivate Function GetColor(ByVal itemIndex As Integer) As Color    Dim objColor As Color    Select Case itemIndex
          Case 0
            objColor = Color.Blue
          Case 1
            objColor = Color.Red
          Case 2
            objColor = Color.Yellow
          Case 3
            objColor = Color.Purple
          Case 4
            objColor = Color.Orange
          Case 5
            objColor = Color.Brown
          Case 6
            objColor = Color.Gray
          Case 7
            objColor = Color.Maroon
          Case 8
            objColor = Color.Maroon
          Case Else
            objColor = Color.Beige
        End Select
        Return objColor
      End Function
    Sub Page_Unload()
    homepage.conn.Close()
    homepage.conn.Dispose()
    homepage = Nothing
    Me.Dispose()
    End Sub
    </script><%
    Response.Cache.SetNoStore()typeid = Request("typeid")
    If Not IsNumeric(typeid) Then
    Response.Redirect("/")
    End If'读取投票标题
    homepage = New usershop
    votename = homepage.votename(typeid)
    If votename="" Then
    homepage.conn.Close
    Me.Dispose()
    Response.Redirect("/")
    else
    votename = Replace(Replace(votename,"<b>",""),"</b>","")
    End If
    homepage.dataread.Close
    homepage.objcommand.Dispose()
    '投票总数
    votecount = homepage.votecount(typeid)'初始绘图
    gui_bm = New BitMap(500,400)
    gui_gh = Graphics.FromImage(gui_bm)
    gui_gh.Clear(Color.White) '白色背景
    gui_gh.CompositingQuality = Drawing.Drawing2D.CompositingQuality.HighQuality
    gui_gh.SmoothingMode = Drawing.Drawing2D.SmoothingMode.AntiAliasshowp = (500 - (len(votename)*18))/2
    gui_gh.DrawString(votename,New Font("宋体", 14,FontStyle.Bold), Brushes.Red, New PointF(showp, 5))'创建图例文字。 
    Dim symbolLeg As PointF = New PointF(335, 80)
    Dim descLeg As PointF = New PointF(360, 80)
    Call homepage.votedata(typeid) '得到此次投票数据
    Do While  homepage.dataread.Read()
    gui_gh.FillRectangle(New SolidBrush(GetColor(i)), symbolLeg.X, symbolLeg.Y, 20, 10)
    gui_gh.DrawRectangle(Pens.Black, symbolLeg.X, symbolLeg.Y, 20, 10)
    gui_gh.DrawString(homepage.dataread("name").ToString, New Font("宋体", 9), Brushes.Black, descLeg)
    symbolLeg.Y += 20
        descLeg.Y += 20
    i+=1
    Loop
    homepage.dataread.Close()
    homepage.objcommand.Dispose()'写入版权信息
    gui_gh.DrawString("中国西部经联网 - 网上商城", New Font("宋体", 9), Brushes.Gray, New PointF(320, 360))
    gui_gh.DrawString("BUY.CWECN.COM", New Font("Arial", 9), Brushes.Gray, New PointF(320, 380))symbolLeg = New PointF(335, 296)
    descLeg = New PointF(335, 295)
    gui_gh.FillRectangle(New SolidBrush(GetColor(9)), symbolLeg.X, symbolLeg.Y, 100, 18)
    gui_gh.DrawRectangle(Pens.Black, symbolLeg.X, symbolLeg.Y, 100, 18)
    gui_gh.DrawString("共票数: " & votecount, New Font("宋体", 9), Brushes.Black, New PointF(339, 300))Dim sglCurrentAngle As Single = 0 '角度
    Dim sglTotalAngle As Single = 0 '弧度
    Dim jd As SingleCall homepage.votedata(typeid) '得到此次投票数据
    i = 0
    Do While  homepage.dataread.Read()
    sglCurrentAngle = homepage.dataread("count") / votecount * 360 '得到所占角度大小
    '画出填充圆弧。
    gui_gh.FillPie(New SolidBrush(GetColor(i)),5, 65, 300, 300, sglTotalAngle, sglCurrentAngle)
    '画出圆弧线。
    gui_gh.DrawPie(Pens.Black, 5, 65, 300, 300, sglTotalAngle, sglCurrentAngle)
    '写入注释
    jd = sglCurrentAngle + sglTotalAngle
    gui_gh.DrawString("投票:" & homepage.dataread("count"), New Font("宋体", 9), Brushes.Gray, New PointF(155*cos(jd)*-1,215*sin(jd)*-1))
    '把当前圆弧角度加到总角度上。
    sglTotalAngle += sglCurrentAngle
    i += 1
    Loop
    homepage.dataread.Close()
    homepage.objcommand.Dispose()'保存图片
    gui_bm.Save(Response.OutputStream, ImageFormat.Gif)
    gui_gh.Flush()
    gui_gh.Dispose()
    gui_bm.Dispose()
    %>