仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1911|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网站制作之ASP网站近程客户完成EXCEL打印功效

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:24:31 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。excel|打印   在停止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" 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 & "'"

E</p>  使用cdonts,可以发送、查看邮件,实现webmail的功能。结合wsh,可以实现对nt主机的管理,如nt用户管理、iis虚拟主机设置、exchange邮箱设置等等,就像管理本地机一样方便。
老尸 该用户已被删除
沙发
 楼主| 发表于 2015-3-22 00:09:10 | 显示全部楼层
那么,ASP.Net有哪些改进呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-22 01:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表