设计供脱机使用的表单模板

应用对象
InfoPath 2010 InfoPath 2013

本文内容

了解脱机表单

您可能需要设计一个 Microsoft Office InfoPath 表单模板,用户可以在计算机与网络断开连接时填写该模板。 例如,可以设计一个表单模板,保险理算员可以在调查索赔时在字段内使用。 表单模板包含从外部数据库向表单提供数据的辅助数据连接。 调整器需要此数据才能填写表单。 当保险理算员仍在办公室并连接到网络时,可以基于此表单模板创建一个表单,然后将该表单保存在他或她的计算机上。 在 字段中,调整器随后可以打开并填写表单,而无需连接到网络。 返回办公室并重新连接到网络后,调整器可以提交表单。

默认情况下,保存在计算机上的表单无需网络连接即可工作。 当用户基于表单模板创建表单时,InfoPath 会在用户的计算机上下载并存储该表单模板的副本。 每当用户打开基于该表单模板的表单时,InfoPath 首先检查是否存在与计算机的网络连接。 如果存在网络连接,InfoPath 会检查从中下载表单模板的位置,以确定是否存在表单模板的更新版本。 如果存在更新的版本,InfoPath 将更新用户计算机上的表单模板。 如果不存在网络连接,InfoPath 将使用存储在用户计算机上的表单模板版本。

为了设计供脱机使用的表单模板,表单模板必须存储在用户的计算机上,并且用户完成表单所需的任何数据(如列表框中的项目)都必须可供用户使用,即使计算机未连接到网络也是如此。 这些控件中的数据从辅助数据连接提供给外部数据源。 此数据可以存储在用户计算机的表单模板中,也可以存储在名为缓存的特殊存储位置中。

将辅助数据连接添加到从外部数据源查询数据的表单模板时,InfoPath 会将查询发送到该外部数据源。 查询的结果随后存储在表单模板中。 当用户基于此表单模板创建新表单时,保存到表单模板的数据可供用户使用。

当窗体使用此辅助数据连接将列表框或组合框控件的内容更新为来自外部数据源的最新数据时,如果计算机连接到网络,InfoPath 会将此查询的结果存储在名为缓存的特殊存储位置中。 InfoPath 使用此缓存中的数据向这些控件提供数据。

若要使辅助数据连接中的数据可供用户使用,即使其计算机未连接到网络,也可以执行以下操作之一或两项:

  • 将外部数据源中的数据存储在表单模板中。
  • 在窗体打开时使用辅助数据连接。

将辅助数据连接配置为在用户计算机脱机时正常工作后,还可以将表单模板配置为从外部数据源检索最新数据。 可以将表单模板配置为检索最新数据 (,方法是将表单中现有数据的可用性限制为指定的天数) 然后添加一个获取最新数据的按钮。

将数据存储在表单模板中

创建辅助数据连接时,可以通过在“数据连接向导”中选择“在表单模板中存储数据的副本检查”框,将辅助数据连接中的数据存储在表单模板中。

49b2ffae-6fb9-4eda-8c89-27485eacf8b6

选中此检查框时,InfoPath 使用数据连接从外部数据源检索数据。 然后,它将此数据存储在表单模板中。 当用户基于表单模板创建窗体或打开现有表单时,表单模板的副本以及存储的数据将下载到用户的计算机。 如果用户的计算机在创建表单时连接到网络,则每当窗体使用此数据连接时,InfoPath 将从外部数据连接中检索数据。 如果用户在创建表单时未连接到网络,InfoPath 将使用存储在用户计算机上的表单模板中的数据。

由于数据是在创建数据连接时检索的,因此在用户基于此表单模板创建表单时,外部数据源可能已更新。 如果希望用户在基于表单模板创建新窗体或打开现有表单时从外部数据源接收最新数据,则应将表单设计为在表单首次打开时使用辅助数据连接。

在窗体打开时使用辅助数据连接

如果希望用户从外部数据源接收最新数据,而不是使用表单模板中存储的数据,请在创建辅助数据连接时,在“数据连接向导”中选择“打开表单时自动检索数据检查”框。077f98b5-414f-43dc-82c3-2e1491a57413

当用户在连接到网络时创建新表单时,InfoPath 使用此辅助数据连接从外部数据源检索最新数据。 此数据存储在缓存中。 如果用户打开保存在其计算机上的现有表单,InfoPath 将检查计算机是否已连接到网络。 如果计算机已连接到网络,InfoPath 会使用此数据连接从外部数据源检索最新数据。 如果用户脱机工作,InfoPath 将使用存储在缓存或表单模板中的数据。

注意

