数据源介绍

应用对象
InfoPath 2007 InfoPath 2010 InfoPath 2013

本文内容

数据源概述

窗体中显示的所有数据(无论是用户可以在列表框、下拉列表框或组合框中选择的数据,还是用户添加到窗体的数据)都存储在表单的数据源中。 数据源由字段和组组成。 与硬盘上的文件夹包含和组织文件的方式相同,字段包含用户在基于表单模板的表单中输入的数据,组包含和组织这些字段。 用户将数据添加到窗体上的控件,并且这些控件绑定到这些字段。 例如,假设你正在为支出报表设计表单模板。 当用户基于表单模板打开表单时,他们可以将其名字、中间名和姓氏放入三个文本框控件中: 每个文本框绑定到名字的字段、中间名的字段和姓氏的字段。 这些名称字段包含在名为“name”的组中。

可以在“ 数据源 ”任务窗格中查看和使用表单模板数据源中的字段和组。

262ae97d-1e72-40c0-a04c-9e1daece8071

1. 域

2. 组

尽管数据源的结构并不总是与表单模板的布局匹配,但相似之处很常见,尤其是对于与重复表、节、重复节和可选节关联的组和字段。 例如,表或节绑定到数据源中的组,表或节中的所有控件都绑定到属于该组的字段。 在下图中,费用报表窗体中的“明细费用重复表”由三列组成,其中包含“日期日期选取器”、“说明”文本框和“成本”文本框。 这些控件分别绑定到日期字段、说明字段和金额字段。 表本身绑定到项组。

57231fef-9f52-4707-82a0-baa77f503636

表单模板可以有两种类型的数据源: 单个主数据源和一个或多个辅助数据源(可选)。

返回页首

主数据源

主数据源包含以下项:

  • 用户在填写基于表单模板的表单时添加的数据,例如在文本框中输入的数据。 例如,用户在绑定到主数据源中的字段的文本框中键入其名字、中间名和姓氏。
  • 数据从数据连接到数据库或 Web 服务,用于定义表单模板的数据源。

主数据源中的数据是用户在填写表单时保存或提交的数据。 当用户保存表单以便以后可以提交表单时,用户会将数据保存在主数据源中。

创建主数据源

创建表单模板时,Microsoft Office InfoPath 会自动创建主数据源。 所有 InfoPath 表单模板都包含一个主数据源。 字段和组可以添加到主数据源,具体取决于创建的表单模板类型:

空白表单模板 通过使用“ 数据源 ”任务窗格或将控件从“ 控件 ”任务窗格拖动到表单模板中的视图,将字段和组添加到主数据源。 将控件拖到视图上时,InfoPath 会根据要添加的控件类型将字段和组添加到主数据源。 例如,如果将文本框控件拖动到表单模板上,InfoPath 会将字段添加到主数据源。 如果将重复节控件拖动到表单模板上,InfoPath 会将组添加到主数据源。 如果将重复表控件拖动到表单模板上,InfoPath 会将两个组添加到重复表的主数据源,并将字段添加到表中每一列的主数据源。

基于 XML 文档的表单模板 InfoPath 添加映射到架构中定义的元素或文档中元素的字段和组。

基于Microsoft Office Access 数据库或Microsoft的表单模板SQL Server数据库 InfoPath 根据数据库存储数据的方式向主数据源添加字段和组。

基于 Web 服务的表单模板 InfoPath 添加映射到 Web 服务提供的架构的字段和组。

如果数据源(例如 Web 服务或数据库)未包含在表单模板中,则它称为外部数据源。 InfoPath 表单通过数据连接连接到这些外部数据源。

修改主数据源

可以根据主数据源中的现有字段或组,将其他字段和组添加到主数据源。 下表根据“ 数据源 ”任务窗格中显示的图标概述了可添加到现有字段或组的内容。

图标 可以添加的内容
2e7184a3-eae0-4f1b-9538-477082e9348b “组”图标 可以将组或字段添加到此组。 此图标表示使用“ 数据源 ”任务窗格添加到主数据源的组,或与此组关联的控件,该控件已从 “控件 ”任务窗格拖动到空白表单模板中的视图。
369ab9b9-8971-4dd7-ab39-3189a1ff77d5 字段图标 只能向此字段添加字段。 此图标表示使用“ 数据源 ”任务窗格添加到主数据源的字段,或与此字段关联的控件,该字段已从 “控件 ”任务窗格拖动到空白表单模板的视图中。
48ccc619-08c3-445c-85b5-0862d1126b2e 锁定的组图标 不能向此组添加字段或组。 此组基于与外部数据源的数据连接。
9565f170-ae5b-463d-96cd-fe5a7743585f “锁定的字段”图标 不能向此字段添加字段。 此字段基于与外部数据源的数据连接。

