利用office web component打造精品图表(一)

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

效果图如下:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航