快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

一、前言
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:reportdemoaspreport.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>
返回类别: 教程
上一教程: 动手写个小组件(组件入门)_ASP
下一教程: 巧用IN要害字实现数据的批量删除

您可以阅读与"使用XML+VBS技术在ASP中实现报表的打印"相关的教程:
· ASP环境下轻松实现报表的打印
· 如何在ASP中实现网络打印功能
· 在ASP程序中打印EXCEL报表的新方式
· ASP中实现网络打印功能
· WEB打印设置解决方案四(在ASP中实现网络打印功能)
    微笑服务 优质保证 索取样品