• 当前位置:首页>>ASP教程>>ASP开发例子>>在浏览器中动态显示图形(利用owc)
  • 在浏览器中动态显示图形(利用owc)
  • 大家在编写ASP程序的时候,可能要对各种指标以图形的方式显示出来。如果仅仅是柱状图,可以采用画表格的方法。许多投票程序多采用这种方法。如果是饼状图或从数据库中检索数据后再显示,就有些困难了.办法也有,自己可以封装Excel来完成上述功能,或者用deiphi做一个activeform传入参数,或者用PHP来写,java也可以。当然,用一个比较成熟的图形组件来完成更好一些。microsoft office web compoent非常不错。我在开发一个项目的时候,用到了这个组件。


    CHART.ASP程序。

    <% Option Explicit %>
    <!--#include file="adovbs.inc"-->
    <HTML>
    <HEAD>
    <TITLE>柱状图的例子</TITLE>
    <%
    Function ExportChartToGIF(objCSpace, strAbsFilePath, strRelFilePath)
    Dim strFileName
    Randomize
    strFileName = Timer & Rnd & ".gif"
    objCSpace.ExportPicture strAbsFilePath & "\" & strFileName, "gif", 650, 400
    ExportChartToGIF = strRelFilePath & "/" & strFileName
    End Function

    Sub CleanUpGIF(GIFpath)
    Dim objFS
    Dim objFolder
    Dim gif
    set objFS = Server.CreateObject("Scripting.FileSystemObject")
    set objFolder = objFS.GetFolder(GIFpath)
    for each gif in objFolder.Files
    if instr(gif.Name, ".gif") > 0 and
    DateDiff("n", gif.DateLastModified, now) > 10 then
    objFS.DeleteFile GIFpath & "\" & gif.Name, True
    end if
    next
    set objFolder = nothing
    set objFS = nothing
    End Sub

    %>
    </HEAD>
    <BODY BGCOLOR="#FFFFFF">
    <div align="center">
    <br>
    <br>
    <%
    dim sj1,sj2
    sj1=Request.QueryString("s1")
    sj2=Request.QueryString("s2")

    dim objChartSpace
    dim objChart
    dim objSeries
    dim objConn
    dim objRS
    dim c
    dim series
    dim strChartAbsPath
    dim strChartRelPath
    dim strChartFile
    dim axis

    strChartAbsPath = Server.MapPath("/xjsi-web/dCSS/chart")
    strChartRelPath = "/xjsi-web/dCSS/chart"
    '设置组件

    set objChartSpace = Server.CreateObject("OWC.Chart")
    set objChart = objChartSpace.Charts.Add
    set c = objChartSpace.Constants

    objChartSpace.Border.Color="red"
    '以柱状图显示
    objchart.type=1
    objChart.HasLegend = True'是否显示图例
    objChartSpace.HasChartSpaceTitle=true '显示标题
    objChartSpace.ChartSpaceTitle.Caption ="柱状图的例子使用office web组件--www.ourfly.com中文技术网站"
    set objConn = Server.CreateObject("ADODB.Connection")
    objConn.Open application("strconn")
    set objRS = Server.CreateObject("ADODB.Recordset")
    set objRS.ActiveConnection = objConn
    objRS.CursorType = adOpenStatic
    objRS.CursorLocation = adUseClient
    objRS.Open "select dwsj,sum(jfrs) as jfrs
    from dCSS_do_jfgcfxb where dwsj>='"&sj1&"' and dwsj<'"&sj2&"'
    group by dwsj order by dwsj asc"

    set objChartSpace.DataSource = objRS
    '显示图例内容
    objChart.SetData c.chDimSeriesNames, 0, "jfrs"
    for each objSeries in objChart.SeriesCollection
    objSeries.SetData c.chDimCategories, 0, "dwsj"
    objSeries.SetData c.chDimValues, 0, "jfrs"
    next

    for each axis in objChart.Axes
    axis.HasTitle = True
    if axis.Type = c.chCategoryAxis then
    axis.Title.Caption = "月份"
    else
    axis.Title.Caption = "人数"
    end if
    next

    strChartFile = ExportChartToGIF(objChartSpace, strChartAbsPath, strChartRelPath)
    Response.Write "<IMG SRC=../../""" & strChartFile & """>" & "<P>"
    CleanUpGIF strChartAbsPath

    objRS.Close
    set objRS = nothing
    set objConn = nothing
    set objSeries = nothing
    set objChart = nothing
    set objChartSpace = nothing
    %>
    </div>
    </BODY>
    </HTML>
    使用这个组件的注意事项:
    1。在office2000的光盘上,有一个msowc.msi的可执行文件.OK
    2。建议大家用visual interdev6.0开发,代码的自动提示功能此时会发挥出极大的作用。

    效果图如下:


    [1]

  • 上一篇:网页计数器的程序:....多多指真。
    下一篇:利用ASP的文件操作实现用户管理