没有合适的资源?快使用搜索试试~ 我知道了~
首页Delphi动态报表的设计与实现
资源详情
资源评论
资源推荐

收稿日期 :2003 - 11 - 17。朱松豪 ,讲师 ,主研领域 :系统软件。
Delphi 动态报表的设计与实现
朱松豪 刘巧英
(
江苏工业学院计算机系软件教研室 江苏 常州 213016
)
摘 要 本文介绍在 Delphi 环境中利用 Delphi 自带控件生成动态报表 ,以及通过 Excel 自动化技术增强 Delphi 动态报表处理功能
的方法。该方法灵活、简便、实用性强。
关键词 动态报表 Delphi OLE 自动化
DESIGN AND IMPLEMENT OF DYNAMIC REPORT WITH DELPHI
Zhu Songhao Liu Qiaoying
(
Department of Computer and Engineering , Jiangsu Polytechnic University , Changzhou Jiangsu 213016 , China
)
Abstract A method is introduced that how to design dynamic report with Delphi components and Excel. This method is flexible ,simple and practi2
cal.
Keywords Dynamic report Delphi OLE automation
0 引 言
报表是信息管理系统的重要组成部分 。在系统运行时 ,用
户在很大程度上是以生成系统报表的方便性和灵活性来评价该
系统设计的成功与否 ;同时 ,报表的生成也是 MIS 系统开发中最
麻烦的一项工作。国内的报表格式复杂多样 ,因为用户经常会
对报表的生成提出不同的要求 ,例如报表格式的调整、字段的增
减、不同的统计要求等 ,而这些要求会降低系统的通用性 ,同时
也是让程序员头疼的事。
近年来 ,介绍在 PowerBuilder 环境中开发动态报表的文章比
较多。本文介绍在 Delphi 环境中如何动态选择数据 ,动态生成
报表。这种动态生成的报表更灵活 ,也更容易实现报表格式的
统一。
1 解决方法
一般使用以下两种方法生成动态报表 :
(
1
)
在程序运行阶段动态生成并执行 SQL 语句。利用 Cre2
ate 方法动态创建控件 ;然后根据所选数据字段的长度和数目 ,
在程序中通过修改控件大小和位置的属性来调整控件的大小和
外观。这种操作方法简单 ,但用户只能对报表进行小的改动。
(
2
)
利用 Delphi 强大的 OLE 功能 ,由应用程序提取数据传
给 Excel 进行格式加工处理。利用 Excel 可以制作出几乎任意格
式的报表 ,这样既减轻了开发人员的工作量 ,又增加了软件的通
用性 ;但这种方法同时带来了用户处理数据工作量的增加。
综合考虑 ,笔者在系统实施中采用两者结合的方法 。先用
Delphi 自带的控件生成动态报表供用户预览 ,若用户认为报表
只需作小的改动 ,如字段宽度、高度 、顺序、字体、对齐方式等 ,则
采用方法一继续修改 ;若用户对生成的报表认为需作大的改动 ,
如修改表头、页尾、对数据作进一步处理等 ,则采用方法二 ,将数
据导入到 Excel 中由用户根据要求进行相应处理。
在实际应用中 ,用户定义的动态报表格式往往不只使用一
次 ,因此可以将报表格式信息保存为模板以备下次使用。
2 主要工作流程
(
1
)
如果已有报表模板满足用户要求 ,则可以直接打印输
出 ;否则执行下面的步骤。
(
2
)
用户选择报表字段及其排列顺序、查询条件 ;
(
3
)
根据用户选择的结果 ,生成并执行 SQL 查询语句 ,产生
动态报表数据集 TempSet ;
(
4
)
以 TempSet 为数据源 ,生成一个显示网格 DBGrid ;
(
5
)
用户选择报表的打印方向
(
横向或纵向
)
,调节网格 DB2
Grid 的行和列宽度、高度、字体、字段对齐方式等决定报表数据
打印格式 ;
(
6
)
依照 DBGrid 的字段名称、宽度、高度、字体、字段对齐方
式等信息生成报表预览 ;
(
7
)
若再需小的修改则重复步骤 4 - 6 ;若需对报表作大的
改动 ,则将 TempSet 导入 Excel 中 ,由用户根据需要处理 ;
(
8
)
用户对报表格式满意后 ,将字段信息和报表格式保存
起来并将它作为模板 ,最后打印输出表。
3 具体实现
下面主要讨论现有报表不能满足用户需要时的情况 。
311 动态报表数据集 TempSet 的产生
在图 1 中 ,Listbox1 记录现有的报表模板名和数据库中所有
的表名 ,Listbox2 记录被选中待输出的表名 ,即对应 SQL 语句的
Form 部分 ,被 Listbox2 选中表名所对应的字段名记录在 Listbox3
中 ,Listbox4 记录选中待输出的字段名 ,即对应的 SQL 语句的 Se2
lect 部分 ; Edit1 记录选择条件 ,即对应的 SQL 语句的 Where 部
第 22 卷第 2 期 计算机应用与软件 Vol122 ,No12
2005 年 2 月 Computer Applications and Software Feb. 2005
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1