zoukankan      html  css  js  c++  java
  • 利用office web component打造精品图表(一)

    大家在编写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开发,代码的自动提示功能此时会发挥出极大的作用。

    效果图如下:

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    BZOJ4383 : [POI2015]Pustynia
    BZOJ4382 : [POI2015]Podział naszyjnika
    BZOJ4381 : [POI2015]Odwiedziny
    BZOJ4380 : [POI2015]Myjnie
    BZOJ4378 : [POI2015]Logistyka
    BZOJ3424 : Poi2013 Multidrink
    BZOJ4367 : [IOI2014]holiday假期
    BZOJ4369 : [IOI2015]teams分组
    BZOJ4421 : [Cerc2015] Digit Division
    BZOJ1315 : Ural1557Network Attack
  • 原文地址:https://www.cnblogs.com/Athrun/p/1127648.html
Copyright © 2011-2022 走看看