基于Web动态报表定制系统的分析与设计
2011-04-26冯亚丽东北石油大学计算机与信息科学学院黑龙江大庆16331
冯亚丽,王 铮 (东北石油大学计算机与信息科学学院,黑龙江大庆1 6331 8)
冯正利 (大庆油田有限责任公司第四采油厂,黑龙江大庆1 63511)
目前,使用的开发工具编制出来的报表基本上都是静态不可修改[1]。报表快速适应需求变化的能力差,往往滞后于企业的变化与发展。目前流行的Web报表开发工具在完成报表,尤其是结构样式复杂的报表时存在着一定的困难。一般网页上的报表,如果结构样式需要修改或形成一个新的报表,只能求助于站点维护人员重新编写程序和设计报表,这给具体的使用带来了不便。为解决以上问题,笔者提出一种基于Web的动态报表定制模型,并设计了一个实际可用的基于Web的动态报表定制系统。
1 系统总体架构
根据对动态报表的系统分析,笔者设计报表的功能模块如图1所示。将报表系统的功能分为报表生成模块、导出和打印模块及管理模块。报表生成模块根据用户需求引导用户选择合适自己的模版,选择要产生的报表数据。报表导出和打印模块,向提供用户多种导出格式和打印模式,方便用户选择。报表管理模块实现对报表的编辑和删除等报表信息的管理。
图1 报表功能模块图
2 动态报表生成模块的实现
在该系统中共有6种报表模版,分别为单表、多表、交叉表、向下钻取表、复杂表和中国式报表。下面主要介绍中国式报表的实现。
中国式报表是系统中最复杂的一个表样式,表的结构包含表标题、一级列标题、二级列标题、一级行标题、二级行标题。所谓的动态是指可以任意选择一级列以及该列所包含的任意的二级列,对于行来说也可以任意选择。
1)新建DateSet命名为Shiyou,在数据集中新建一个DataTable命名为 “syou”,表内有10个列,s0~s2类型为string,其他类型为int。
2)创建一个.rpt文件,右击选择 “数据库”→“数据库专家”。在 “数据库专家”窗口 (见图2)中,展开 “项目数据”,展开 “ADO.Net数据集” →“Shiyou”选择 “Shiyou”下的表,将表添加到 “选定的表”中。
3)在报表设计器中,新建参数 “?hang0-?hang3”用来存储一级列名,“?s0-?s9”用来存储二级列名。详细资料下的 “s0-s9”为数据集中DataTabel中的列,用来存储表数据。设置文本字体颜色、样式,同时为文本字段添加左右上下边框,如图3所示。
图2 数据库专家
图3 设计报表模版
3 报表管理模块
报表管理模块的实现相对比较简单,在界面中添加DropDownList控件和GridView控件,同时将这2个空间相关联。这样通过动态选择DropDownList中的表名,在GridView中显示表数据信息。表的管理功能是与生成模块分开的,它的管理功能是对基本表而言的。在生成的表中,右侧有3项分别为:编辑、选择、删除。
当对表进行编辑时,表的字段处于可编辑状态。修改后点击 “更新”则修改后的信息写入到数据库中,并在页面上再次显示出来。若点击 “取消”则表保持修改前的内容。当点击删除时,会弹出对话框询问是否要删除,点击 “确定”则对应行从表中删除,并将表更新信息写入到数据库中,点击 “取消”则对应行不被删除。
4 报表导出及打印模块
报表的导出与打印是报表查看器自带的功能,很方便用户是使用。可导出为Word、Excel、CrystalReports、Acrobat、MS Excel 97-2000、RTF格式。可供用户自由选择。
5 结 语
系统实现了基于WEB动态报表定制功能,有6个从简单到复杂的报表模版供用户选择,用户可根据需求生成报表。此外,系统支持多种输出发布方式,支持多种文件转换,可对生成的报表所需的基本表进行编辑、删除等操作。但系统中仍存在不足,如报表的模版数量有限,不能满足用户特殊需求;报表的格线是用文本的边框来代替,生成的报表不够美观;报表的管理功能模块相对简单。这些都有待进一步完善。
[1]柴欣.基于Web的健康检查报告报表生成系统 [D].大连:大连理工大学,2006.