从辅助数据源检索到的数据以纯文本形式存储在计算机中。 如果使用辅助数据连接从外部数据源检索敏感数据,则可能需要禁用此功能,以帮助防止在计算机丢失或被盗的情况下未经授权使用数据。 如果禁用此功能,则仅当用户连接到网络时,数据才可用。

获取最新数据

如果定期更新外部数据源,则可以配置表单模板,以允许用户通过辅助数据连接检索最新数据。 为此,可以将当前存储在缓存中的数据的可用性限制为指定的天数,然后可以使用表单中的所有辅助数据连接添加一个按钮,从任何外部数据源检索数据。 这样做有助于确保用户使用最新数据。

或者,可以通过设置希望数据在用户计算机上存储多长时间的到期日期来限制辅助数据连接中数据的可用性。62a65e34-a16d-4288-bcae-357f971b9d28

使用此选项时,InfoPath 使来自所有辅助数据连接的数据仅在指定的天数内可供表单使用。 经过该天数后,数据将不会显示在窗体中。 然后,你可以向窗体添加一个按钮,用户可以单击该按钮,以便通过使用表单中的特定辅助数据连接或所有辅助数据连接来检索数据。

注意

即使数据对表单不可用,在设置的天数过后,数据仍保留在用户的计算机上。 仅当操作系统使用此空间来存储其他内容时,才会覆盖数据。

返回页首

创建与 SQL 数据库的数据连接以供脱机使用

在向表单模板添加Microsoft SQL Server数据库的辅助数据连接之前,需要数据库管理员提供的以下信息。

  • 存储用于此表单模板的数据库的服务器的名称。
  • 将用于此表单模板的数据库的名称。
  • 数据库所需的身份验证。 数据库可以使用Microsoft Windows 身份验证或SQL Server身份验证来确定用户如何访问数据库。
  • 包含要发送到窗体的数据的表的名称。 这是主表。 如果计划在数据库中使用多个表,则需要这些其他子表的名称。 还需要子表中与主表中字段具有关系的字段的名称。
  • 是否可以安全地将查询结果存储在窗体中以供脱机使用。

获取此信息后,可以使用以下过程创建与 SQL 数据库的数据连接以供脱机使用。

  1. “工具 ”菜单上,单击“ 数据连接”。

  2. 在“ 数据连接 ”对话框中,单击“ 添加”。

  3. 在“数据连接向导”中,单击“ 创建新连接”,单击“ 接收数据”,然后单击“ 下一步”。

  4. 在向导的下一页上,单击“数据库 (Microsoft SQL Server或仅Microsoft Office Access) ”,然后单击“下一步”。

  5. 在向导的下一页上,单击“ 选择数据库”。

  6. “选择数据源 ”对话框中,单击“ 新建源”。

  7. 在“要连接到哪种类型的数据源”列表中,单击“Microsoft SQL Server,然后单击”下一步”。

  8. 在“ 服务器名称 ”框中,键入存储数据库的服务器的名称。

  9. “登录凭据”下,执行以下操作之一:

    • 如果数据库根据Microsoft Windows 网络中使用的凭据确定谁有权访问服务器,请单击“ 使用 Windows 身份验证”。
    • 如果数据库根据从数据库管理员那里获取的指定用户名和密码确定谁有权访问服务器,请单击“使用以下用户名和密码”,然后在“用户名”和“密码”框中键入该用户名和密码。
  10. 单击“下一步”。

  11. 在向导的下一页上,在“选择包含所需数据的数据库”列表中,单击要使用的数据库,选择“连接到特定表检查”框,单击主表的名称,然后单击“下一步”。

  12. 在向导的下一页上,在“ 文件名 ”框中,键入存储数据连接信息的文件的名称。

  13. 若要保存这些设置,请单击“ 完成”。

  14. 添加要在查询数据连接中使用的任何其他表。
    如何?

    1. 单击“ 添加表”。
    2. 在“ 添加表或查询 ”对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 若要添加关系,请单击“ 添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击“ 确定”。
    3. 单击“完成”
    4. 若要添加其他子表,请重复这些步骤。
  15. 单击“下一步”。

  16. 如果希望即使用户的计算机未连接到网络,此辅助数据连接中的数据也可用,请选择“在表单模板中存储数据副本检查框。 选中此检查框时,InfoPath 会查询外部数据源并将结果存储在表单模板中。

    注意

    选中此检查框会将查询结果存储在表单模板中。 由于数据存储在表单模板中,因此,即使其计算机未连接到网络,也可在用户填写的表单中使用该数据。 如果要从此数据连接获取敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时保护数据。

  17. 单击“下一步”。

  18. 在向导的下一页上,键入此辅助数据连接的描述性名称。 验证 “摘要 ”部分中的信息是否正确。 若要允许用户在基于此表单模板创建新窗体或打开现有窗体时使用此辅助数据连接,请选择“打开窗体时自动检索数据检查框。

