转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
Foxpro中DDE类函数的应用         

Foxpro中DDE类函数的应用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:829 更新时间:2009/4/24 21:43:35
P>Foxpro在我国应用广泛,但大多数用户一般只注重其方便的数据库的管理功能,开发的应用程序也仅局限在Foxpro本身的数据库管理功能上,其实Foxpro也可以和其它Windows应用程序进行有效的配合,共同完成某些特殊的任务。利用Foxpro提供的十二个DDE(动态数据交换)函数可以方便地与其它应用程度交换数据,执行其它Windows应用程序的命令。笔者在编程实践过程中应用DDE函数编程完成了一些特殊的应用,取得了满意的效果。下面列举几个应用Foxpro中DDE类的例子,或许对读者编程时有所启发。

  一、与系统外壳配合完成应用程序的安装

  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;$#@62;年产品生产销售情况

  季度 产量 销售量

  一 《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下通过。


[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台