|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。word|创立跟着人们对数据库及静态HTML(DHTML)的使用和对XML的乐趣的增添,以是在贸易网站的数据中利用静态内容变得愈来愈广泛。这里我们就乐成使用了一则最新的技能――用ASP创立Word文件,我想您看后一定会遭到很年夜的启示。
原文出处:http://www.asptoday.com/articles/19990825.htm
背景
BuildDoc.asp是一个ASP文件,它读进一个网页表单的输入,并创立一个MicrosoftWord文件作为输入,个中包括依据表单内数据改动发生的一个表格。表单内容不再范围于静态信息。也就是说,表单中所显现的内容大概跟着用户的交互感化而改动。
BuildDoc所满意的贸易需求是:依据发卖职员网页列表变更的纪录,创建表单函件。只要被发卖职员修正过的数据才被发送到Word,在那边这些数据被格局化到表格中。
BuildDoc读进表单上的一切信息,辨认被改动的行,然后用被改动的行中包括的信息来创立一个MicrosoftWord文件。BuildDoc利用一个模板文件(buildDoc.dot),个中包括地点头和一些事后格局化的文本。然后向文件中写进一个表格,个中的每行都对应与网页表单中被修正过的一行。
怎样做?
入手下手时,将一切的网页表单域读进吸收网页的隐含表单域中。鄙人面的源代码中,请注重在Body标志中对“onLoad”的挪用。它挪用buildDocVB剧本子程序,向它传送3个参数:页面中表单的内容(一切的隐含域)、Word模板文件的地位、从输出表单中收到的行数。读一切的输出表单域,然后当页面装载后挪用buildDoc子程序。为了冗长起见,这里假定一切变量在利用之前都已被声明:
buildDoc.asp中装载输出表单域的代码以下:
〈!DOCTYPEHTMLPUBLIC"-//W3C/DTDHTML3.2Final//EN">
〈HEAD>
〈TITLE>BuildDocument〈/TITLE>
〈METAHTTP-EQUIV="Refresh"CONTENT="30;URL=orderForm.asp">
〈/HEAD>
〈%
dotLocation="servernamedirectoryheTemplate.dot"
intRowCount=Request.Form("rowCount")initializearowcounter
%>
〈BODYLanguage="VBScript"onLoad="buildDocdocument.theForm,
〈%=dotLocation%>,intRowCount>
〈FORMNAME="theForm">
〈%
itemCount=0setfieldcountertozero
ForEachIteminRequest.Formcountuptheformfields
itemCount=itemCount+1usingFor..Nextloop
%>
〈INPUTTYPE="hidden"NAME="〈%=Item%>"VALUE="〈%=Request(Item)%>">
〈%Next%>
〈INPUTTYPE="hidden"NAME="numbRows"VALUE="〈%=intRowCount%>">
〈INPUTTYPE="hidden"NAME="fieldCount"VALUE="〈%=itemCount%>">
〈/FORM>
〈/BODY>
〈/HTML>
用上面例子中的代码来创立一个Word文件工具。请注重在InternetExplorer4+中,要将扫瞄器的平安性设置为Low或Custom,以能使使用程序运转乐成。
〈%
SetobjWordDoc=CreateObject("Word.Document")
ObjWordDoc.Application.Documents.AddtheTemplate,False
ObjWordDoc.Application.Visible=True
%>
调剂数组的维数使它与网页表单所包括的行数不异。这时候,将Y轴设为4个常量,这是输入文件中所必要的栏数。X轴包括从表单中吸收的行数。
〈%RedimPreservetheArray(4,intTableRows)%>
如今入手下手反省一切的表单行。在一切输出的网页表单域中轮回,搜集每一个表单域名及其响应的值。逐一反省以决意将其放进哪一个数列元素内,然后将其放进。以下举例代码中的SELECTCASE命令很主要,这决意表单域属于哪一列。为了便利,利用不断定编码的CASE选择。
〈%
ForintCount=0tofrmData.fieldCount.value
strOkay="Y"
strSearch=frmData.elements(intCount).nameloadthefieldname
strValue=frmData.elements(intCount).valueloadthefieldvalue
strPosition=Instr(1,strSearch,"_")getposvalof"_"
intStringLen=strPosition-1
IfintStrLen>0Then
strLeft=Left(strSearch,intStringLen)
strRight=Right(strSearch,(Len(strSearch)-Len(strLeft)-1))
SelectCasestrLeft
Case"SKU"intArrayY=0
Case"description"intArrayY=1
Case"price"intArrayY=2
Case"quantity&</p>我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。 |
|