第十章:与其他应用程序共享信息

使用 Visual FoxPro 时,可以通过共享信息而借鉴其他 windows 应用程序的长处。可以在应用程序之间复制和粘贴数_据,使用 Visual FoxPro 表中的数据创建邮件合并,链接或嵌入其他应用程序的数据,以及在应用程序之间导入或导出数据。通过共享信息,可以节省时间并避免错误。例如,不必向表中输入 Microsoft® Excel 的结果,直接从 Microsoft Excel 复制或者链接到 Microsoft Excel 即可自动得到结果。

有关导入或导出的详细内容,请参阅第九章“导入和导出数据”。有关自动服务的详细内容,请参阅《程序员指南》中的第十六章“添加 OLE”

本章要点:

快速共享信息

通过复制和粘贴数据,可在 Visual FoxPro 和其他应用程序或数据源之间快速共享数据。也可使用“邮件合并向导”加速大邮件的发送。

复制和粘贴数据

如果希望快速、简便地共享少量数据而非整个文件,则可人工选择数据,将其剪切或复制下来,然后粘贴到任何地方。例如,复制一个表单中的选定数据,然后将其粘帖到一个 Microsoft Word 文档中,或者从一个 Excel 电子表格中复制选定单元格的内容,然后将其粘贴到一个表的备注或通用字段中。也可将数据复制和粘贴到邮件消息中并从 Visual FoxPro 中发送消息。

提示 要共享全部文件,可将其链接或嵌入。有关链接与嵌入的详细内容,请参阅本章稍后的“动态共享数据”部分。

若要将其他应用程序中的数据粘贴到通用字段中

  1. 将数据复制到“剪贴板”中。

  2. 打开并浏览要向其中通用字段粘贴数据的表。

  3. 双击该通用字段。

  4. 从“编辑”菜单中选择“粘贴”或“选择性粘贴”来嵌入数据。

    – 或者 –

    先从“编辑”菜单中选择“选择性粘贴”,然后在“选择性粘贴”对话框中选择“粘贴链接”。

    “选择性粘贴”对话框

提示 当链接或嵌入时选择“显示为图标”复选框,可以节省磁盘空间。选中该复选框时,Visual FoxPro 将显示图标而不是数据。

创建邮件合并

一种普通的共享数据方法是邮寄由存储在 Visual FoxPro 中的地址和存储在 Microsoft Word 中的模板共同创建的信件。利用 Visual FoxPro,通过使用“邮件合并向导”,可以创建一个包含 Visual FoxPro 表数据的 Word 文档。

若要使用“邮件合并向导”

  1. 从“工具”菜单中选择“向导”。

  2. 从子菜单中选择“邮件合并”。

  3. 按照向导中的提示进行操作。

从 Visual FoxPro 中发送邮件

如果已经安装了邮件程序,可从 Visual FoxPro 中发送邮件。

若要发送邮件

也可使用 MAPI 工作期控件和 MAPI 消息控件从应用程序中发送邮件。有关这些控件的详细内容请参阅“ActiveX 控件概述”

动态共享数据

在 Visual FoxPro 中,通过将数据链接或嵌入到应用程序中,可以加入其他应用程序的数据,同时仍由那些应用程序来维护这些数据。例如,可以把 Word 文档链接或嵌入到通用字段,或者把 Excel 电子表格链接或嵌入到表单上。

动态链接数据时,数据存储在源文件中,并非存储于 Visual FoxPro 的表或表单中。表或表单中存储的只是指向源文件的指针,并显示链接数据的图示。在源文件改变时,将更新链接数据,只要未中断这种连接,则与该源文件将一直保持连接。有关详细内容,请参阅本章稍后的“更改或断开与数据的链接”部分。

注释 文件扩展名是 .avi 时,将自动链接。

动态嵌入数据时,数据只存储在表或表单中。该数据并不与源文件保持连接。如果源文件改变了,其变化并不显示在 Visual FoxPro 的应用程序中。

链接或嵌入数据

在以下情况可创建链接:

在以下情况可嵌入数据或图形:

请使用下面的规则来决定使用链接还是嵌入。

