推荐:对XML数据使用XMLConvertXML文件中的所有数据都以字符串来存储。当一个程序载入XML文件时,通常需要将数据转换为更加适合程序的类型。
例如,假设订单装运日期存在一个XML文件里,则使用该文件的程序需要将字符串表示
一、前言
ASP在电子商务上应用广泛,报表的处理又有一些麻烦。本文介绍了在ASP中利用本人写的Report Server Page脚本解释器实现报表的显示、打印。
二、准备工作
(1)安装Visual Reprort Design软件
Visual Report Design是本人写的一个免费的报表设计器,程序的发行只需要安装一个控件即可。
(2)设计报表
通过Visual Report Design 的可视化界面可以生成报表的脚本:mxb.rsp。
三、实现报表的打印、显示
下面是调用的文档:
以下为引用的内容:
printmx.asp <%Option Explicit%> <% dim ReportName,ret dim ReportAtl dim name set ReportAtl=Session("ReportAtl") ReportName=Server.MapPath("mxb.rsp") ret=reportatl.XMLToVBS(ReportName) if ret=-1 then response.write reportatl.ErrorMsg response.end end if
ReportName=Server.MapPath("mxb.vbs") ret=reportatl.DoScript(ReportName) if ret=-1 then response.write reportatl.ErrorMsg set ReportAtl=nothing response.end end if set ReportAtl=nothing %> <html> <OBJECT id=reportatl classid="clsid:D3F064E5-F4C0-4C52-9E7F-263D96B7EA11" codebase="Report.cab#version=1,0,0,1"> </OBJECT> <script language=vbscript> dim ret ret=reportatl.DoPrintReport("mxb.zcg") if ret=-1 then msgbox reportatl.ErrorMsg end if </script> </html> 用Visual Report Design 产生的报表脚本mxb.rsp: <?xml version="1.0" encoding="GB2312" ?> <!DOCTYPE report SYSTEM "print_report.dtd" > <report name="报表"> <report_script> dim rs,con,sql,lsh dim temp set con =CreateObject("ADODB.Connection") con.ConnectionString = "DBQ=c:\report\demo\asp\report.mdb;DRIVER={Microsoft Access Driver (*.mdb)};" con.open Set rs =CreateObject("ADODB.Recordset") sql="SELECT * FROM cj,student where cj.id=student.id " rs.open sql,con,1,3 </report_script> <report_head height="12"> <text name="vfptext" top="4" left="76" width="26" height="5" font_name="宋体" font_size="14" font_weight="700" font_italic="0" font_underline="0" > 成绩明细表 </text> </report_head> <page_head height="6"> <line name="vfpline" top="0" left="9" width="178" height="0" weight="131072"> </line> <line name="vfpline" top="6" left="9" width="178" height="0" weight="131072"> </line> <text name="vfptext" top="2" left="18" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 姓名 </text> <text name="vfptext" top="2" left="46" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 语文 </text> <text name="vfptext" top="2" left="72" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 数学 </text> <text name="vfptext" top="2" left="99" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 英语 </text> <text name="vfptext" top="2" left="162" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 合计 </text> <text name="vfptext" top="2" left="130" width="6" height="3" font_name="宋体" font_size="9" font_weight="700" font_italic="0" font_underline="0" > 平均 </text> </page_head> <page_body height="8"> <text name="vfptext" top="2" left="15" width="25" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr(rs("xm")) </report_script> </text> <text name="vfptext" top="2" left="45" width="18" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr(rs("yw")) </report_script> </text> <text name="vfptext" top="2" left="71" width="18" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr(rs("sx")) </report_script> </text> <text name="vfptext" top="2" left="98" width="18" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr(rs("yy")) </report_script> </text> <text name="vfptext" top="2" left="130" width="18" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr((rs("yw") rs("sx") rs("yy"))/3) </report_script> </text> <text name="vfptext" top="2" left="162" width="18" height="4" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> Report.Write cstr(rs("yw") rs("sx") rs("yy")) </report_script> </text> </page_body> <page_foot height="7"> <text name="vfptext" top="2" left="12" width="13" height="3" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > <report_script> report.write "打印日期:" formatdatetime(date(),1) </report_script> </text> <text name="vfptext" top="2" left="137" width="50" height="3" font_name="宋体" font_size="9" font_weight="100" font_italic="0" font_underline="0" > 共%Pages%页,第%Page%页 </text> <line name="vfpline" top="0" left="8" width="178" height="0" weight="131072"> </line> </page_foot> <report_script> do while not rs.eof page_body() rs.movenext loop rs.close set rs=nothing con.close set con=nothing </report_script> </report>
|
分享:XMLHTTP对象封装技术Ajax技术的实现主要依赖于xmlhttprequest,但我们在调用其来进行异步数据的传输时,由于xmlhttp是个短线过程(处理事件完成后就销毁)如果不对该对象进行包装处理的话,就不得不在需要调用的地