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

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

ASP網站遠程客戶完成EXCEL打印技巧

[摘要]在進行ASP網站開發時,有時需在客戶端調用MSSQL數據庫的數據進行打印,若調用數據量小,可以通過在客戶端運用FileSystemObject生成文件對象的方法實現打印,這里不再贅述。若需調用大量數...
在進行ASP網站開發時,有時需在客戶端調用MSSQL數據庫的數據進行打印,若調用數據量小,可以通過在客戶端運用FileSystemObject生成文件對象的方法實現打印,這里不再贅述。若需調用大量數據,可在客戶端腳本中實例化RDS.DataSpace(Remote Data Service)對象,并采用遠程提供程序通過ASP網站訪問MSSQL數據庫(設置成只能通過RDS Default Handler或自定義商業對象才能訪問數據庫,可保證數據庫的安全),再在客戶端實例化EXCEL.APPLICATION對象,把數據集中的數據寫入EXCEL中,再進行保存或打印。代碼如下:

<html>

<head>

<META content="text/html; charset=gb2312" http-equiv=Content-Type>

<title>客戶端電子表格打印</title>

</head>

<body bgColor=skyblue topMargin=5 leftMargin="20" oncontextmenu="return false" rightMargin=0 bottomMargin="0">

<div align="center"><center>

<table border="1" bgcolor="#ffe4b5" style="HEIGHT: 1px; TOP: 0px" bordercolor="#0000ff">

<tr>

<td align="middle" bgcolor="#ffffff" bordercolor="#000080">

<font color="#000080" size="3">

客戶端電子表格打印

</font>

</td>

</tr>

</table>

</div>

<form name="myform">

<DIV align=left>

<input type="button" value="Excel Report" name="report" language="vbscript" onclick="fun_excel()" style="HEIGHT: 32px; WIDTH: 90px">

</div>

</form>

</body>

</html>

<script language="vbscript">

sub fun_excel()

Dim rds,rs,df

dim strCn,strSQL,StrRs

Dim xlApp, xlBook, xlSheet1

set rds = CreateObject("RDS.DataSpace")

Set df = rds.CreateObject("RDSServer.DataFactory","http://192.168.0.1") '192.168.0.1 為WEB服務器IP地址

strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 為WEB服務器IP地址

strsql= "getalljobs"

Set rs = df.Query(strCn, strSQL)


Set xlApp = CreateObject("EXCEL.APPLICATION") '注意不是:Server.CreateObject("EXCEL.APPLICATION")

Set xlBook = xlApp.Workbooks.Add

Set xlSheet1 = xlBook.Worksheets(1)

xlSheet1.cells(1,1).value ="職務表"

xlSheet1.range("A1:D1").merge

xlSheet1.cells(2,1).value = "job_id"

xlSheet1.cells(2,2).value = "job_desc"

xlSheet1.cells(2,3).value = "max_lvl"

xlSheet1.cells(2,4).value = "min_lvl"

cnt =3

do while not rs.eof

xlSheet1.cells(cnt,1).value = rs("job_id")

xlSheet1.cells(cnt,2).value = rs("job_desc")

xlSheet1.cells(cnt,3).value = rs("max_lvl")

xlSheet1.cells(cnt,4).value = rs("min_lvl")

rs.movenext

cnt = cint(cnt) + 1

loop

xlSheet1.Application.Visible = True

end sub

</script>

  也可以實例化RDS DataControl,只需把以上部分代碼進行修改:

set rds = CreateObject("RDS.DataSpace")

Set df = rds.CreateObject("RDSServer.DataFactory","http://192.168.0.1") '192.168.0.1 為WEB服務器IP地址

strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 為WEB服務器IP地址

strsql= "getalljobs"

Set rs = df.Query(strCn, strSQL)

  修改為:

set DC = createobject("RDS.DataControl")

dc.ExecuteOptions =1 '設置成同步執行,可以簡化下步代碼

dc.FetchOptions = 1

With dc

.Server = "http://192.168.0.1"

.Handler = "MSDFMAP.Handler"

.Connect = "Data Source=pubsdatabase;"

.Sql = "getalljobs"

.Refresh

End With

set rs= dc.Recordset

  修改文件MSDFMAP.INI(若在WIN98,C:\windows\msdfmap.ini;若在WIN2000,D:\winnt\msdfmap.ini;若在WIN2000 SERVER,D:\winnts\msdfmap.ini)。

[sql getalljobs]

Sql="SELECT * FROM jobs"


[connect pubsDatabase]

Access=Readonly

Connect="provider=sqloledb;data source=sql server;initial catalog=pubs;UID=userid;PWD=password"

  打開注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\W3SVC\Parameters\ADCLaunch 若無 RDSServer.Datafactory,請添加。本例使用RDS Default Handler訪問數據庫,若不通過RDS Handler訪問數據庫,修改注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataFactory\ HandlerInfo 將HandlerRequired=1 設置成HandlerRequired =0。請注意,若不通過RDS Handler或自定義商業對象訪問數據庫,將對數據庫帶來安全隱患,所以作者極力推薦采用只能通過RDS Handler或自定義商業對象才能訪問數據庫的方式。

  下面用VB編寫一個自定義商業對象,代碼如下:

