APP下载

基于B/S结构远程web报表打印技术的研究与实现

2009-07-05

现代经济信息 2009年23期
关键词:规整控件报表

周 屹

摘要:本系统使用XML作为报表的描述语言,利用.NET技术编写打印控件。在打印报表时,把打印控件和报表传递给客户端(浏览器)。系统根据用户的要求,结合不同报表模板自动、动态的生成相应报表文件并完成打印。系统提供了强大的数据筛选、分析功能,为用户决策提供了进一步支持。

关键词:WEB报表XML.NET控件打印

随着信息技术的普及与发展,在管理信息系统中,报表打印,作为不可缺少的一部分已被我们接受。可以这样说,我们的应用系统绝大多数都涉及到报表的打印问题。

一、B/s结构及报表打印的主要困难

因特网的出现给人们信息交流带来了一场新的革命,通过它,人与人之间的时空距离大大缩短,工作效率大大提高。由于信息共享与效率提高的需要,用于企业内部的Clien/Server结构的应用程序已逐渐不能满足人们的需要。越来越多的Browser/Server结构的应用程序被提了出来。虽然B/S结构的诞生带来了不少好处,但也有许多不足。其中一个重要的问题是,报表打印明显不如以前灵活、规范。许多普通的功能,如纸张的换页排版、复杂报表的精确定位等,都无法做到像C/S结构下那样方便。要打印一张现在浏览器上看到的报表,其打印方式将仅仅是按照普通的页面来处理,每一页的页眉、页脚、标题及表头都无法根据用户的要求来实现,特别是对于一些复杂报表和需要套打的报表更是无能为力。

目前解决WEB报表打印的途径:水晶报表、使用现成的打印控件、AetiveX控件。

二、B/S结构下远程web报表打印系统的设计

(一)系统总体结构。整个系统分成了三大部分。第一部分,为报表设计用户根据自己的需要设计出相应的报表模板存入数据库中。第二部分,为报表生成部分。用户选择相应模板,服务器解析相应模板并且结合用户输入的一些参数,动态地生成了我们所需要的报表文件。第三部分,即报表的打印过程,就是分别把打印控件和第二部分中生成的报表文件传送到客户端,在本地进行解析打印,直接控制打印机进行输出的过程。

(二)系统工作流程。对整个系统的工作流程,也分三大部分进行阐述。其中报表生成器部分仅对规整报表适用。

1、报表设计器部分。在本系统中,只是对规整报表设计器进行了实现,具体步骤和方法如下:

首先,用户在浏览器中输入数据库名称,远程连接数据库服务器。若连接成功,则用该库中的所有表名动态地填充下拉列表框,用户从此下拉列表中选择所需的数据表。第二步,输入页面设置信息。第三步,输入报表的列数。第四步,输入报表名称和附加条目。第五步,点击完成按钮,生成报表模板存入数据库中。

2、报表文件生成部分。(1)把模板数据库中现有的所有报表模板的名称动态地填入下拉列表框中供用户选择。(2)客户端选择所需打印的报表模板。(3)根据提取出的seleet语句,连接数据库服务器,生成我们所需要的数据集。(4)根据第二步中提取出的查询字段接口,动态生成报表的查询页面。(5)动态地生成报表文件,供打印使用。

3、报表的打印部分。无论是报表设计器还是报表生成器,它们最终的结果都是为了生成符合我们规定的XML报表文件,把它传输到客户端进行打印。而完成这些打印工作的则是通过我们的编写的打印控件进行的。通过打印控件对报表文件的解析和对打印机的控制,来实现我们所需要的诸如分页、精确定位、格式控制等一系列功能。

(三)系统解决的主要问题。本系统的出发点主要是为了解决B/S结构下报表打印的一些难点问题;为一般的小型系统不花费大量精力和财力的前提下,很好地解决B/S结构下远程报表打印的一些常见问题,主要包括以下几种:解决规整报表的分页问题、页码的打印。附加条目和复杂报表的精确定位、简单套打的实现、对简单的图形报表的打印输出做了一些初步的研究。

三、报表结构的设计

(一)几种常见的报表类型

1、规整报表:规整报表又称长报表。它通常要分几页显示,也是最常见的报表,其最大的特点是在固定的表头下重复着若干行类型相同的记录。

2、复杂报表:之所以称之为复杂报表,是因为它的行列的分布不像规整报表那样整齐、有规律。

3、套打报表:所谓套打,就是指在打印纸的规定位置上输入相应的信息。与其它报表打印不同的是,它并不要完整的打印出报表的标题、边框等信息,我们需要的是在规定的地方打印出相应的数据就可以了。

(二)报表设计器的实现

1、设计思路、要生成一个报表模板,首先确定的是这个报表所需的数据源;接下来确定页面设置中的一系列信息;确定报表的列数;设置报表名称、附加条目信息、各列的标题、各列的宽度;为每列选择对应的字段:选择用作筛选数据用的接口字段与需要进行小计的字段。我们把所有的这些信息提取出来,按照相应的规则组成XML模板。

2、步骤与方法。1) 先需要确定报表设计的数据源。2) 列出数据库中的所有表名,动态地填充到下拉列表框中,供用户选择。3) 输入页面设置信息和报表的列数。4) 弹出报表设计界面。5) 报表模板的生成。

四、结论与展望

本系统主要完成了远程报表打印时,浏览器打印功能无法完成的一些功能。通过自己编写的打印控件在客户端对XML格式的报表文件进行格式解析,直接控制本地打印机进行输出。对于打印控件和报表文件,是利用H,ITP协议通过默认的80端口进行传输,从一定程度上提高了系统的安全性。

虽然本系统只给出了简单的规整报表设计器,但是其它类型的报表模板的结构设计是作者对现有的比较流行的设计器生成的模板文件进行分析后总结出来的,以后完全可以在B/S结构下完成其它类型报表的设计器。在结构的组织上,本系统充分考虑到以后的扩展,如果我们要增加其它类型报表的打印,只要定义出相应的格式控制标签和增加相应的解析程序,对原来的结构无需做大的改动。

虽然打印控件是用.NET技术编写的,但是它的运行对服务器端没有任何要求。如果服务器端能够用其它的方式提供相应格式的XML报表文件,利用此打印控件将不会对原来的服务器系统造成任何负担。而对远程客户端,则不需要在打印时进行下载注册或是安装特定的打印系统。

猜你喜欢

规整控件报表
300kt/a硫酸系统规整填料使用情况简介
LabWindows/CVI中Excel报表技术研究
从三大报表读懂养猪人的成绩单
电梯的建筑化艺术探索
基于发音机制的贪婪自适应语音时长规整算法
ASP.NET服务器端验证控件的使用
月度报表
月度报表
Spreadsheet控件在Delphi数据库系统中的编程与应用