一种通用报表的设计和实现-设计应用_第1页
一种通用报表的设计和实现-设计应用_第2页
一种通用报表的设计和实现-设计应用_第3页
一种通用报表的设计和实现-设计应用_第4页
一种通用报表的设计和实现-设计应用_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑一种通用报表的设计和实现-设计应用摘要:提出一种通用报表的设计和实现方法,在信息管理系统设计中,查询数据通常需要以报表的形式输出,设计了一个非常实用的函数,采用OLE自动化技术,通过程序代码实现对Excel文档的各种编辑功能,并应用于一类通用报表的设计和输出。设计的函数接口简单、易于调用,可以大大减少信息系统开发中一类通用报表的设计工作量,可重用性高。该方法已经应用于多个实际应用系统的开发和设计。在此详尽分析和阐述了通用报表的设计和实现,并给出了该函数的主要代码。

0引言

软件设计和开发过程中,一般都要求数据的输出,并且以报表的形式进行展示。一般的软件设计开发工具都提供设计报表的工具和组件,常用的开发工具有微软的VS系列,Borland系列等设计工具都提供报表设计功能,但是都需要软件开发者采用定制的形式逐个进行设计,而一般的MIS系统都有为数不少的报表设计工作,并且报表形式大多是通用的数据报表,部分为图表结合的报表、三维报表以及其他形式的报表。在工程实践过程中,逐个设计报表需要很大的工作,一旦需要修改,则逐个修改的工作量很大,存在重复设计和维护问题。

文献提出的报表设计方法,基本侧重在设计技术和技巧,或者是定义报表组件方面,其特点是功能多,使用较为复杂,部分也直接输出为Excel报表格式。本文主要针对的情况是在信息系统中,各种查询的数据一般都是展示在界面窗口中,显示的格式已经带有二维报表的特性,带有标题、列标题和数据等。本文在软件工程开发实践中,利用OLE自动化技术,使用MicrosoftVBA接口,直接把显示栅格中的数据,直接以Excel报表的格式输出。这种报表具有通用性强,使用非常简单。同时可以利用Excel的功能进行报表格式的控制。本文以BorlandDephi6.0(或以上版本)进行阐述实现的原理,并给出实现的步骤和代码。

1通用报表分析

1.1报表的数据

报表的数据一般从单个或多个数据库表中获取,而一般通过SQL查询语句得到数据。通常在MIS系统设计上,往往都是先显示在窗口界面,然后输出打印。所以无论什么形式的数据总是先显示在窗口界面的数据栅格中,如Delphi中通常用TDBGid或TStringGrid中。因此可以直接把显示在Grid中的数据直接为报表数据输出即可。而TDBGrid通过TDatasource获得现实的数据源,TDataSource的通过TDateset取得数据,TDataset有3种数据形式:TTable,TQuery和TStore2Procedure。而TTable完全使用简单的TQuery可以实现并代替。TQuery通过SQL语句提取数据库中的数据,SQL语句极为灵活,可以完成很多包括统计、排序、多表操作等各种功能,而Select类的SQL语句返回的数据均为二维数据。

1.2报表的显示格式

一般通用的二维报表包括标题、副标题、列标题、数据行、表尾等几个部分,当然也有很多复杂的报表,但是复杂的报表一般都需要设计和定制。而本文需要解决的正式这种简单的而又通用的二维报表,可以通过简单的函数调用即可完成。

2报表设计的实现

本文以Delphi开发环境下,BorlandDelphi中调用Excel的方式有4种方式,见文献的相关章节。这里使用以Variant变量的方式来调用Excel。具体的方法可以参见GridToExcel函数中的代码。

函数体中控制输入和设置Excel的各种属性等操作,需要操作Excel文件的接口文件ExcelTLB.pas。该文件提供了编程操作Excel的Delphi接口类库,需要MicrosoftOffice环境下,通过Delphi提供的导入类库来实现,具体操作步骤为:打开Delphi,点击Project菜单下的/ImportTypeLibrary,0,在弹出对话框中,点击/Add,0按钮,从office安装的文件夹找到xl5chs32.olb文件,然后点击/CreateUnit0即生成Ex2celTLB.pas文件,把生成的ExcelTLB.pas文件另存到项目的文件夹以备使用。本文实现的函数(Grid2ToExcel)所在单元必须在USES部分加入ExcelTLB单元。

3报表输出函数实现

这里给出了表格输出函数的设计步骤和代码。函数名称为GridToExcel,参数有grid类型为TDBGrid,xlfile:string为Excel输出的文件名,报表标题T1:string。函数返回值为输入的报表数据行数。函数使用的局部变量如下:

函数体分为以下几个部分。

(1)创建Excel自动化对象,代码如下:

//判断Grid是否有数据,无则直接返回

(2)填充标题到Excel对象,代码如下:

(3)设置Excel报表显示的标题行格式:

(4)设置表格线:

(5)把Grid中的数据填到Excel中:

(6)调整Excel的列宽度自适应宽度:

(7)保存报表为指定的Excel文件名

上述的函数完全可以加入到设计系统的Delphi项目中,并作为通用的函数,加入到通用函数库单元中,需要在函数所在单元的USES部分加入上述的ExcelTLB单元。如系统地把图书系统的查询结果输出到报表,只需要在查询界面中增加一个按钮,按钮点击事件代码如下。就可以生成生成一个Excel二维报表。

5结语

报表制作是MIS系统开发过程的一个重要的部分,许多通用的报表制作工具都提供了很大的功能支持,但是对于设计者而言都需要逐个设计,且工作繁琐,维护工作量大。本文详细阐述了通过一个简单的函数实现简单报表功能,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论