基于DDE和OLE的Visual Foxpro功能扩展_第1页
基于DDE和OLE的Visual Foxpro功能扩展_第2页
基于DDE和OLE的Visual Foxpro功能扩展_第3页
基于DDE和OLE的Visual Foxpro功能扩展_第4页
基于DDE和OLE的Visual Foxpro功能扩展_第5页
全文预览已结束

下载本文档

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

文档简介

1、基于DDE和OLE的Visual Foxpro功能扩展孙修东(上海农林职业技术学院,上海松江:201600)摘 要:DDE 和OLE是Microsoft Windows平台支持的两个内部通讯机制,其应用大大地扩展了Visual Foxpro的性能。本文通过对Visual Foxpro 中DDE 和OLE的讨论,提出了一种扩展Visual Foxpro功能的方法。关键词:Visual Foxpro;DDE;OLE;功能扩展1引言Microsoft Windows平台支持在应用程序之间内部交换数据的机制:动态对象数据交换DDE(Dynamic Data Exchang)和对象链接和嵌入OLE(Ob

2、ject Linking and Embedding)。这两种机制使得用户通过借用其它Windows应用程序的力量,可以扩大Visual Foxpro应用程序的能力,例如对文本、声音、图画和图表数据的处理。而且,随着Windows环境下具有DDE和OLE性能的应用软件的不断完善和丰富,用户几乎可以无限地增强Visual Foxpro的性能。2 Visual Foxpro中的DDE 和OLE2. Visual Foxpro中的DDEVisual Foxpro 的动态数据交换(DDE)提供了Visual Foxpro 与Windows的其它应用之间信息传送及信息共享的能力,DDE的一个应用甚至可以

3、通过向其它应用发送命令及键盘操作的方法来管理其它应用。DDE服务的双方是Windows的两个应用,在DDE通讯开始时,指定两个应用的一方为DDE服务程序(service),另一方作为DDE的客户程序(client),即建立一种client/service结构,客户程序作为主动方,向服务程序发出请求;服务程序响应客户程序的请求,将完成工作的情况及工作的结果送回给客户程序。Visual Foxpro 可以作为DDE的服务程序也可以作为DDE的客户程序。通讯双方数据交换内容的逻辑集合称为通讯主题(topic),基于文本文件的DDE双方将文本文件名作为数据交换的主题。例如Microsoft Excel

4、将扩展名为 .XLC或 .XLS的文件作为主题,Microsoft Word以扩展名为.DOC的文件作为主题。此外,大多数支持DDE的应用承认“System”为共用主题,以在相互之间交换通用信息及发送命令。DDE数据交换过程中,服务程序一次向需求数据的客户程序传送数据的单位称为条款(itme),每个主题分为可参照的若干条款。不同应用的条款是各不相同的,例如Excel的交换条款是单元,即Excel电子表中的行列标志;Visual Foxpro 的交换条款可以是数据访问的记录号、文件名或SQL查询。动态数据交换有两种方式,一种称为同步交换方式,即客户程序发出数据交换请求以后,等待服务程序完成该请求

5、,在得到服务程序的信息后才继续执行;另一种方式称为异步方式,客户程序发出数据请求以后不等待服务程序的应答,客户程序和服务程序都以各自独立的且不可预知的速度向前推进,在服务程序完成数据请求后送回一个信号,客户程序通过应答该信号进行相应处理。DDE的各种操作均通过函数进行。下面讨论Visual Foxpro 作为客户程序方进行程序设计中常用的一些命令和函数:1)RUN /N数值表达式用于启动应用程序。2)DDEInitiate(,)用于建立与DDE服务程序的通道。标准的主题名为“System”,返回-1表示通道建立失败,返回非负整数作为通道号用于以后通信。3)DDETerminate()用于关闭D

6、DE通道。4)DDERequest(, , ,)用于向服务程序申请数据条款。指定申请数据的格式,缺省格式为CF_TEXT,字段以制表符为界,记录以回车为界。缺省自定义函数UDF,则等待时间由DDESetOption()决定,否则采用异步交换方式。5)DDEExecute(, , ,)用于申请服务程序执行一个命令。它可以使用户非交互式地引发服务程序的远程执行,间接地实现应用程序之间的相互编程。6)DDEPoke(, , ,)用于向服务程序发送数据条款,与DDERequest()互逆。2.2 Visual Foxpro中的OLEOLE使用户可以将一个应用程序中建立的信息插入到另外的应用程序中。这些