若要 请使用此方法 细节
创建的应用程序能在其他计算机上使用或者即使源文件不在时也能编辑。 嵌入数据。 要编辑该数据,其源应用程序必须安装在计算机上。
包含的数据不是永远可用的,比如存储在服务器上的数据。 嵌入数据。 所有必要信息都包含在嵌入的数据中。
包含一个很大的文件,比如录像或声音片断。 创建与源文件的链接。 您的应用程序仅存储该链接,保持应用程序大小在可管理范围之内。
包含存在于源应用程序中的数据。 创建与源应用程序的链接。 在您的应用程序中将反映出源应用程序所做的任何更改。

下面各节将讨论如何向表中添加数据、向表单中添加数据、更改或断开与数据的链接、显示表中链接或嵌入的数据以及编辑链接或嵌入的数据等。

向表中插入数据

通过将数据插入到通用字段中,可以把其他 Windows 应用程序中的数据加入到 Visual FoxPro 表中。例如,如果有产品的图片,通过将其插入到通用字段,可把图片加到含有其他产品信息的表中。

若要将数据插入通用字段

  1. 打开并浏览相应的表。

  2. 双击要插入数据的通用字段。

  3. 从“编辑”菜单中选择“插入对象”。

    此时显示“插入对象”对话框,列出了可以插入的数据类型。

    “插入对象”对话框

  4. 若要创建自己的数据,请选择“新建”,然后选择适当类型的数据。

    – 或者 –

    若要使用已有数据,请选择“由文件创建”单选钮,然后键入包含数据的文件名,或者单击“浏览”按钮,指定文件。如果希望与文件链接,可选中“链接”复选框。

    “插入对象”对话框

更改或断开与数据的链接

与某些数据链接后,可能需要使用一个不同的数据源,或者需要嵌入而不是链接。若要更改数据源,必须更改链接;若要嵌入,则必须断开链接。

若要更改与通用字段中数据的链接

  1. 打开并浏览相应表。

  2. 双击要更改其链接的通用字段。

    从“编辑”菜单中,选择“链接”命令。

  3. 此时显示“链接”对话框。

    “链接”对话框

    注释 选择“自动”,则不论何时改变源应用程序,均可自动更新数据;选择“手工”,则可人工更新数据。

  4. 在“链接”对话框中选择“更改源”。

    “更改源”对话框出现。

    “更改源”对话框

  5. 指定新数据源并选择“打开”。

  6. 在“链接”对话框中选择“关闭”,结束更改。

若要断开与通用字段中数据的链接

  1. 打开并浏览相应表。

  2. 双击要断开其链接的通用字段。

  3. 从“编辑”菜单中,选择“链接”命令。

  4. 在“链接”对话框中选择“断开链接”。

  5. 选择“关闭”。

中断链接后,数据变为静态数据。

在表单中显示嵌入或链接的数据

通过使用链接或嵌入数据如 Word 文档或 Microsoft Excel 工作表,可以增强表单的设计效果。同样地,通过显示来自通用字段的链接或嵌入数据,可以增强报表的设计效果。有关详细内容,请参阅第七章“设计报表和标签”中的“添加通用字段”部分。

若要向表单链接或嵌入数据

  1. 创建或打开一个表单。

  2. 表单控件工具栏上选择“ActiveX 容器控件”按钮,并在表单上拖动到一定大小。

    此时系统显示“插入对象”对话框,列出可以链接或嵌入的文件类型。

  3. 选择“新建”可创建新文件。

    – 或者 –

    选择“由文件创建”可以使用已有文件。键入包含所需数据的文件名或者选择“浏览”选择适当的文件。另外,如果希望与该文件链接,可选中“链接”复选框。

更改或断开与表单数据的链接

使用“编辑”菜单上的“链接”命令,可以更改或断开与表单数据的链接。

若要更改与表单数据的链接

  1. 打开相应表单。

  2. 选择要更改其链接的对象。

  3. 从“编辑”菜单中选择“链接”。

  4. 在“链接”对话框中选择“更改源”。

  5. 在“更改源”对话框中指定新数据源并选择“打开”。

  6. 在“链接”对话框中选择“关闭”,结束更改。

