六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

使用OWC服務器端組件動態生成圖表

[摘要]以前在這里也曾經有一些文章談到了在ASP中生成動態圖表的問題,但那些文章中所談到的一些方法都有某些方面的限制,如需要在客戶端安裝office2000或安裝OWC,有些則可能在Intranet中使用時沒什么問題,但在通過Internet訪問的時候,就可能出現無法正常工作的現象(這主要和SQL Ser...
以前在這里也曾經有一些文章談到了在ASP中生成動態圖表的問題,但那些文章中所談到的一些方法都有某些方面的限制,如需要在客戶端安裝office2000或安裝OWC,有些則可能在Intranet中使用時沒什么問題,但在通過Internet訪問的時候,就可能出現無法正常工作的現象(這主要和SQL Server的安全設置有關)。那么,我們如何來避免這些問題呢?有一個很好的方法,就是將在ASP中生成的圖表轉換成圖片文件保存在服務器上,這樣用戶最終看到的是GIF圖片格式的圖表,我想現在的任何一種瀏覽器在觀看GIF圖片的時候都沒什么問題吧。:)也許唯一可能的問題就是如何對這些生成的臨時圖片文件的處理問題,關于這個問題在最后我們會討論。
下面我們會用一個具體的實例來說明這種方法。程序的測試環境為:
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 = "DSN=pubs;uid=sa"
DSC.RecordsetDefs.AddNew "select distinct state,num=COUNT(*) FROM authors GROUP BY state",DSC.Constants.dscCommandText,"ChartData"
BindChartToDSC m_cspace, DSC, "ChartData", "state", "num"
m_sFilePath = ExportChartToGIF(m_cspace)
set m_cspace=nothing
set m_cht=nothing
%>

<br><br>
<img src="tmp/<%= m_sFilePath %>">
</BODY>
</HTML>
其中我們會發現兩個有用的函數:ExportChartToGIF和BindChartToDSC
ExportChartToGIF(cspace)是一個用來將chart轉換成GIF文件的函數
cspace:一個OWC.Chart的實例
BindChartToDSC(cspace, dsc, sRSName, sCategories, sValues)用來將一個Chart綁定到數據源
cspace:OWC.Chart的實例
dsc:數據源
sRSName:記錄集名稱
sCategories,sValues:Chart中每個系列的名稱字段和相應的值的字段名(說的好象不是很清楚,不過看看代碼你就明白了)
在使用服務器端的OWC時,實際上和使用其它的組件沒什么區別,都是用server.createobject來創建一個實例,再調用組件的方法和屬性。
OWC包括四個組件,他們的ProgID分別為:
OWC.Chart:圖表組件
OWC.SpreadSheet:電子表格組件
OWC.DataSourceControl:數據源組件
OWC.PivotTable:動態報表組件

最后說一下如何處理臨時的圖片文件
在ExportChartToGIF漢書中你可以看到如下的代碼:
Session("TC:" & sFilePath & sFileName) = sFilePath & sFileName
我們將產生的圖片文件路徑保存在session中,然后在Session_OnEnd中添加如下的代碼:
Set fsoTemp = CreateObject("Scripting.FileSystemObject")
for each imagefile in Session.Contents
    if left(imagefile,3) = "TC:" then
        fsoTemp.DeleteFile mid(imagefile,4), True
    end if
next
set fsoTemp=nothing

好了。終于寫完了,其中關于臨時文件的處理的方法也許不是很好,如果你有更好的方法的話,請告訴我。希望這篇文章對大家都所幫助:)




主站蜘蛛池模板: 天天插天天射天天操 | 亚洲欧美日韩在线不卡 | 青青国产成人精品视频 | 四虎在线最新永久免费播放 | 亚洲动作片| 天堂√在线中文资源网 | 日本免费色网站 | 最新国产视频 | 色色网视频 | 亚洲涩色 | 午夜天堂 | 日本大片a| 欧美中文在线视频 | 四虎永久在线免费观看 | 亚洲天堂中文字幕在线观看 | 天堂tv亚洲tv日本tv不卡 | 伊人影视 | 日韩精品一区在线观看 | 四虎永久精品免费观看 | 在线成人国产 | 日本最新免费二区三区 | 网站在线免费观看 | 天天综合视频 | 日本aa大片在线播放免费看 | 一二三四在线观看免费高清网 | 在线观看视频一区二区 | 色婷婷激婷婷深爱五月老司机 | 伊人婷婷色香五月综合缴激情 | 在线观看91精品国产下载 | 天堂网www在线资源链接 | 日本xxxx在线观看 | 日韩生活片 | 日本黄页网站在线观看 | 亚洲人成人77777在线播放 | 亚洲欧美国产人成在线app | 青草久久网 | 日本不卡高清视频 | 偷窥自拍亚洲色图 | 欧美一级性视频 | 日韩欧美在线综合网高清 | 色欧美在线视频 |