如果将控件拖动到表单模板中的视图上,并且该表单模板包含基于数据连接的字段和组,则必须将该控件绑定到主数据源中的现有字段和组。 InfoPath 不会自动将字段和组添加到包含基于外部数据源的字段和组的表单模板。 在 “另请参阅 ”部分中查找有关添加字段和组的详细信息的链接。

注意

如果用户已根据表单模板填写了表单,则对表单模板主数据源的以下更改可能会导致这些表单中的数据丢失:

  • 移动、删除或重命名字段或组
  • 将重复字段或组更改为非重复字段或组
  • 将格式文本数据类型更改为其他数据类型

对于可以修改的字段和组,可以更改以下属性:

名字 字段或组的名称。

名称要求

  • 主数据源中的每个名称都必须是唯一的。 如果必须对多个字段或组使用相同的名称,请改为创建对该字段或组的引用。 创建对字段或组的引用时,InfoPath 会创建一个新的、相同的字段或组,其属性链接到第一个字段或组的属性。 对一个字段或组的任何更改都会自动更新另一个引用的字段或组。 引用组(如引用字段)包含相同的字段和组,并共享相同的属性。
  • 名称不能包含空格。
  • 名称必须以字母字符或下划线 (_) 开头,并且只能包含字母数字字符、下划线、 ( ) 连字符和句点 (.) 。

除了这些要求,最好使用描述字段或组内容的名称。 例如,如果你有一个包含费用明细详细信息的组,请将该组命名为 ItemizedExpense。 对于包含支出金额的组中的字段,将字段 费用命名为 。

类型 定义主数据源中的项是字段还是组。 字段具有唯一值,组包含其他字段。

字段和组的类型

Type 何时使用
字段 (属性) 如果以下一项或多项适用,请对字段使用此类型:
  • 字段不能包含其他组或字段。
  • 字段必须位于元素字段中。
  • 字段不重复。
  • 字段必须始终包含值。
  • 字段是格式文本 (XHTML) 以外的任何数据类型。
  • 数据库或 Web 服务需要属性字段。
Field (元素) 如果以下一项或多项适用,请对字段使用此类型:

  • 字段可以包含其他属性字段。
  • 字段是组的一部分。
  • 字段在组中重复。
  • 数据库或 Web 服务需要元素字段。
元素字段可以是任何数据类型,并且可能具有默认值,也可能不具有默认值。
将此类型用于可以包含其他字段或组的组。
组 (选择) 如果组只能包含几种不同类型的字段或字段组之一,请使用此类型。
例如,假设你正在设计一个表单模板,供美国和欧盟的国家和地区的供应商使用,并且表单模板包含地址选择组。 地址选择组包含具有美国中地址字段的组,或包含欧盟国家或地区地址字段的组。 当用户打开基于此表单模板的表单时,用户可以选择在美国中输入地址,或者输入另一个国家或地区的地址。 绑定到相应组中字段的控件将显示在窗体上。
完整的 XML 架构或 XML 文档 如果要将其他 XML 架构或 XML 文档添加到数据源中的指定位置,请使用此元素类型。

数据类型 定义字段可以存储的数据类型。

可用数据类型列表

数据类型 何时使用
文本 将此数据类型用于包含未格式化文本的元素或属性字段。
RTF 将此数据类型用于包含格式化文本的元素字段。 不能将此数据类型用于属性字段。
整数 对于包含没有十进制值的数字的元素或属性字段,请使用此数据类型。
Decimal 将此数据类型用于包含货币值或具有十进制值的数字的元素或属性字段。
真/假 将此数据类型用于包含数据(只能是两个值之一)的元素或属性字段。
超链接 将此数据类型用于包含统一资源标识符 (URI) 的元素或属性字段,例如超链接或命名空间。
日期 将此数据类型用于包含日历日期的元素或属性字段。
时间 将此数据类型用于包含 24 小时时间的元素或属性字段。
日期和时间 将此数据类型用于同时包含日历日期和 24 小时时间的元素或属性字段。
图片或文件附件 将此数据类型用于包含二进制数据的元素或属性字段,例如图像或图片。
自定义 将此数据类型用于具有命名空间定义的自定义数据类型的元素或属性字段。 此数据类型通常用于绑定到自定义控件的字段或组。 选择此数据类型时,将启用“ 数据命名空间 ”框。

注意

此表仅显示表单模板中使用的最常见 XML 数据类型。 在 InfoPath 中,可以使用万维网联盟 (W3C) 建议中的任何 XML 1.0 数据类型。 若要使用表中未列出的数据类型,必须提取表单模板的表单文件,并编辑架构 (.xsd) 文件。 在 “另请参阅 ”部分中查找有关提取表单模板的表单文件的详细信息的链接。