若要断开与表单数据的链接

  1. 打开相应表单。

  2. 选择要断开其链接的对象。

  3. 从“编辑”菜单中选择“链接”命令。

  4. 在“链接”对话框中选择“断开链接”。

  5. 选择“关闭”。

断开链接后,链接的数据将变为静态数据。

显示表中的嵌入或链接数据

在表单或报表上,可以显示表中通用字段内链接或嵌入的数据。例如,假设您有一个产品表,其中每条记录的通用字段中都含有一个有关产品信息的小册子(一种 Word 文档)。您可以在表单上显示记录中的特定信息,包括描述产品的小册子。

若要在表单上显示通用字段中的数据

  1. “表单设计器”中,向表单添加一个“ActiveX 绑定控件”。

    在表单上,Visual FoxPro 创建一个对象,在运行时刻可以通过它查看数据。

  2. 通过设置该对象的 ControlSource 属性指定包含了所需数据的通用字段。

    例如,如果表名是 Inventory 且通用字段名是 Current,那么把 ControlSource 属性设置为“Inventory.Current”。

  3. 在表单上,添加用于浏览通用字段的按钮或菜单命令。

若要在报表上显示通用字段中的数据

在报表中包含数据

创建报表时,可使用图象容器直接将图片或图标从外部源链接或嵌入到报表中。其他类型的数据,例如 Word 文档或 Microsoft Excel 电子表格,只有当它们在 Visual FoxPro 表的通用字段中事先链接或嵌入后,才能被包含进来。有关详细内容,请参阅第七章“设计报表和标签”

在表单和表中编辑 OLE 对象

在设计表或表单时,可以编辑表或表单内链接或嵌入的数据。不仅如此,还可以在运行表单时编辑表单内的数据。下面的过程描述了编辑数据的方法。

若要编辑表中的通用数据

  1. 打开并浏览相应的表。

  2. 转到包含该通用字段的记录。

  3. 双击该通用字段以显示编辑窗口。

  4. 在编辑窗口中双击,编辑数据。

若要在设计表单时编辑嵌入或链接的对象

  1. 选择表示该数据的对象。

  2. 用鼠标键指定该对象,单击鼠标右键。

  3. 快捷菜单中,选择“文档对象”,然后选择“编辑”或“打开”。

若要在运行表单时编辑通用字段的对象或数据

  1. 从“编辑”菜单中选择该对象。

    例如,如果对象是 Excel 电子表格,则可从“编辑”菜单中选择“工作表对象”。

    提示 如果对象的“AutoVerbMenu”属性设为“真”,可在对象上单击鼠标右键。选择对象类型,然后选择“编辑”或“打开”。

  2. 若要以可视方式编辑该对象,请从子菜单中选择“编辑”。

    – 或者 –

    若要在单独的窗口中编辑该对象,请从子菜单中选择“打开”。

    注意 如果在运行表单时更改了某一对象内的数据,则仅当该数据是链接的或与“ActiveX 绑定控件(OLE 绑定控件)”相关联时,Visual FoxPro 才保存所做的更改。与“ActiveX 容器控件(OLE 容器控件)”相关联的更改不被保存。

    可视化编辑

如果在 Visual FoxPro 窗口中进行编辑,所用应用程序的菜单将代替 Visual FoxPro 菜单或与其合并。例如,如果正在使用 Excel,Excel 的“编辑”菜单将代替 Visual FoxPro 的“编辑”菜单。但是 Visual FoxPro 的“文件”、“程序”和“窗口”菜单不变。

用静态数据代替链接或嵌入的数据

通过使用创建数据的应用程序,可以用独立的位图来代替链接或嵌入的数据。

若要用位图代替链接或嵌入的数据

  1. 通过选择包含数据的对象,启动创建该数据的应用程序。

  2. 在应用程序中,把对象复制到“剪贴板”上,然后退出该应用程序。

    例如,如果应用程序有一个“复制图片”命令,可用它来复制对象。

  3. 从 Visual FoxPro 的“编辑”菜单中选择“选择性粘贴”。

  4. 在“选择性粘贴”对话框中,选择“粘贴”选项。

  5. 选择“显示为图标”(此为图元文件)选项。