7、信息可以是图形、文本、声音、电子表格等。这样的信息也称为对象,对象可以是由Windows应用程序建立的任何信息。当从一个应用程序传输对象到另一个应用程序时,此对象所来自的文档叫源文档,对象所进入的文档叫目的文档。从一个应用程序源文档将一个对象传输到另一个应用程序目的文档的过程称作对象嵌入。此目的文档是直接的源文档的独立拷贝。链接一个对象的过程包括从源文档传输一个引用或链接到目的文档。即目的地只包含一个对源文档的链接。当修改一个包含链接的目的文档时,建立此对象的应用程序打开并修改源文档。运用链接对象,所共享的信息总是当前的。链接和嵌入之间的差异是信息直接存储在何处。链接的对象存储在源文档中,而所

8、嵌入的对象存储在目的文档中。若想在多个应用程序中共享信息,并且想各个应用程序总是访问当前信息,则用链接。若仅有一个应用程序使用此对象,则运用对象嵌入。一个对象并不是必须在剪贴板上才能嵌入或链接。如果通用字段编辑窗口是打开的,则可以选择Edit(编辑)菜单Insert Object(插入对象)选项实现。也可使用Visual Foxpro 的表设计器(Table Designer)去加一个通用字段,然后加OLE对象到各记录。与某些数据链接后,可能需要使用一个不同的数据源,或者需要嵌入而不是链接。要更改数据源,必须更改链接。要嵌入,必须断开链接。更改与数据的链接和断开与数据的链接,都是从Visual

9、 Foxpro 的编辑菜单选择“链接”命令,此时“链接”对话框出现。前者选择“更改源”,在“更改源”对话框中指定新数据源便可;后者在链接对话框中选择“断开链接”。在Visual Foxpro程序设计中,常用的OLE操作命令:1) APPEND GENERAL FROM LINK CLASS用于添加OLE对象到表,LINK子句表明对象是链接式的,缺省则为嵌入式的。2) MODIFY GENERAL 用于显示在双击BROWSE的通用字段中出现的编辑窗口。3) SAY 用于输出显示OLE对象。3 应用实例与OLE相比,DDE是更为有效的共享数据手段。DDE不仅可以实现数据的自动共享,还可以由一个应用

10、程序向另外一个应用程序发出命令,实施远程控制。下面给出一个利用DDE技术实现数据交换的实例。DEFI WIND W FROM 4,10 TO 18,69 TITL FOXPRO 与 EXCEL 进行动态数据交换(DDE) SYSTSHAD COLO B/W,/GRACTI WIND WUSE PERSONRUN /N7 C: EXCELEXCEL.EXEUSERMYFILE.XLSmCHANNEL=DDEInitiate(EXCEL,SYSTEM)=DDEExecute(mCHANNEL,APP.ACTIVATE(“FOXPRO”,1)=DDETerminate(mCHANNEL)mCHANN

11、EL=DDEInitiate(EXCEL,MYFILE.XLS)cA=DDERequest(mCHANNEL,R10C4)cB=DDERequest(mCHANNEL,R10C6)nC=VAL(cA)+VAL(cB)IF .NOT.EMPT(nC) REPL GZ WITH nCENDI=DDETerminate(mCHANNEL)mCHANNEL=DDEInitiate(EXCEL,SYSTEM)=DDEExecute(mCHANNEL,EROR(FALSE)=DDEExecute(mCHANNEL,QUIT()=DDETerminate(mCHANNEL)USE参考文献1余文芳Visual

12、 FoxPro数据库应用M北京:人民邮电出版社,2006.2杨绍增中文Visaul FoxPro应用系统开发教程M北京:清华大学出版社,2006.3张国锋Microsoft Windows OLE&DDE应用程序设计技术M北京:学苑出版社,2005.Function Expansion of Visual Foxpro Based on DDE And OLESun Xiudong(Shanghai Vocational College of Agriculture & Forestry, Songjiang, Shanghai, 201600)Abstract:DDE and OLE are two inner communication systems of Microsoft Windows supporting. Its application

温馨提示

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

评论

0/150

提交评论