|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。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"intArrayY=3
EndSelect
IntArrayX=strRight
IfstrOkay〈>"N"Then
TheArray(intArrayY,intArrayX)=strValue
EndIf
EndIf
Next
%>
如今入手下手创立文件。关于激活的文件,用变量rngCurrent设置MicrosoftWord文件工具RANGE(为了避免用户翻开另外一个文件),经由过程指定表格的地位(rngCurrent)和行、列的数量来断定其巨细。
〈%
SetrngCurrent=objWordDoc.Application.ActiveDocument.Content
SettabCurrent=ObjWordDoc.Application.ActiveDocument.Tables.Add
rngCurrent,intNumrows,4)
%>
创立了有表格的文件以后,我们入手下手往表格中装进数据。起首指到第一行row(tabRow=1),然落后行逐行轮回。在每行开头处拔出回车[Chr(10)],以便发生行间空行,最初增添行计数器,用“FormatCurrency”输入美圆值以包管利用$标记、逗号、小数点的地位。经由过程在
“ParagraphAlignment=2”处设置栏数来完成美圆数目的准确调剂。用VBA简单一些,不象用VBScript那样难。
〈%
Forj=1tointTableRows
ObjWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Borders.Enable=False
objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(1).Range.InsertAfter
theArray(1,j)
objWordDoc.Application.ActiveDocument.Tables(1).Rows(tabRow).Cells(2).Range.InsertAfter
theArray(2,j)
objWordDoc.Appli</p>asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关. |
|