VFP中利用OLE功能驱动EXCEL实现复杂报表
2012-11-15张浩宁夏红寺堡扬水管理处
张浩 宁夏红寺堡扬水管理处
VFP中利用OLE功能驱动EXCEL实现复杂报表
张浩 宁夏红寺堡扬水管理处
介绍了在VFP 中利用OLE功能驱动EXCEL来制作复杂报表的原理,以及通过VFP 和EXCEL 完成一个动态报表任务的具体实现过程,并给出了具体的实现方法。
VFP;OLE;Excel;复杂报表
引言
当前比较流行的大型数据库系统包括Oracle,Sybase,Informix和SQL Server等,小型数据库系统则包括Visual FoxPro和Access等。严格地将,Visual FoxPro是一种集宿主语言和数据库为一体的数据库系统,它完全可以作为一种编程语言或数据库单独使用。它作为宿主语言和数据库的结合体,为进行快速数据库应用开发提供了可能。由于各行业的计算机应用层次不一,水平高低不同,而且对小微企业来说部署大型数据库系统既不经济,也不现实。所以小型数据库系统仍有应用空间。这也是低成本信息化中国发展战略的重要组成部分。
Visual FoxPro ,是Microsoft公司从Fox公司的FoxBase数据库软件经过数次改良,并且移植到Windows之后得来的应用程序开发软件,主要用于开发数据管理与运算等方面的软件。VFP是Microsoft公司推出的最新可视化数据库管理系统平台,是功能特别强大的32位数据库管理系统。它提供了功能完备的工具、极其友好的用户界面、简单的数据存取方式、独一无二的跨平台技术,有良好的兼容性、真正的可编译性和较强的安全性,是目前最快捷、最实用的小型数据库管理系统开发软件之一。
Visual FoxPro 6.0/9.0及其中文版,是可运行于Windows 95/XP和Windows NT/2000平台的32位数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。Visual FoxPro使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。Visual FoxPro 6.0/9.0还提供了一个集成化的系统开发环境,它不仅支持过程式编程技术,而且在语言方面作了强大的扩充,支持面向对象可视化编程技术,并拥有功能强大的可视化程序设计工具,同时也支持客户/服务器程序设计和XML与Web服务。目前,Visual FoxPro 6.0/9.0是用户收集信息、查询数据、创建集成数据库系统、进行实用系统开发较为理想的工具软件。利用可视化的设计工具和向导,用户可以快速创建表单、查询和打印报表。
在国内的数据库应用开发中经常会遇到使用复杂报表的情况,所谓复杂报表也就是通常所说的中国式报表。这种报表一般具有相对复杂的表现形式,而且报表的格式和内容应工作的需要经常发生变化。如果仅仅使用VFP语言向导或编写代码来实现复杂报表,将花费大量的人力和时间。针对这点,笔者尝试利用VFP提供的OLE(Object Linking and Embedding)对象链接与嵌入技术,通过VFP调用OLE驱动EXCEL,将报表内容输出到Excel应用程序中,再通过Excel打印,在制作复杂报表方面取得了较好的效果,充分体现了VFP在作为小型数据库前端开发工具的良好扩展性。
1 实现思路
1.1 为减轻编程工作量,可在Excel中,制作报表模板并保存在应用程序的相关目录中待备用;
1.2 在VFP中通过数据操纵语言的相关类集获得报表所需数据,将数据写入临时文件中;
1.3 利用OLE技术,通过VFP调用OLE,启动Excel应用程序;
1.4 在VFP中,读取存有报表所用数据的临时文件;
1.5 根据读取的数据,通过VFP 和OLE 编程动态调用1.1中的报表模板生成相应的报表,显示在Excel中;
1.6 在Excel中预览,打印报表;
1.7 退出Excel,返回到VFP中;
其中,第1.2~1.5步是实现过程中的关键步骤。
2 实现方法
根据以上思路,结合实例,分别在VFP和EXCEL中实现,最后给出我单位调度日报表的实现效果图。
2.1 报表模板制作
首先在Excel中按照报表格式要求制作好一张空白表,为减少编程工作量,可以将报表标题、报表头、行列宽度等按照需要的格式制作好,保存在特定的应用程序目录下待用。由于是Excel的基础知识,本篇此处不再赘述。
2.2 VFP中实现方法
VFP中主要实现步骤为:从数据库中查询检索出数据,存入临时文件。
首先要对所使用的变量进行定义,部分程序代码如下:
[该段代码统计当班调度的机组投运台次、投运机组编号及运行情况、以泵站为单位截至规定统计时间段内的机组累计运行时间等信息]
**统计查询机组年累计运行时数及当前运行机组编号和投用台数
该报表程序代码还有很多模块,限于篇幅不再一一列举。
2.4 实现效果
由以上步骤可以实现如下图所示的效果报表(见图1,部分数据保密涂黑)。
图1
3 结语
笔者介绍了如何在VFP中利用OLE技术,结合VFP和EXCEL的各自优势来制作复杂报表的实现思想和实现过程。在开发信息系统的过程中用该方法可以方便快速的制作复杂报表,这也在报表的数次修改中深有体会,极大提高了程序开发和维护的效率。
10.3969/j.issn.1001-8972.2012.03.032