打印本文 打印本文 关闭窗口 关闭窗口
WEB应用中报表打印的实现
作者:武汉SEO闵涛  文章来源:敏韬网  点击数585  更新时间:2009/4/23 10:54:56  文章录入:mintao  责任编辑:mintao

  随着世界范围内Internet环境的形成,全球正进入一个以网络为中心的计算时代。Web模型是在传统的C/S模型的基础上发展起来的一种新的Browser/Server计算模式。Browser/Server模型简化了C/S中的客户端,客户端只需装上操作系统、网络协议软件及浏览器;而服务器端则集中了所有的应用逻辑,开发、维护等几乎所有工作也都集中在服务器端。这时的客户机被称为瘦客户机,服务器被称为肥服务器。而WEB应用中的客户端的报表打印则没有C/S模型那么容易实现,如何在不使用ActiveX控件的情况下,实现打印字体、字体颜色、表格宽度、打印纸型等的设置。下面就以一个小例子来说明。

  一、 创建数据库

  用 ACCESS创建一个名为user.mdb的数据库,然后建一张名为user的表,表结构如下:


  二、 在asp中的实现

  创建一个名为aspreport.asp的文件,其源代码如下:

<%
'等到文本缓冲完才显示
response.buffer = true
dim accessdb, cn, rs, sql
'数据库名
accessdb="user.mdb"

'连接数据库
cn="DRIVER={Microsoft Access Driver (*.mdb)};"
cn=cn & "DBQ=" & server.mappath(accessdb)

'创建记录集
Set rs = Server.CreateObject("ADODB.Recordset")

'查询语句
sql = "select * from user "

'开始查询
rs.Open sql, cn
%>

<%
'告诉浏览器用word来显示文档内容
Response.ContentType = "application/msword"
'文档设定
response.AddHeader "content-disposition", "inline; filename=report.doc"
%>
<html>
<head>
<title>报表</title>
</head>
<body bgcolor="#FFFFFF">
<center><h1>报表</h1></center>
<table border=1 cellspacing=0 cellpadding=0 bordercolor=#000000 align=center>
<tr>
<td>用户名</td>
<td>真实姓名</td>
<td>性别</td>
</tr>
<%
'移到第一个记录
rs.movefirst
do while not rs.eof
%>
<tr>
<td><%= rs("username") %></td>
<td><%= rs("name") %></td>
<td><%= rs("sex") %></td>
</tr>
<%
'移到下一个记录
rs.movenext
loop %>
<%
'关闭记录集
rs.close
set rs=nothing

response.flush
response.end
%>
</table>
</body>
</html>
  把上面的report.asp文件和user.mdb数据库放在同一目录下,再用iis或pws把他们所在的目录发布,打开浏览器,只要客户端机子上有装word,就会自动调用word以内嵌方式在浏览器上显示,此时完全可以像使用word一样来调整和打印。

打印本文 打印本文 关闭窗口 关闭窗口