您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 第十三章VFP同其它软件共享和交换数据
第十三章VFP同其它软件共享和交换数据13.1用APPEND和COPY命令与其它文件共享数据................................................................113.2对象链接和嵌入OLE及ActiveX控件.................................................................................513.3OLE拖放................................................................................................................................17本章介绍VFP与其它软件共享数据的几种情况:VFP与Wordstar和其它字处理(Word)软件或高级语言之间交换数据(一般用.TXT本文件)、VFP与其它xBASE之间的兼容性、对象链接与嵌入OLE;使用OLE自动控制;Active等。因篇幅有限而未介绍的MailMerge(邮件合并)、API和低级文件I/O以及VFP8.0的OLEDB等,读者可参见VFP软件的帮助(Help)。13.1用APPEND和COPY命令与其它文件共享数据VFP和其它程序之间数据的许多交换是借助COPY和APPEND命令中一定Type选项的帮助来完成的。使用COPY命令可以从VFP拷贝数据到其它程序;使用APPEND命令能从其它程序添加或传输数据到一个VFP表。格式如下:COPYTO文件名[范围][FIELDS字段列表][[TYPE]型]APPENDFROM文件名[FIELDS字段列表][[TYPE]型]说明:文件名是VFP和其它程序间传输文件的名字。型是如下可接受的一种类型选项,如:DELIMITED[WITH字符]、SDF、和DIF、SYLK、WKI、WRI、WRK、XLS、XL5[SHEET表格名]、FW2、MOD、PDOX、RPD、WKS等。其中,DELIMITED(定界)格式是用字符或空格分开的字段预先定义的记录组成的ASCII码文本,最常见(缺省时)的是用引号将字符字段的数据包括住,用逗号作各字段的分隔符、用回车作各记录的结束,所以各记录占一行,DELIMITED选项的WITH参数规定了一个字符或TAB(制表符)或BLANK(空格)用作字段的定界符,这里缺省值为逗号;SDF格式也叫系统数据格式,除了每个记录等长和每个字段有固定的空间外,其它与DELIMITED差不多;DIF格式指定一个VISICALC.DIF(数据内部变化)文件,其缺省文件扩展名为.DIF,VFP表如加入此文件时,其字段变为向量(列),而记录变为元组(行);MOD格式是新文件的MSMultiplan4.01版的格式,VFP表记录将加入到该文件,其缺省扩展名为.MOD;SYLK是新文件的符号链接(SymbolicLink)交换格式,VFP表记录将加入到该文件中,SYLK文件用在MSMultiplan中,没有扩展名;WKI格式是一个Lotus1-2-32.X版电子表格文件,当前表的每个字段对应电子表格的一列,每个记录对应其一行,电子表格扩展名为.WKS;WKS是一个Lotus1-2-3-A修改版电子表格;WRI格式是一个LotusSymphony1.1或1.2版电子表格文件,其文件扩展名为.WRI;WRK是Lotus1-2-31.0版电子表格;XLS是一个MSExcel2.0版工作表,与VFP表是列对应字段、行对应记录,扩展名是.XLS;XL5[SHEET表格名]包括XL5可从MSExcel5.0版中读取数据,即工作表的列变为表中的字段,其行为记录,其文件扩展名为.XLS。只用于COPYTO命令的格式文件还有:FOXPLUS格式,VFP备注字段结构与FoxBASE+备注字段不同,用FoxPlus格式建立一个可以用在FoxBASE+的表;FOX2X格式只可用于VFP,建立一个可以在FoxPro早期版本(2.0、2.5和2.6)中被打开的新表。例13.1:拷贝Videos表为能由Lotus1-2-3读的文件:USEVideosCOPYTO123FILETYPEWK1例13.2:从标准格式SCFILE文本文件传输一个文件到VFP的Videos的表:USEVideosAPPENDFROMSCFILETYPESDF还可以添加其它选项,诸如范围(即:ALL、NEXT、或一个记录号)或者当传输数据到其它程序时,对COPY命令列字段列表。也可使用FOR条件去限定将被传输的记录。注意,当用APPEND从外面的文件输入数据时,可以包括一个FOR子句,但不允许范围。VFP的COPY和APPEND命令的选项和文件类型详见VFP软件的帮助。注:TYPE关键字,如不是与VFP表打交道时,尽管要指定文件类型,但也可省掉此关键字。上面已介绍了文件的几种格式,下面准备讲几个VFP数据交换的例子。在讲述VFP与其它应用程序交换数据的例子之前,先列出一些常见软件的数据文件格式,如表13-1所示。表13-1软件名软件类型文件类型WordPerfect字处理定界(Delimited)或SDFWordstar字处理定界或SDFMailMergeWordstar的选件定界MSWord字处理定界或SDFMultiMate字处理定界或SDFLotus1-2-3图表dBASE或SDFMSExcel图表dBASEdBASEⅢ/IV数据表管理dBASEParadox数据表管理dBASEPC-FileⅢ数据表管理定界R:base数据表管理定界或dBASEBASIC高级语言SDF此表便是后面要用到的部分软件的内部交换格式表。13.1.1VFP与其它字处理(Word)之间交换数据1.从VFP传输到Wordstar和其它字处理器大多数字处理器用ASCII格式工作,所以首先叙述之。假如需要从表中抽出名字和工资信息组成一个包含全体雇员工资量的备注文件给公司经理,则可以用LIST命令的TOFILE选项去帮助完成此任务。当键入LIST命令(与任何期望的字段一起),后面跟有TOFILE和一个文件名时,用LIST显示的数据也以ASCII码文本文件形式存贮在命令中所命名的文件里(当然可用COPYTO命令)。例13.3:打开MEMBERS表,实现上述任务。USEMEMBERSLIST姓名,工资TOFILEPEOPLE.TXT此程序产生的PEOPLE文件就是满足上述要求的ASCII码文本(.TXT)文件。现在退出VFP,并装载字处理器。接着键入字处理器,读一个ASCII码文件通常所使用的命令。当字处理器问装入文件名时,键入驱动器和目录路径后,键入文件名:PEOPLE.TXT。文件将出现在屏幕上。也可在REPORTFROM命令结尾加上TOFILE选项,存贮报表的输出在ASCII码文本文件中:REPORTFROMSAMPLETOFILEREPS.TXT这个程序将产生一个名叫REPS.TXT的文件,该文件包括由存贮报表SAMPLE所产生的报表格式中的数据。注意:在用VFP传输的文件底部,可能会有一个左箭头或类似的图形字符(这里是否有这样的字符取决于你所使用的字处理器)。如果使用的是Wordstar字处理器,会看到一个或多个^@符号在文件的结尾。这样的字符表示当VFP写文件完成时所产生的文件结尾。用户可用BACKSPACE键或DELETE命令抹去这些不希望的字符。2.从Wordstar和其它字处理器传输到VFP从其它程序传输数据进入VFP表的工作比送VFP数据到其它程序(特别是字处理程序)的处理工作稍微多一点,这是因为带进VFP表的文件必须遵循一个精确的格式,比如SDF或定界(Delimited)格式。这样,应事先从字处理器编辑此文件,直到它匹配一个定界或SDF文件格式。在字处理器建立定界或SDF格式文件后,便可以使用VFP的APPEND命令去装载文件了。乍一看,似乎选择SDF格式比定界格式更容易些,因为不必键入全部引号和逗号。但是,如果选择SDF格式,必须保持各字段尺寸的“轨迹”,各字段必须与将传送数据去的数据表的相应字段有相同的宽度。因此,有时使用定界格式更容易些。当传输由字处理(或任何其它程序)建立的文件到VFP时,必须也建立或打开一个具有如此结构的表,该表的结构匹配想要传输的文件设计。为了简明一些,下面的例子假定由其它软件建立的文件匹配表结构。现在尝试用定界(delimited)文件传输。假如用字处理器建立了一个通讯名单,并且现在想用VFP运用那个通讯名单。使用字处理器去建立下面的定界格式文件,并且给其取名为MAIL2.TXT(注意:如果使用Wordstar,则按非文书文件命令N。如果使用MSWordPerfect或IBMDisplayWrite,存贮文件为ASCII文本)。123-80-7654,Johnson,Larry,4209ViennaWay,Asheville,NC,27995,191-23-5566,Mills,Jeanette,13ShannonManor,Phoenix,AZ,87506,909-88-7654,Simpson,Charles,421ParkAvenue,Az,87506,NY,10023用字处理器的存贮处理器的存贮命令存贮此文件为ASCII文本。现在装载VFP,下面便是用APPEND命令输入定界(Delimited)格式文件的例子。例13.4:USEMEMBERS2APPENDFROMMAIL2.TXTTYPEDELIMITEDVFP将用“3个记录被添加”的信息作反应。用户可用GOTOP和LIST去检查,在表底将看到从通讯名单而来的名字和地址已经加到表了。在这个例子中,文本文件的字段顺序为last_mame、first_name(姓名)、address(地址)、city(城市)、state(州)和ZIP(邮码),有幸的是表MEMBERS2的字段也是用的相同顺序。13.1.2注意VFP与其它xBASE之间的兼容性几乎所有的Xbase(如dBASEⅢ+/IV,FoxBASE+,FoxPro的低版本)的程序都可以不作任何修改直接在VFP中使用。为了使dBASE程序文件在VFP中运行可靠,在使用dBASE程序文件之前,最好先执行一条COMPATIBLEDB4命令。当在VFP中打开dBASE的表格文件时,VFP就自动将其转换成VFP的格式,同使用VFP的表格一样使用,将原来的dBASE表格式文件覆盖。在VFP中修改dBASE中生成的报表和标签文件时,系统也自动地进行格式转换。VFP在转换dBASE的报表和标签文件时,用dBASE的.FRM文件内容生成VFP的.FRX(报表)文件,用dBASE的.LBL文件内容生成VFP的.BLX(标签)文件。dBASE的扩展名为.QBE的查询文件在VFP中可以直接运行。dBASE中的其它类型文件在VFP中使用时,也会被系统自动地进行转换,如dBASE的.CAT文件转换成VFP的项目文件(.PJX)等。在FoxPro2.6中生成的程序文件以及报表、查询和表格等均不需要转换而直接在VFP中使用和运行。FoxPro2.6的文件在VFP中也可直接打开,例如用查询设计器或者表格设计器分别打开FoxPro2.6的查询文件和表格文件。也可以用可视设计器将这些文件转换成VFP的格式。文件转换的方式有两种:一是在文件菜单中选择打开项,寻找到需要转换的FoxPro2.6的文件后选择确定钮;二是在命令窗口中用MODIFY命令,如MODIFYREPORT就将出现一个转换选件的对话框。VFP6.0应用程序升级为VFP8.0应用程序应注意事项详见VFP8.0软件的帮助。13.2对象链接和嵌入OLE及ActiveX控件微软公司的Windows平台支持三个在应用程序之间内部交换数据的机制:剪贴(Clipboard)、对象链接和嵌入OLE(ObjectLinkingandE
本文标题:第十三章VFP同其它软件共享和交换数据
链接地址:https://www.777doc.com/doc-2162563 .html