APP下载

基于ASP.NET的复杂表格打印控制及实现①

2011-12-26鞠宏军杜丽娟耿子林

华北科技学院学报 2011年4期
关键词:清华大学出版社重修服务器端

鞠宏军,杜丽娟,耿子林

(1.华北科技学院计算机学院,北京东燕郊 101601;2.华北科技学院电信学院,北京东燕郊 101601)

基于ASP.NET的复杂表格打印控制及实现①

鞠宏军1②,杜丽娟2,耿子林1

(1.华北科技学院计算机学院,北京东燕郊 101601;2.华北科技学院电信学院,北京东燕郊 101601)

本文结合实际应用,以班级重修成绩单打印为例,详细阐述了基于ASP.NET的复杂表格打印控制及实现。该打印程序输出的成绩单可以随意设置字体字号、表格合并、学生姓名及成绩的动态输出,有效地提高了教务管理的工作效率,具有良好的实用性、先进性和推广价值。该打印控制程序,既可以直接应用于其他基于asp.net技术的管理系统中,也可为Jsp、php等web打印控制实现提供良好的设计思路。

asp.net;打印控制;Excel;管理系统

0 引言

Web打印是很多B/S结构管理信息系统必不可少的功能,也是开发人员所面临的一个共同难题,因为Web应用程序所有数据处理是由服务器脚本在服务器端执行,再将执行结果返回给浏览器端显示出来的,服务器端的代码是无法对客户端的打印设备进行控制的,而浏览器端执行的一些脚本程序对客户端的设备控制能力也很有限,因此很难像桌面应用程序或C/S模式下一样实现精确的打印控制。

1 Web打印主要技术分析

1.1 使用WebBrowser实现Web打印

WebBrowser是IE浏览器内置的打印控件,可以用于调用或直接手动操作浏览器文件菜单中的打印、打印预览、页面设置功能,将浏览内容输出到打印机。此种方法比较简单,但由于网页中表格和打印输出表格的线宽、线型、字体控制有很大差别,打印分页控制及输出的效果较差。即使采用CSS技术,对网页中的表格字体进行打印格式处理,但输出还是由于浏览器版本不同、客户端机器不同,很难达美观的打印效果,并且很难实现复杂表格的控制。

1.2 利用水晶报表等第三方控件实现Web打印

采用第三方控件是开发Web应用系统比较好的选择。由于第三方控件只需安装、控制打印接口,可以让编程人员从繁杂的打印编程中解放出来,在较短的时间内做出优秀的报表打印系统。但此类控件一般都是收费的,如加拿大Crystal Decisions公司出品的水晶报表系统,根据用户数和功能不同价格从几千到几十万不等,对于一些单位内部使用具有很大的限制。

1.3 使用.NET组件技术

使用.NET组件方法,通过XML自定义出所有需要的打印格式,从客户端直接控制。使用.NET Language Runtime控制的打印,不需要客户端注册、打印控制功能强大并且与IE兼容性高。但此种打印方式不适合于数量大的应用,如果文件较大时XML的解析速度较慢,并且客户端需要安装.NET Framework组件,页面首次加载会有明显的延时。

1.4 导出到Excel中打印

采用这种编程方法,是在服务器端将从数据库中读取的数据导出到服务器端的Excel数据表中,由于数据读取及导出格式控制在服务器端,所以可以充分发挥服务器脚本的控制功能,像Delphi操作Excel一样控制打印格式。导出Excel文件后,采用链接的方式传输到客户端。此种方法,将Web打印转化为Windows单机版的打印,适应性强、易于控制,导出的Excel表可以随意保存或拷贝到其他机器上输出。本文主要介绍此种方法。

2 班级重修成绩单打印需求

重修是各班不及格同学的二次学习考试,因此重修成绩单和期末成绩单不同,如,某教师的某重修任务100人,可能分布在40个自然班级中,若所有自然班级一份4页成绩单均用手工填写,工作量极大、且繁琐容易出错,急需一种简单的成绩单处理方式。

另一方面规范的重修成绩单要有,表头:如学年学期、专业班级、课程等信息;表格:学生姓名及成绩;表尾:成绩统计信息;表格各部分字体、表格宽度也不同,并且各部分数据随各班是动态查询或者计算来的。具体成绩单如下图1。

图1 班级重修成绩单

3 班级重修成绩单打印控制及实现

