创建和分发您自己的自定义 ActiveX 控件除了可以提供 Microsoft Office InfoPath 中没有提供的功能外,还可以节省其他表单模板设计者的时间和精力。您可以使 Microsoft ActiveX 控件在设计模式 (设计模式:InfoPath 设计环境,可以在其中创建或修改表单模板。)中可用,然后在您创建的表单模板上使用这些控件。
- 什么时候使用 ActiveX 控件
- 用户体验
- 兼容性考虑事项
- 在表单模板上插入 ActiveX 控件
- 安全提示
什么时候使用 ActiveX 控件
通常,当您要在表单模板上包含 InfoPath 中没有提供的用户界面元素(如 Microsoft Windows 附带的滑块控件)时,可以使用 ActiveX 控件。
您的组织也可能为特定商业用途而创建自己的自定义 ActiveX 控件。例如,医院可以开发允许医学影像显示在表单上的 ActiveX 控件。或者假设您的销售代表必须跟踪给定月份已售物品的数量。因为销售代表必须再三地递增一个,所以通过键入来更新文本框可能很麻烦且可能产生错误。使用 鼠标单击来自我递增的自定义 ActiveX 控件可以减少跟踪这些信息所花的时间,并可帮助减少错误。
用户体验
用户在表单上看到的内容完全取决于表单模板上使用的 ActiveX 控件的类型。
当您发布包含 ActiveX 控件的表单模板时,必须在用户的计算机上安装并注册此控件,以便用户能够打开基于此表单模板的表单。一些 ActiveX 控件(如 Microsoft Windows 附带的控件)可能已在用户的计算机上安装并注册了。其他 ActiveX 控件(如您开发的自定义控件)可能还没有安装和注册。在这种情况下,您必须采取措施来为您的用户安装并注册控件。
如果您计划使用自定义安装程序来安装表单模板,则可以同时安装和注册自定义 ActiveX 控件。您也可以在用于在用户的计算机上安装控件的添加自定义控件向导中指定现有的 .cab 文件。
当您使用添加自定义控件向导来使用户可以使用 ActiveX 控件时,您必须指定是否要将现有 .cab 文件与表单模板打包在一起。此 .cab 文件允许在用户的计算机上安装并注册控件。如果您选择在表单模板上包含 .cab 文件,并且您的用户尚未安装 ActiveX 控件,则 InfoPath 会在用户第一次打开基于表单模板的表单时提示用户安装控件。
如果满足以下两个要求,则 InfoPath 会自动为用户安装并注册控件:
- .cab 文件已通过在该文件上创建数字签名的数字证书签名。
- 数字签名来自表单开发者或其他受信任的发布者。如果 .cab 文件已被签名,但发布者在用户的计算机上不受信任,则 InfoPath 将显示安全警告,要求用户启用对该发布者的信任。
兼容性考虑事项
在 InfoPath 中设计表单模板时,可以选择设计与浏览器兼容的表单模板 (与浏览器兼容的表单模板:InfoPath 中使用特定兼容模式设计的一种表单模板。在将与浏览器兼容的表单模板发布到运行 InfoPath Forms Services 的服务器上时,该模板受到浏览器的支持。)。当您设计与浏览器兼容的表单模板时,ActiveX 控件在“控件”任务窗格中不可用,因为它们无法在 Web 浏览器中显示。
另外,ActiveX 控件在模板部件 (模板部件:表单模板的一部分,可以保存以便在多个表单模板中重复使用。典型的模板部件由控件和数据源组成,还可能包含数据连接、数据验证和规则等功能。)中也不可用。
在表单模板上插入 ActiveX 控件
在可以向表单模板上添加 ActiveX 控件之前,必须使该控件在“控件”任务窗格中可用。InfoPath 包含添加自定义控件向导,该向导可指导您完成选择 ActiveX 控件、根据需要在表单模板中包含安装 .cab 文件和指定绑定 (绑定:将控件连接到数据源中的字段或组,以便可以保存输入控件的数据。未绑定控件时,表明它未连接到字段或组,输入控件中的数据不会被保存。)选项及 ActiveX 控件的其他属性的过程。
向“控件”任务窗格中添加 ActiveX 控件
如果您开发自己的在 InfoPath 中使用的 ActiveX 控件,则必须将该控件标识为可安全初始化和可安全编写脚本,然后才能完成以下步骤。
- 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
- 在“控件”任务窗格底部,单击“添加或删除自定义控件”。
- 在“添加或删除自定义控件”对话框中,单击“添加”。
- 在添加自定义控件向导的第一页上,单击“ActiveX 控件”,然后单击“下一步”。
- 在该向导的下一页上,在“选择控件”列表中单击所需的控件,然后单击“下一步”。
注释 “选择控件”列表显示计算机上当前已注册的 ActiveX 控件,包括 Microsoft Windows 附带的 ActiveX 控件。如果您创建了自己的自定义 ActiveX 控件,则必须注册它以使其出现在“选择控件”列表中。如果 ActiveX 控件与 InfoPath 不兼容或被视为不安全,则无法将它们添加到 InfoPath。
- 在该向导的下一页上,执行下列操作之一:
- 要将安装 .cab 文件包含在表单模板中,请单击“包括 .cab 文件”,指定要使用的文件,然后单击“下一步”。
- 要使用自定义安装程序安装 ActiveX 控件,或者 ActiveX 控件已安装在用户的计算机上,请单击“不包括 .cab 文件”,然后单击“下一步”。
- 在“绑定属性”列表中,执行下列操作之一:
- 要将 ActiveX 控件的属性绑定到数据源中的域,请单击一项。
注释 如果 ActiveX 控件包括“值”属性,则 InfoPath 会自动选择该属性,但您也可以选择更改该属性。
- 要保留 ActiveX 控件处于未绑定状态,请单击“(不绑定)”。
- 要将 ActiveX 控件的属性绑定到数据源中的域,请单击一项。
- 单击“下一步”。
- 根据您选择添加的 ActiveX 控件的类型,可能出现“启用或禁用属性”列表。如果出现了该列表,单击一种属性,然后单击“下一步”。
注释 如果控件包括“启用”属性,则 InfoPath 会自动选择该属性,但您也可以选择更改该属性。
- 如果在步骤 7 中指定了绑定属性,指定所需的绑定选项。
在“域或组的类型”列表中,执行下列操作之一:如何操作?
- 要将 ActiveX 控件绑定到具有简单数据类型的域,请单击“域(元素或属性)”。这种类型的绑定由简单的 ActiveX 控件使用,如 Microsoft Windows 附带的滑块控件。如果选择此选项,则必须指定 ActiveX 控件的默认数据类型及 ActiveX 控件可以绑定到的任何其他数据类型。
- 要将 ActiveX 控件绑定到具有自定义数据类型的域,请单击“域(具有自定义数据类型的元素)”。这种类型的绑定由作为特定类型内容的编辑器的 ActiveX 控件使用,如编辑 MathML 的公式编辑器。如果选择此选项,则还必须为要编辑的 XML 指定命名空间 (命名空间:一种唯一限定元素名称与关系的方法,以避免具有同一名称但来自多个来源的元素发生名称冲突。)。
- 要将 ActiveX 控件绑定到域或组,而不管其属于哪种数据类型,请单击“域或组(任何数据类型)”。这种类型的绑定由分析在别处输入同一表单中的信息的 ActiveX 控件使用(如图形或图表),或由直接操纵 XML 数据的 ActiveX 控件使用。
- 单击“完成”。
- 查看确认消息,然后单击“关闭”退出该向导。
- 在“添加或删除自定义控件”对话框中,单击“确定”。
在 ActiveX 控件出现在“控件”任务窗格中后,您可以将其插入到表单模板上。
在新的空白表单模板上插入 ActiveX 控件
当您将 Microsoft ActiveX 控件插入到表单模板上时,InfoPath 插入一个绑定到数据源中的域或组的自定义控件,具体取决于您在添加自定义控件向导中指定的选项。
注释 如果您的组织中的其他表单模板设计者需要在他们的表单模板上使用相同的 ActiveX 控件,并且该控件尚未安装到他们的计算机上,则您可以创建自定义安装程序,如 Microsoft Windows 安装程序包 (.msi) 文件。此自定义安装程序可以为表单模板设计者快速安装并注册 ActiveX 控件。
- 在表单模板中,将光标放在要插入控件的位置。
- 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
- 在“插入控件”下,单击要插入的 ActiveX 控件的名称。
安全性 在向表单模板上添加 ActiveX 控件时要特别小心。由于 ActiveX 控件的设计方式,使用它们可能会带来安全风险。我们建议您只使用来自受信任源的控件。
- 特定于 ActiveX 控件的任何属性页将与 ActiveX 控件的标准 InfoPath 属性页一同出现。要查看这些属性页,请双击表单模板上的 ActiveX 控件。
在基于现有数据源的表单模板上插入 ActiveX 控件
如果您在现有可扩展标记语言 (XML) 格式的文件、数据库或 Web 服务的基础上设计表单模板,InfoPath 将从这些现有数据源中派生出“数据源”任务窗格中的字段和组。 在这种情形下,您可以通过将域从“数据源”任务窗格拖动到表单模板上来插入 ActiveX 控件,或者从“控件”任务窗格插入 ActiveX 控件,如下列步骤所述:
- 在表单模板中,将光标放在要插入控件的位置。
- 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。
- 在“插入控件”下,单击要插入的 ActiveX 控件的名称。
- 在“控件绑定”对话框中,选择要在其中存储控件的数据的域,然后单击“确定”。
安全提示
在设计包含 ActiveX 控件的表单时,您应该牢记以下安全问题:
- 在 InfoPath 中使用的 ActiveX 控件比在 Windows Internet Explorer 中使用的 ActiveX 控件具有更严格的限制。例如,InfoPath 要求 ActiveX 控件被标记为可安全编写脚本和可安全初始化。如果您开发用于表单模板的自定义 ActiveX 控件,则必须实现 IObjectSafety 接口,这样,InfoPath 就可以识别出特定控件被标记为可安全编写脚本和可安全初始化。
- 在向表单模板上添加 ActiveX 控件时要特别小心。由于 ActiveX 控件的设计方式,使用它们可能会带来安全风险。我们建议您只使用来自受信任源的控件。
- ActiveX 控件不能由具有受限信任级别的表单模板安装或在其上运行(在设计模式中在“表单选项”对话框中指定)。