亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 21:54:37
字體:
來源:轉載
供稿:網友
以前在這里也曾經有一些文章談到了在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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日本欧美视频| 综合久久五月天| 在线精品播放av| 亚洲男人天堂2023| 欧美日韩激情视频| 国产成人综合av| 亚洲欧美在线x视频| 91麻豆国产精品| 国产成人综合av| 在线观看国产欧美| 国产精品免费看久久久香蕉| 久久久91精品国产一区不卡| 亚洲日韩中文字幕在线播放| 91在线观看免费观看| 在线成人中文字幕| 2019中文在线观看| 欧美日韩成人在线观看| 国产ts人妖一区二区三区| 欧美黄网免费在线观看| 大荫蒂欧美视频另类xxxx| 亚洲欧美资源在线| 欧美极品少妇与黑人| 综合av色偷偷网| 亚洲男人天堂网| 中文字幕亚洲二区| 久久久久久久久久久91| 国产精品成人va在线观看| 久久av在线看| 日本欧美一二三区| 日韩资源在线观看| 91超碰中文字幕久久精品| 国产日韩精品综合网站| 国产亚洲aⅴaaaaaa毛片| 欧美性一区二区三区| 亚洲a∨日韩av高清在线观看| 亚洲国产成人精品久久久国产成人一区| 538国产精品一区二区免费视频| 欧美华人在线视频| 欧美日韩一区二区免费视频| 日本19禁啪啪免费观看www| 欧美夫妻性视频| 青青a在线精品免费观看| 欧美色道久久88综合亚洲精品| 岛国av一区二区在线在线观看| 欧美在线观看www| 欧美日韩免费区域视频在线观看| 欧美激情国产精品| 亚洲久久久久久久久久| 亚洲成色999久久网站| 亚洲欧美综合另类中字| 日韩精品极品毛片系列视频| 久久久久久网站| 亚洲精品动漫久久久久| 91po在线观看91精品国产性色| 欧美成年人视频网站欧美| 日韩欧美大尺度| 国产97色在线| 久久免费高清视频| 青青草成人在线| 亚洲天堂网站在线观看视频| 38少妇精品导航| 中文字幕精品视频| 国产网站欧美日韩免费精品在线观看| 日韩av电影免费观看高清| 欧美精品激情在线| 在线播放精品一区二区三区| 欧美电影第一页| 国产精品视频内| 91精品视频观看| 国产成人精品一区二区在线| 亚洲人成电影网| 亚洲欧美制服另类日韩| 国产美女91呻吟求| 亚洲日本中文字幕免费在线不卡| 2021国产精品视频| 九九热精品视频在线播放| 欧美国产日韩一区二区三区| 精品欧美一区二区三区| 亚洲国产一区二区三区四区| 国内精品久久影院| 92国产精品久久久久首页| 国产97在线|亚洲| 中文字幕国产日韩| 色七七影院综合| 久久精品欧美视频| 国产精品视频中文字幕91| 曰本色欧美视频在线| 最近中文字幕日韩精品| 国产免费一区视频观看免费| 国产91ⅴ在线精品免费观看| 亚洲免费视频在线观看| 国产一区二中文字幕在线看| 亚洲视频在线免费观看| 精品毛片三在线观看| 国产日韩av在线| 国产精品久久久久久搜索| 国产亚洲精品久久久| 国产91精品久久久久| 欧美性猛交xxxx乱大交蜜桃| 性金发美女69hd大尺寸| 亚洲乱码一区av黑人高潮| 国产一区二区三区在线观看视频| 日本a级片电影一区二区| 国产在线观看精品| 伊人激情综合网| 性欧美视频videos6一9| 色妞色视频一区二区三区四区| 亚洲欧美日韩中文在线制服| 国产日韩欧美另类| 午夜精品久久久久久久白皮肤| 国产精品高潮呻吟视频| 欧美一级淫片丝袜脚交| 欧美性受xxxx白人性爽| 久久久久久久久久久亚洲| 久久精品国产一区二区电影| 欧美日韩成人免费| 国内偷自视频区视频综合| 国产亚洲视频在线| 在线观看91久久久久久| 亚洲最大福利网| 久久久之久亚州精品露出| 精品福利一区二区| 全球成人中文在线| 欧美劲爆第一页| 日本欧美精品在线| 7777精品久久久久久| 全色精品综合影院| 中文字幕久热精品视频在线| 国产成人高清激情视频在线观看| 国产69久久精品成人| 亚洲欧洲日韩国产| 国产有码在线一区二区视频| 亚洲最新av网址| 国产成人av在线播放| 国产成人精品在线| 97精品一区二区视频在线观看| 久久偷看各类女兵18女厕嘘嘘| 亚洲天堂第一页| 夜夜嗨av一区二区三区免费区| 国产小视频91| 欧美一区二区三区……| 欧美老女人xx| 欧美精品性视频| 国产成人av在线| 亚洲最大在线视频| 91国产精品91| 国产亚洲视频中文字幕视频| 久久久久久久国产精品| 亚洲国产高清高潮精品美女| 日韩精品高清视频| 日韩黄色高清视频| 国产亚洲精品高潮| 精品动漫一区二区| 国产精品一区二区久久| 亚洲女成人图区| 成人黄色中文字幕| 亚洲国产日韩欧美综合久久| 97国产精品视频人人做人人爱| 亚洲系列中文字幕| 亚洲美女av在线播放| 中文字幕无线精品亚洲乱码一区| 国产精品美女主播在线观看纯欲| 亚洲免费伊人电影在线观看av| 久久亚洲影音av资源网|