数据命名空间 定义统一资源标识符 (URI) 以添加自定义数据类型的命名空间。 此属性可用于具有 Custom 数据类型属性的元素或属性字段。 将自定义控件添加到表单模板时,此属性通常包含由绑定到字段的自定义控件的作者定义的值。

默认值 定义用户首次打开窗体时元素或属性字段的初始值。 还可以将公式添加到默认值,例如当前日期、数学计算或对另一字段的引用。

重复 定义元素字段、属性字段或组是否可以在窗体中多次出现。 列表控件、重复节、重复表以及属于重复节或重复表的控件绑定到重复字段和重复组。

不能为空 定义元素或属性字段是否必须包含值。 如果字段没有值,则绑定到此字段的控件使用红色星号标记,或者,对于某些类型的控件,将标记红色虚线边框。 此属性仅适用于字段。 它不适用于组。

返回页首

辅助数据源

辅助数据源是格式的数据源,其中包含通过其他数据连接提供给外部数据源的数据。 例如,假设你要为支出报表创建一个表单模板,并且希望基于表单模板的表单接受其他货币的支出。 但是,货币数据存储在数据库中。 若要显示货币数据,请向该数据库添加数据连接。 然后,货币数据存储在辅助数据源中,并显示在表单模板上的列表框控件中。

来自其他数据连接的数据存储在辅助数据源中,然后在控件(如列表框、组合框或下拉列表框控件)中显示为选项,供用户在填写表单时选择。 当用户选择辅助数据源中的项时,所选内容将复制到主数据源中的字段。

辅助数据源与主数据源在以下方面不同:

  • 辅助数据源在表单模板中是可选的。 所有表单模板都必须具有主数据源。
  • 表单模板可以有一个或多个辅助数据源,但只能有一个主数据源。
  • 辅助数据源中的字段和组基于数据在外部数据源中的存储方式,外部数据源使用数据连接连接到表单。 无法使用 InfoPath 修改这些字段和组。
  • 与主数据源不同,辅助数据源不随窗体一起保存。
  • 当用户提交已完成的表单时,通常不会提交辅助数据源中的数据。 但是,可以将表单模板配置为使用规则将辅助数据源中的数据提交到 Web 服务,或使用自定义代码将电子邮件收件人提交。

创建辅助数据源

将数据连接添加到将数据返回到表单的外部数据源时,InfoPath 会自动创建辅助数据源。 添加到表单模板的每个数据连接都会创建相应的辅助数据源。 与将字段和组添加到主数据源的方式相同,InfoPath 会将字段和组添加到辅助数据源。 字段和组将添加到辅助数据源,以便它们映射到外部数据源存储数据的方式。 可以创建到以下内容的辅助数据连接:

  • Web 服务
  • XML 文件
  • Microsoft Office Access 数据库或 Microsoft SQL Server 数据库
  • 运行Microsoft Windows SharePoint Services的站点上的列表

向表单模板添加数据连接并创建辅助数据源时,可以在“ 数据源 ”任务窗格中查看辅助数据源中的字段和组。 此任务窗格中显示了每个辅助数据源,数据连接的名称后跟括号中的 “辅助 ” 。

622b7ec5-468e-43d5-af9a-c0304501dcd2

修改辅助数据源

由于辅助数据源中的字段和组基于与外部数据源的数据连接,因此不能修改辅助数据源中的字段和组。 在“数据源”任务窗格中查看辅助 数据源 时, 字段具有锁定字段图标9565f170-ae5b-463d-96cd-fe5a7743585f ,组具有锁定的组图标 48ccc619-08c3-445c-85b5-0862d1126b2e 以指示无法修改它们。

返回页首

了解数据源与 XML 架构之间的关系

当用户填写基于表单模板的表单时,表单的主要和辅助数据源将作为 XML 文档存储在用户的计算机上。 XML 文档的结构由 XML 架构定义。 XML 架构是基于 XML 的文件,用于定义 XML 文档的结构和元素(在本例中为窗体)以及元素可以包含的数据。

创建表单模板时,InfoPath 会自动创建 XML 架构,用于定义用户将填写的表单的结构。数据源中的每个字段或组对应于 XML 架构中的元素。 数据源中每个字段和组的属性定义相应元素的结构以及每个元素可以包含在生成的 XML 文档中的数据。 可以在“字段或组属性”对话框中的“详细信息”选项卡上查看其他架构详细信息,可以通过双击“数据源”任务窗格中的字段或组来打开该选项卡。

返回页首