当前位置: 首页 > 图文教程 > XML家族 > XML > 用XML+VBS在ASP中实现报表的打印

XML
XML简易教程之四
XML与HTML的结合(上)
XML与HTML的结合(下)
XML入门的常见问题(一)
XML入门的常见问题(二)
XMLHTTP资料
什么是XML
什么是 XML Web Service
XML正在接管Web服务 成为SOA的基础
怎么样在网页上读取远程xml的数据
XML教程—编写结构完整的XML文档
读写xml文件的2个小函数
XML文档的基本操作
初学者如何开发出一个高质量的J2EE系统
优化 JavaScript 代码
自动更新程序的设计框架
使Firefox对XML的处理兼容IE的节点处理方法
WML学习之四 锚和任务
WML学习之五 显示表单
WML学习之六 事件

用XML+VBS在ASP中实现报表的打印


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 52 ::
收藏到网摘: n/a

一、前言

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>