您的位置:首页精文荟萃软件资讯 → WEB应用中报表打印的实现

WEB应用中报表打印的实现

时间:2004/10/7 18:18:00来源:本站整理作者:蓝点我要评论(0)

随着世界范围内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系统。

相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 360随身Wifi 4G版什么怎样提高origin下载速百度收购PPS已敲定!3

最新文章 伊森卡特的消失通关流千牛怎么设置自动回复 增加新功能,S版Moto G喜获Android 4.4.4更鸡肋?谷歌Play Music发布更新版本千牛怎么设置自动回复​千牛云盘怎么用

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方office2013安装教程图解:手把手教你安装与同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载VeryCD镜像网站逐个数,电驴资料库全集利用PHP程序设定防止MySQL注入或HTML表单滥web服务器和应用服务器的区别安卓android 系统支持什么视频格式