'編寫ActiveX DLL,名稱:rsget.dll,包含類rsreturn,方法returnrs

Public Function ReturnRs(strDB As Variant, strSQL As Variant) As ADODB.Recordset

'Returns an ADODB recordset.

On Error GoTo ehGetRecordset

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Select Case strDB

Case "ydjjspdatabase"

strDB = "ydjjsp"

Case "pubsdatabase"

strDB = "pubs"

End Select


If strSQL = "getallbuy" Then

strSQL = "select * from buyuser"

GoTo nextstep

End If

If Left(strSQL, InStr(strSQL, "(") - 1) = "getpubsbyid" Then

If InStr(strSQL, ",") <= 0 Then

Dim str As String

str = Mid(strSQL, InStr(strSQL, "(") + 2, InStr(strSQL, ")") - InStr(strSQL, "(") - 3)

strSQL = "select * from jobs where job_id='" & str & "'"

Else

Dim strstart, strend As String

strstart = Mid(strSQL, InStr(strSQL, "(") + 2, InStr(strSQL, ",") - InStr(strSQL, "(") - 3)

strend = Mid(strSQL, InStr(strSQL, ",") + 2, InStr(strSQL, ")") - InStr(strSQL, ",") - 3)

strSQL = "select * from jobs where job_id>='" & strstart & "' and job_id<='" & strend & "'"

End If

End If

nextstep:

Dim strConnect As String

strConnect = "Provider=SQLOLEDB;Server=ddk;uid=ydj;pwd=ydj; Database=" & strDB & ";"

cn.Open strConnect

rs.CursorLocation = adUseClient

rs.Open strSQL, cn, adOpenStatic, adLockOptimistic, adCmdText

Set ReturnRs = rs

Exit Function

ehGetRecordset:

Err.Raise Err.Number, Err.Source, Err.Description

End Function

  把rsget.dll復制到C:\WINDOWS或D:\WINNT,開始\運行,輸入Regsvr32.exe c:\windows\rsget.dll或Regsvr32.exe d:\winnt\rsget.dll,按確定按鈕,注冊成WEB服務器組件,并在注冊表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\W3SVC\Parameters\ADCLaunch 添加rsget.rsreturn。

  若使用自定義商業對象,修改上面的ASP文件代碼:

set rds = CreateObject("RDS.DataSpace")

Set df = rds.CreateObject("RDSServer.DataFactory","http://192.168.0.1") '192.168.0.1 為WEB服務器IP地址

strcn="provider=ms remote;remote server=http://192.168.0.1;handler=msdfmap.handler;data source=pubsdatabase;" '192.168.0.1 為WEB服務器IP地址

strsql= "getalljobs"

Set rs = df.Query(strCn, strSQL)

  改為:

set rds = CreateObject("RDS.DataSpace")


Set df = rds.CreateObject("rsget.rsreturn","http://192.168.0.1")

set rs=df.returnrs("pubsdatabase","getpubsbyid('2','10')")

  另外在瀏覽器端需做如下配置:

  打開控制面板->INTERNET選項->安全性->自定義級別-> 對沒有標記為安全的ActiveX控件進行初始化和腳本運行->開啟


 

 

  作者姓名:游大軍

  聯系地址:遼寧省凌源鋼鐵集團有限責任公司生產安全部

  郵編:122504

  email地址:ydj1922@sohu.com



主站蜘蛛池模板: 青青青爽国产在线视频 | 中文字幕在线三浦惠理子 | 亚洲视频污| 亚洲va韩国va欧美va | 日本激情在线观看 | 四虎库| 色综合桃花网 | 日本黄 色 成 年 人免费观看 | 午夜片在线| 婷婷热 | 日本亚洲欧美 | 天堂网www中文在线资源 | 四虎 在线播放 | 无码中文av有码中文av | 又大又硬又爽又粗又快的视频免费 | 天天插天天射天天干 | 亚洲图片欧美 | 色五丁香| 色yeye免费视频免费看 | 青娱乐在线播放 | 网站在线观看mv视频 | 色噜噜狠狠色综合中国 | 青青草原免费在线视频 | 午夜网站在线观看免费网址免费 | 手机在线毛片免费播放 | 日韩在线影院 | 午夜亚洲一区二区福利 | 一级做a爰片久久免费 | 日本三区四区免费高清不卡 | 手机在线看片国产 | 亚洲成av人片在线观看天堂无码 | 日韩av一中美av一中文字慕 | 一二三四社区在线高清3 | 日本精品免费 | 亚洲国产欧美在线 | 五月天婷婷丁香 | 日韩精品亚洲人成在线观看 | 亚洲欧洲精品一区二区三区 | 日本一区二区视频在线 | 四只虎免费永久观看地址 | 人人揉人人爽五月天视频 |