利用OWC服务器端组件动态生成图表
利用OWC服务器端组件动态生成图表,利用OWC服务器端组件动态生成图表
下面我们会用一个具体的实例来说明这种方法。程序的测试环境为:
NT4.0(SP5)+IIS4.0+SQL Server7.0+IE5.0,要运行下面的ASP程序,请将下面的代码Copy,保存到你的一个虚拟目录中,在这个虚拟目录中建立一个子目录tmp(你可能修改代码中的路径以符合自己的路径),在IIS中设置read权限即可,注意了,在NT上你必须设置此tmp目录对IUSR_servername用户至少有Change的权限。建立一个pubs的DSN指向SQL Server的pubs数据库。
以下是代码:
chart.asp
<%
Function ExportChartToGIF(cspace)
Dim fso
Dim sFilePath
Dim sFileName
'生成临时文件的文件名
set fso = CreateObject("Scripting.FileSystemObject")
sFilePath = Request.ServerVariables("PATH_TRANSLATED")
sFilePath = left(sFilePath, InStrRev(sFilePath, ""))
sFilePath = sFilePath & "tmp"
sFileName = fso.GetTempName()
sFileName = sFileName & ".gif"
set fso=nothing
'将chart转换成GIF文件保存在临时目录
m_cspace.ExportPicture sFilePath & sFileName, "gif", 200, 150
'将生成的临时图片报存在session中以便于删除
Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName
ExportChartToGIF = sFileName
End Function
Sub BindChartToDSC(cspace, dsc, sRSName, sCategories, sValues)
Dim cht
Dim ser
set c = cspace.Constants
cspace.Clear
' 绑定数据源
set cspace.DataSource = dsc
cspace.DataMember = sRSName
set cht = cspace.Charts.Add()
cht.HasLegend = True
cht.Type = c.chChartTypePie
set ser = cht.SeriesCollection.Add()
ser.SetData c.chDimCategories, 0, sCategories
ser.SetData c.chDimValues, 0, sValues
set dls = ser.DataLabelsCollection.Add()
dls.HasPercentage = True
dls.HasValue = False
End Sub
%
<html
<head
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"
<meta name="ProgId" content="FrontPage.Editor.Document"
<title利用OWC动态生成图表</title
</head
<body
<%
set m_cspace = server.CreateObject("OWC.Chart")
set DSC = server.CreateObject("OWC.DataSourceControl")
DSC.ConnectionString = "D