Foxpro中DDE类函数的应用
来源:东瓜茶轩 作者:徐波 出处:综艺读书 2005-11-30·如何修复被破坏的Foxpro数据库
·如何在应用程序中修改FOXPRO数据表
·为FoxPro中的弹出式菜单增加自学习功能
·读取foxpro格式的dbf文件
·FOXPRO 系统指标
·Foxpro 更多对象
·foxpro 让视图与数据源相连
·导出EXCEL/FOXPRO/PRODOX格式表
·Foxpro 更多方法
一、与系统外壳配合完成应用程序的安装
Windows应用程序安装时除了完成文件的复制以外,还必须建立应用程序组及程序项,尽管现在已经有一些工具可以帮助程序员来分发安装Windows应用程序,但如果你手头一时找不到这些工具来安装你的Foxpro应用程序,或者你的应用程序有特殊的要求并且不打算用到像C++之类的语言,则不妨使用Foxpro的DDE命令来完成安装工作。
安装应用程序实际上是与系统外壳打交道,以前Windows 3.x使用PROGMAN.EXE作为外壳,Windows95则使用EXPLOLER.EXE,它们都可以作为DDE服务器并提供相同的主题PROGMAN。用CreateGroup命令可以建立程序组,用ShowGroup命令可以显示程序组,用AddItem命令可在程序组中增加程序项,其格式简述如下(其它命令及详细格式请参考Windows文档):
(1)CreateGroup(GroupName[,GroupPath]),两个参数分别用于指定组名和路径;
(2)ShowGroup(GroupName,ShowCommand),两个参数分别用于指定组名和显示方式;
(3)AddItem(CmdLine[,Name[,IconPath[,IconIndex]]],四个参数分别用于指定命令行、程序项名称、图标资源路径及索引。
下面的Foxpro程序建立应用程序组MyApplication及其程序项App1。
**安装应用程序的例子
**进行文件的解压、复制等操作后,执行下面的代码安装程序组和程序项
iProgman = DDEInitiate(PROGMAN,PROGMAN) &&DDE初始化
IF iProgman != -1 &&初始化成功则建立程序组
iExecute=DDEExecute(iProgman,[CreateGroup("MyApplication")])
IF iExecute = .F.
WAIT WINDOWS 建立程序组失败
ELSE
= DDEExecute(iProgman,[ShowGroup("MyApplication.GRP",1)])
=DDEExecute(iProgman,[AddItem(c:\MyApp\app1.exe,app1, c:\MyApp\app1.ico)])
ENDIF
= DDETerminate(iProgman)
ELSE
WAIT "DDE初始化失败" WINDOWS
ENDIF
RETURN
二、与MS Word配合制作简报
Foxpro提供的报表生成器简化了报表制作过程,但对一些格式特别复杂并且有许多文字格式编排的简报来说还是显得有点儿力不从心,如果能够把Foxpro的数据库管理能力与MS Word优秀的文字和报表处理能力结合起来,则一定能为你的工作添色不少。
要想生成一份简报,则会用到Word的邮件合并功能,我们把Foxpro数据库作为邮件合并的数据源,并通过Foxpro生成需要完成的简报数据。在MS Word中建立简报的文档中插入需要输出的数据域(这里是Foxpro的字段),并进行格式编排,最后在Foxpro中通过DDE来使用MS Word的显示或打印命令就可以达到我们的目的。下面是一个简单的例子。
假如我们要完成某公司全年产品生产销售情况的简报输出工作,其数据用Foxpro产生并存放于数据库product中,其字段名分别为year(年份),q1、q2、q3、q4(分别为四个季度的产量),s1、s2、s3、s4(分别为四个季度的销售量)。
要求生成的简报样式如下所示:
公司一九九七年产品生产销售情况
季度 产量 销售量
一 15000 13000
二 20000 18000
三 25000 25000
四 30000 31000
首先,在Word中利用邮件合并功能建立如下所示的文件product.doc并插入相应的域。
公司$#@60; 季度 产量 销售量
一 《Q1》 《S1》
二 《Q2》 《S2》
三 《Q3》 《S3》
四 《Q4》 《S4》
然后,通过利用下面的程序来生成该简报并打印输出。
SET SAFETY OFF
RUN /N c:\MSoffice\winword\winword.exe &&运行Word
iWord = DDEInitiate("WinWord", "System") &&初始化DDE
= DDEExecute(iWord, [AppActivate "Microsoft
Foxpro",1]) &&重新激活Foxpro
= DDETerminate(iWord) &&终止DDE
**清数据库
USE PRODUCT
ZAP
USE
**计算出相应的数据后添加到数据库(这里为假设数据)
INSERT INTO PRODUCT (year,q1,q2,q3,q4,s1,s2,s3,s4)
VALUES (1997,15000,20000,25000,30000,13000,18000,25000,31000)
CLOSE DATA
iWord = DDEInitiate("WinWord", "System")
= DDEExecute(iWord, "[AppMinimize]") &&最小化
= DDEExecute(iWord, [FileOpen "c:\pb\product.doc"])
&&打开文件
= DDEExecute(iWord, [MailMergeViewData]) &&数据视图
= DDEExecute(iWord, [FilePrint]) &&打印
= DDEExecute(iWord, [FileClose]) &&关闭
= DDEExecute(iWord, [FileExit]) &&退出
= DDETerminate(iWord)
RETURN
三、与Excel配合打印复杂的图表
如果你要制作图表,则首先想到的当然是利用Excel来完成。图表制作是Excel的强项,但Foxpro也能“驱动”它。方法是先制作Excel表格,选定单元区域作为建立图表的数据(包括坐标轴和标题等),选择“插入”、“图表”
菜单项,方式可以是嵌入或新建图表,调整好图表的式样和大小,在Foxpro中通过DDE命令传送数据到Excel单元格,Excel将根据传送的数据生成图表,再在Foxpro中通过DDE执行Excel的打印或显示命令,即可得到漂亮的图表输出。
在下面的例子中,我们打印一个四个季度销售情况的直方图。首先,建立Excel文件product.xls,在R1C2到R1C5四个单元格中分别填入“一”、“二”、“三”、“四”作为建立图表的坐标的标题,在单元格R2C1中填入“销售量”作为图表的题目,R2C2至R2C5四个单元格作为四个季度的销售量,其数据由Foxpro通过DDE填入。然后,用下面的这段程序即可打印出一个图表。
**用DDE驱动Excel打印直方图
RUN /N c:\msoffice\excel\excel.exe product.xls
iExcel = DDEInitiate("Excel", "System")
= DDEExecute(iExcel, [APP.ACTIVATE("Foxpro",1)])
= DDETerminate(iExcel)
iExcel = DDEInitiate("Excel", "product.xls")
*计算相应数据填入相应单元,这里假设为80 90 100 110
= DDEPoke(iExcel, "R2C2", "80")
= DDEPoke(iExcel, "R2C3", "90")
= DDEPoke(iExcel, "R2C4", "100")
= DDEPoke(iExcel, "R2C5", "110")
= DDEExecute(iExcel, [PRINT()]) &&打印
= DDETerminate(iExcel)
iExcel = DDEInitiate("Excel", "System")
= DDEExecute(iExcel, [ERROR(FALSE)]) &&不存盘
= DDEExecute(iExcel, [QUIT()]) &&退出
= DDETerminate(iExcel) &&终止DDE
RETURN
Foxpro通过其DDE类命令与其它的Windows应用程序配合可完成很多复杂的工作,从而充分共享Windows应用软件的功能,以满足实际工作的需要。以上三例在Win
95及Office 95下通过。进入讨论组讨论。
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
|
|||||
| ·Windows Vista ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·服务器存储专栏 ·Wlan组网----家庭专题 |
·综合布线工程案例 ·Linux服务器的安全性能 ·iSCSI应用与发展 ·电脑死机原因及解决办法 ·SOA 面向服务架构 ·Zope应用开发指南 ·XML详解 ·J2SE开发应用 |
||||
| · AMD董事长年薪1610万美元 · 胡润富豪榜4位女老总遭勒索 · 爱立信中国区副总屠敏离职 |
· 绝对好使的电脑超级技巧 · 想不到浏览器还有这个功能 · 小技巧:宿舍里自娱自乐 |
| · DIY系统:打造移动Win XP · 杂牌摄像头也玩Vista · 在WinXP上运行Vista边栏 |
· 克隆软件Ghost初级使用教程 · [图解]Norton Partition · PowerPoint技巧大集合 |
| · 在VC++应用程序中读取文本 · 使用JBuilder2007开发Web.. · 熊猫烧香核心源码(Delphi) |
· 经验:ASP与存储过程解析 · 节选:快速进入AJAX开发 · Javascript+ASP作无刷新.. |
| · 在Linux 环境下安装 Mysql · Oracle在基于Window操作.. · 每天备份mysql数据的脚本 |
· Photoshop抠图:飘逸秀发.. · 告别雀斑!一个接近自然的 · 用Photoshop美化美女摄像头 |




