WEB应用中报表打印的实现

来源:百度文库 编辑:神马文学网 时间:2024/04/28 22:13:16
WEB应用中报表打印的实现
作者:网上整理 | 所属类别:网络编程 | 类型:转载文章 | 页码: 第1页/共1页
WEB应用中报表打印的实现
随着世界范围内Internet环境的形成,全球正进入一个以网络为中心的计算时代。Web模型是在传统的C/S模型的基础上发展起来的一种新的Browser/Server计算模式。Browser/Server模型简化了C/S中的客户端,客户端只需装上操作系统、网络协议软件及浏览器;而服务器端则集中了所有的应用逻辑,开发、维护等几乎所有工作也都集中在服务器端。这时的客户机被称为瘦客户机,服务器被称为肥服务器。而WEB应用中的客户端的报表打印则没有C/S模型那么容易实现,如何在不使用ActiveX控件的情况下,实现打印字体、字体颜色、表格宽度、打印纸型等的设置。下面就以一个小例子来说明。
一、 创建数据库
用 ACCESS创建一个名为user.mdb的数据库,然后建一张名为user的表,表结构如下:
字段名称 数据类型
username 文本
name 文本
sex 文本
二、 在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一样来调整和打印。
三、 在jsp中的实现
创建一个名为jspreport.jsp的文件,其源代码如下:
<%@ page contentType="application/msword;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<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>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:user";
//连接user数据库
Connection con=DriverManager.getConnection (url, "", "");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from user ");
//查询user表
while(rs.next()){
%>
<tr>
<td><%= rs.getString("username") %></td>
<td><%= rs.getString("name") %></td>
<td><%= rs.getString("sex") %></td>
</tr>
<%
}
%>
<%
rs.close();
stmt.close();
con.close();
%>
</table>
jsp的服务器以TOMCAT为例,把上面的jspreport.jsp和user.mdb放在TOMCAT的root目录下。在控制面板的ODBC中建立相应的DSN,类型mdb数据库,数据源名为user。启动TOMCAT,输入相应的url,就可以看到和以上面asp一样的效果。
以上只是一个简单的例子,在作报表时,可以先用word设计好,然后另存为网页,再利用此网页改编成相应的脚本,就可以达到较好的效果。此方法有一个限制就是客户端要有word软件,但是会比使用ActiveX控件安全和方便,而且服务器端使用的平台与WebServer是可以比较灵活的,特别适用于基于web的OA系统。
·ASP环境下轻松实现报表的打印
·关于在页面中解决打印的几个问题
·使用XML+VBS技术在ASP中实现报表的打印
·关于客户端用ASP参生报表(高级篇)
·关于客户端用ASP参生报表
·关于打印页面的一些经验
·用asp Print this Page
·浅谈asp编程中的测试打印、有效性检查及错误处理
·实现树型结构(二)
·实现树型结构(一)
·动感首页更新实现之九 ------ 简介补充篇
·动感首页更新实现之八 ------ 首页模板篇
·动感首页更新实现之七 ------ 密码验证篇
·动感首页更新实现之六 ------ 首页删除篇
·动感首页更新实现之五 ------ 首页管理篇
·动感首页更新实现之四 ------ 首页显示篇
·动感首页更新实现之三 ------ 数据库链接篇
·动感首页更新实现之二 ------ 首页保存篇
·动感首页更新实现之一 ------ 首页添加篇
·完整的访问统计程序(三 应用篇)
·完整的访问统计程序(二 程序篇)
·完整的站点访问统计系统(一:数据库篇)
·支持中文的无组件文件上传:upload.inc
·支持中文的无组件文件上传:示例
·对数据库中的记录用上一条下一条显示(三)
·对数据库中的记录用上一条下一条显示(二)
·对数据库中的记录用上一条下一条显示(一)
·利用ASP脚本制作异步装载的树形结构(二)
·利用ASP脚本制作异步装载的树形结构(一)
·不能ASP图像组件来生成图像的ASP计数器程序(三)