返回页首

创建与 Access 数据库的数据连接以供脱机使用

在向表单模板添加 Access 数据库的辅助数据连接之前,需要数据库管理员提供的以下信息。

  • 数据库的名称和位置。

    注意

    还需要知道数据库是否位于用户可访问的网络位置。 如果网络上的其他用户基于此表单模板创建表单,则数据库必须位于用户可访问的网络位置。

  • 如果表单模板将仅查询数据库,则需要提供发送到数据库的查询结果的表的名称。 配置查询数据连接时,此表将是主表。

  • 主表可能需要从中获取数据的任何其他表的名称。 在大多数情况下,表关系已在数据库中建立。 如果必须在主表与另一个表之间建立关系,则需要这两个表中的相关字段名称。

获取此信息后,可以使用以下过程创建与 Access 数据库的数据连接以供脱机使用。

  1. “工具 ”菜单上,单击“ 数据连接”。

  2. 在“ 数据连接 ”对话框中,单击“ 添加”。

  3. 在“数据连接向导”中,单击“ 创建新连接”,单击“ 接收数据”,然后单击“ 下一步”。

  4. 在向导的下一页上,单击“数据库 (Microsoft SQL Server或仅Microsoft Office Access) ”,然后单击“下一步”。

  5. 在向导的下一页上,单击“ 选择数据库”。

  6. “选择数据源 ”对话框中,浏览到数据库的位置。

    注意

    如果数据库存储在网络位置中,请浏览到该位置的 UNC 路径。 不要通过映射的网络驱动器浏览到网络位置。 如果使用映射网络驱动器,则基于此表单模板创建的表单将从映射的网络驱动器中搜索数据库。 如果用户没有映射的网络驱动器,则窗体将找不到数据库。

  7. 单击数据库的名称,然后单击“ 打开”。

  8. “选择表 ”对话框中,单击要使用的主表,然后单击“ 确定”。

  9. 在向导的下一页上,选择“检查显示表列”框。
    默认情况下,表中的所有字段都将添加到表单模板的主数据源。

  10. “数据源结构”下,清除不希望包含在主数据源中的字段的检查框。
    添加要在此数据连接中使用的任何其他表或查询。
    如何?

    1. 单击“ 添加表”。
    2. 在“ 添加表或查询 ”对话框中,单击子表的名称,然后单击“ 下一步”。 InfoPath 尝试通过匹配两个表中的字段名称来设置关系。 如果不想使用建议的关系,请选择该关系,然后单击“ 删除关系”。 若要添加关系,请单击“ 添加关系”。 在“ 添加关系 ”对话框中,单击相应列中每个相关字段的名称,然后单击“ 确定”。
    3. 单击“完成”
    4. 若要添加其他子表,请重复这些步骤。
  11. 单击“下一步”。

  12. 若要使此辅助数据连接中的数据即使用户的计算机未连接到网络也可用,请选择“在表单模板中存储数据副本检查”框。 选中此检查框时,InfoPath 会查询外部数据源并将查询结果存储在模板中。

    注意

    选中此检查框会将查询结果存储在表单模板中。 由于数据存储在表单模板中,因此,即使其计算机未连接到网络,也可在用户填写的表单中使用该数据。 如果要从此数据连接获取敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时保护数据。

  13. 单击“下一步”。

  14. 在向导的下一页上,键入此辅助数据连接的描述性名称。 验证 “摘要 ”部分中的信息是否正确。 若要允许用户在基于此表单模板创建新窗体或打开现有窗体时使用此辅助数据连接,请选择“打开窗体时自动检索数据检查框。

返回页首

创建与 SharePoint 文档库的数据连接以供脱机使用

在向表单模板添加辅助数据连接之前,需要站点管理员提供的以下信息。

  • Microsoft Windows SharePoint Services站点的位置,以及访问它所需的权限。
  • 验证网站是否已配置,以便用户可以访问文档库或列表中的数据。
  • 验证是否可以将文档库或列表中的数据存储在用户的计算机上以供脱机使用。

