ASP网站制作之ASP网站近程客户完成EXCEL打印功效
在实现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="SELECT * FROM jobs"
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邮箱设置等等,就像管理本地机一样方便。 Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。 那么,ASP.Net有哪些改进呢? 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。 ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的? 作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。 另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件) 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名") Session:这个存储跟客户端会话过程的数据,默认20分钟失效 Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件
页:
[1]