根据以上表格需求,打印程序首先从数据表中查询所指定教师的班级重修成绩,然后自然班级分别导出到Excel的各工作表中,在Excel表的生成过程中要控制表格各部分的字体字号、合并、姓名成绩的动态计算及输出,具体实现关键代码如下:

4 结束语

本文结合《基于校园网的重修管理系统》、《基于校园网的期末考试考务管理系统》的实际打印应用需求,详细分析了B/S模式下打印报表的几种解决方案,最后选择班级重修成绩单导出控制为例,详细介绍了采用服务器端脚本将查询结果导出到Excel工作表中,并对Excel表进行字体、字号、表格合并、定位、班级分表处理、姓名及成绩的动态输出控制,再将导出在服务器端的Excel电子成绩单传输到客户端。该方法有效结合了服务器脚本控制Excel表格式及导出功能,操作简单、格式控制效果好,是Web打印处理比较简洁实用的方法。开发美观实用的班级重修成绩单打印控制程序,可以避免教师手写成绩单的重复劳动,极大地提高了我校重修教学管理、期末考试考务管理的工作效率,具有一定的实用性、先进性及推广价值。该方案较好地实现B/S模式的表格控制及打印,既可以直接应用于其他基于asp.net技术的管理系统中,也可为Jsp、php等web打印控制实现提供良好的设计思路。

[1]郑齐心.ASP.NET项目开发案例全程实录(第 2版)[M].北京:清华大学出版社,2010

[2]洪石丹.ASP.NET范例开发大全[M].北京:清华大学出版社,2010

[3]庞娅娟,房大伟.ASP.NET从入门到精通(第2版)[M].北京:清华大学出版社,2010

[4]炎士涛.ASP.NET项目开发案例精粹[M].北京:清华大学出版社,2010

[5]张领.ASP.NET项目开发全程实录[M].北京:清华大学出版社,2008

[6]余金山.ASP.NET 2.0+SQL Server 2005企业项目开发与实战[M].电子工业出版社,2008

[7]李玉林.ASP.NET 2.0网络编程从入门到精通[M].清华大学出版社[M],2006

[8]马苏拉.高校考试管理信息系统的设计与实现[J].计算机系统应用,2009(10):37-42

[9]马珊丹.学分制下成人高教课程重修信息管理子系统的设计[J].湖北大学成人教育学院学报,2010(12):32-34

[10]杜丽娟.基于校园网的实验课表排课系统的设计与实现[J].福建电脑,2009(11):20-22

[11]鞠宏军,杜丽娟,等.基于Web的教学工作量核算系统的设计与实现[J].华北科技学院学报,2008(1):115-118

[12]鞠宏军,杜丽娟,等.基于校园网的重修管理系统的设计与实现[J].电脑知识与技,2011,7(19):4586-4588

ASP.NET-based printing control and implementation of complex forms

JU Hongjun1,DU Lijuan2,GENG ZiLin1

(1.Department of Computer Science,North China Institute of Science and Technology,Yanjiao Beijing-East 101601,
2.Department of Telecom,North China Institute of Science and Technology,Yanjiao Beijing-East 101601)

Combined with practical application of printing class rehabilitation transcripts,ASP.NET-based printing control and implementation of complex forms are introduced in detail.The transcripts outputed by printing program is free to set font,size,table merging,student names and dynamic output.The printing program improves effciency of educatonal administration,together with good usability,advancement and promotional value.It can be directly applied to other asp.net-based management system,but also offer design ideas for Jsp,php related printing control.

asp.net;printing control;Excel;management system

TP311.52

A

1672-7169(2011)04-0059-04

2011-09-21

鞠宏军(1973-),男,吉林辽源人,华北科技学院计算机系教师副教授,研究方向:计算机应用。

猜你喜欢

清华大学出版社重修服务器端
学分制下高校重修工作持续改进路径研究
Linux环境下基于Socket的数据传输软件设计
清华大学出版社期刊中心
Desperate Love towards the Dark Lady in Shakespeare’s Sonnets
浅析异步通信层的架构在ASP.NET 程序中的应用
敦煌写本《曹议金重修开元寺功德记》考释
莫高窟第61窟甬道北壁西夏重修供养人像蠡探
《秘书工作手记》
基于Qt的安全即时通讯软件服务器端设计
关于独立院校重修现象的讨论