获取此信息后,可以使用以下过程创建与 Access 数据库的数据连接以供脱机使用。

  1. “工具 ”菜单上,单击“ 数据连接”。

  2. 在“ 数据连接 ”对话框中,单击“ 添加”。

  3. 在“数据连接向导”中,单击“ 创建新连接”,单击“ 接收数据”,然后单击“ 下一步”。

  4. 在向导的下一页上,单击“ SharePoint 库或列表”,然后单击“ 下一步”。

  5. 在向导的下一页上,使用文档库或列表键入 SharePoint 网站的 URL,然后单击“ 下一步”。

  6. 在向导的下一页上,在 “选择列表或库 ”列表中,单击要使用的列表或库,然后单击“ 下一步”。

  7. 在向导的下一页上,选择将向表单模板提供数据的字段旁边的检查框。 如果表单模板将发布到文档库,并且希望基于此表单模板的表单检索有关表单的元数据,请选择“仅检查包含活动表单的数据”框。

  8. 单击“下一步”。

  9. 若要使此辅助数据连接中的数据即使用户的计算机未连接到网络也可用,请选择“在表单模板中存储数据副本检查”框。 选中此检查框时,InfoPath 会查询外部数据源并将查询结果存储在表单模板中。

    注意

    选中此检查框会将查询结果存储在表单模板中。 由于数据存储在表单模板中,因此,即使其计算机未连接到网络,也可在用户填写的表单中使用该数据。 如果要从此数据连接获取敏感数据,则可能需要禁用此功能,以帮助在计算机丢失或被盗时保护数据。

  10. 单击“下一步”。

  11. 在向导的下一页上,键入此辅助数据连接的描述性名称,然后验证 “摘要 ”部分中的信息是否正确。

  12. 若要允许用户在基于此表单模板创建新窗体或打开现有窗体时使用此辅助数据连接,请选择“打开窗体时自动检索数据检查框。

返回页首

配置数据可用性

如果外部数据源定期使用新数据进行更新,则可以配置表单模板,使任何缓存的数据都可用。 此数据可用于基于此表单模板的表单,在与外部数据源的更新计划相对应的有限天数内。 通过基于此表单模板限制数据可用于表单的天数,可以要求用户定期更新外部数据源中的数据。

若要更新数据,可以向表单模板添加一个按钮,用户可以单击该按钮来更新表单模板中使用的所有辅助数据连接中的数据。

注意

如果使用按钮刷新数据连接,请仅告知用户连接到网络时单击此按钮。

指定缓存数据的可用天数

此设置适用于表单模板中的所有辅助数据连接。

  1. “工具 ”菜单上,单击“ 窗体选项”。
  2. “类别 ”列表中的“ 窗体选项 ”对话框中,单击“ 脱机”。
  3. “脱机”下,选择“存储查询返回的数据以便可在脱机模式检查”框。
  4. 单击“ 存储查询在此天数后过期”。
  5. 在列表中,选择希望缓存数据可供表单使用的天数。

添加用于刷新数据连接的按钮

  1. 如果表单模板具有多个视图,请单击“视图”菜单上的视图名称”,转到包含要显示辅助数据源数据的控件的视图。

  2. 如果看不到“控件”任务窗格,请单击“插入”菜单上的“其他控件”,或按 Alt+I、C。

  3. 将按钮控件拖到表单模板上。

  4. 双击刚刚添加到表单模板的按钮控件。

  5. 单击“常规”选项卡。

  6. “操作” 列表中,单击“ 刷新”。

  7. 在“ 标签 ”框中,键入要在按钮上显示的名称。

  8. 单击“设置”。

  9. 在“ 刷新 ”对话框中,执行以下操作之一:

    • 若要将按钮配置为通过此数据连接检索最新数据,请单击“ 一个辅助数据源”。
    • 若要将按钮配置为通过所有辅助数据连接检索最新数据,请单击“ 所有辅助数据源”。
  10. “选择辅助数据源 ”列表中,单击与查询数据连接关联的辅助数据源。

  11. 单击“ 确定” 关闭所有打开的对话框。

  12. 要测试所做的更改,请单击“常用”工具栏上的“预览”,或者按 Ctrl+Shift+B。

返回页首

禁用脱机使用

在某些情况下,你需要设计一个表单模板,以仅允许用户在连接到网络时填写表单。 例如,如果表单模板与包含敏感或机密数据的外部数据源建立了数据连接,则可能需要将表单模板配置为仅允许以连接状态填写表单。 通过以这种方式配置表单模板,可以在计算机丢失或被盗时帮助保护数据,因为数据未存储在用户计算机上。

若要将表单模板配置为允许用户仅当计算机连接到网络时才填写表单,请完成以下步骤。

  1. “工具 ”菜单上,单击“ 窗体选项”。
  2. “类别 ”列表中的“ 窗体选项 ”对话框中,单击“ 脱机”。
  3. “脱机”下,清除“允许用户在数据不可用时填写此表单”框检查。

返回页首