提交表单数据介绍

应用对象
InfoPath 2010 InfoPath 2013

本文内容

概述

使用 Microsoft Office InfoPath 表单作为较大业务流程的一部分收集数据时,这些数据通常不会保留在用户填写的表单中。相反,表单数据从窗体移动到业务流程的下一阶段,通常移动到外部数据源,例如数据库、Web 服务或 Web 服务器上的应用程序。 例如,员工可以使用 InfoPath 填写费用报表窗体,然后将该表单提交到 Web 服务,可在其中处理表单。

6689bb4c-bf3a-4ae0-808a-45d791736308

与保存表单不同,用户在填写表单时选择存储表单的位置,提交表单会将表单数据发送到设计与表单关联的表单模板时定义的特定位置。 设计表单模板并启用表单提交时,可以选择将用户在表单中输入的数据提交到以下位置:

  • Microsoft Office Access 或 Microsoft SQL Server 数据库
  • Web 服务
  • 运行Microsoft Windows SharePoint Services的服务器
  • 在电子邮件中
  • Web 服务器上的应用程序
  • 托管 InfoPath 的自定义应用程序

指定表单中数据的提交位置可以提高业务流程的准确性和效率,因为这样可以更好地控制这些流程。 在用户可以提交其表单数据之前,InfoPath 可确保表单中的数据有效,并允许用户更正任何无效数据。 此功能可帮助确保仅将有效数据发送到外部数据源。

除了设计表单模板以允许用户将其数据提交到单个位置外,还可以设计表单模板,以便用户可以同时将其表单数据提交到多个位置。 例如,可以设计支出报表表单模板,以便当用户提交其已完成的表单时,表单的数据将发送到数据库,并且每个已完成的表单的副本也会通过电子邮件发送给其经理。

每当设计可提交到外部数据源的表单模板时,InfoPath 都会打开“文件”菜单上的“提交”命令,以及默认情况下Standard工具栏上的“提交”按钮。 根据需求,可以选择更改 “提交” 命令的名称。 此外,还可以直接在表单模板上插入一个按钮,用户可以单击该按钮以在填写完表单后提交其表单数据。

还可以设置表单模板,以便在提交表单后出现以下任一情况:

  • 现有窗体将关闭。
  • 现有窗体将关闭,并打开一个新的空白窗体。
  • 现有窗体保持打开状态。

此外,可以编写在用户提交表单后显示的消息,以指定表单是否已成功提交。

返回页首

将表单数据提交到 Access 或 SQL Server 数据库

InfoPath 表单经常提交到数据库,无论是使用客户记录更新单个表,还是针对更复杂的方案,例如修改费用报表表单模板中链接在一起的多个表。 可以在 InfoPath 中设计表单模板,以便可以直接将其提交到 Access 或 SQL Server 数据库,而无需使用脚本或自定义代码。 还可以通过使用自定义代码或将表单提交到连接到该数据库的 Web 服务,将表单数据提交到其他类型的数据库。

若要将表单提交到 Access 或 SQL Server 数据库,必须设计基于该数据库的表单模板。 这可确保表单模板的数据源与数据库的结构匹配。 如果将数据库连接添加到现有表单模板,用户将无法将其已完成的表单提交到数据库,因为表单的数据源与数据库的结构不匹配。 如果表单模板与数据库的结构不匹配,则提交数据时 InfoPath 无法更新数据库中的正确字段。

设计基于数据库的 InfoPath 表单模板时,请注意以下问题:

  • 将表单模板连接到数据库中的多个表时,这些表必须通过键字段进行连接。
  • 长数据类型(如图片、图像、OLE 对象、文件附件和 Access 备注或 SQL 数据类型)应从数据连接中排除。 InfoPath 不支持与这些长数据类型建立数据连接。 若要排除数据库中的特定字段,请使用数据连接向导设置数据连接。

可以通过阅读数据连接向导最后一页的 “摘要 ”框中的信息来确定这些问题是否适用。 “摘要”指出表单提交是否已启用,如果禁用,“摘要”将说明原因。

在表单模板和数据库之间设置数据连接后,可以自定义所需的任何其他提交选项。 例如,可以更改表单模板中“ 提交 ”按钮上显示的文本。 还可以更改向用户显示的邮件,以指示表单是否已成功提交,并且可以指定在提交后是否使表单保持打开状态。

返回页首

将表单数据提交到 Web 服务

无论是使用 Web 服务为业务流程建立工作流,还是作为数据库上的中间层,InfoPath 都可以轻松地创建与 Web 服务交互的表单模板。 InfoPath 有一个数据连接向导,指导你完成将表单模板连接到 Web 服务的过程。

设计将表单提交到 Web 服务的表单模板有两种常见方法:

  • 将现有表单模板连接到 Web 服务
  • 设计基于 Web 服务的新表单模板

通过这两种方法,InfoPath 会创建一个基于 Web 服务的架构的数据源。 这样,基于表单模板的表单就可以将数据提交到 Web 服务。

技术细节

当用户将表单提交到 Web 服务时,表单将作为可扩展标记语言 (XML) SOAP 信封中的数据发送。 SOAP 信封用作指定 Web 服务操作的输入参数。 你可以将此与使用 HTTP 提交表单进行比较,这会导致在 HTTP POST 请求中生成 XML 文档。

在将 InfoPath 表单模板连接到 Web 服务之前,请考虑以下事项:

  • InfoPath 无法连接到使用远程过程调用 (RPC) 编码样式的 Web 服务。 仅支持文档文本编码。
  • 配置表单模板以便其表单可以将数据提交到 Web 服务时,可以指定只能提交某些字段或组中的数据,或者可以提交表单中的所有数据。

设置到 Web 服务的数据连接后,可以将“ 提交 ”按钮添加到表单模板,并自定义所需的任何其他提交选项。

返回页首

将表单数据提交到运行 Microsoft Windows SharePoint Services 的服务器

可以设计一个表单模板,用于将数据提交到运行Microsoft Windows SharePoint Services的服务器。 通过执行此操作,可以在文档库中存储和组织所有用户的表单。 此外,用户可以直接从文档库填写基于表单模板的表单。 他们还可以将表单数据导出到 office Excel Microsoft,或将多个表单中的数据合并到单个窗体中。 此外,当启用表单提交到文档库时,可以使用静态值、基于表单中的数据的值或使用公式来预定义表单的文件名。

将表单模板配置为允许将表单提交到 SharePoint 文档库后,您可以向表单添加“ 提交 ”按钮并自定义其他提交选项,例如“ 提交 ”按钮上的文本、向用户显示以指示表单是否已成功提交的消息,以及提交后是否保持表单打开状态。

返回页首

在电子邮件中提交表单数据

使用电子邮件程序是为业务流程设置工作流的最简单且最常见的方法之一。 可以设计 InfoPath 表单模板,让用户单击Standard工具栏或“文件”菜单上的“提交”按钮,以附件或电子邮件正文的形式发送已完成的表单。 在设计表单模板时,可以预定义电子邮件地址、主题行和附件文件名-使用静态值、基于表单中条目的值,或者使用公式。 例如,可以设计表单模板,以便使用预定义主题行的电子邮件自动将已完成的表单发送到基于表单中条目的电子邮件地址。 此外,根据用户在表单中输入的数据,可以为表单定义动态文件名。

为了使用户将其表单作为电子邮件提交,他们必须在其计算机上安装Microsoft Office Outlook 2003 或 Microsoft Office Outlook 2007。 在 Web 浏览器中填写表单的用户不需要 Outlook 以电子邮件形式提交其表单。

将表单模板配置为允许在电子邮件中提交表单后,可以将“提交”按钮添加到Standard工具栏,将“提交”命令添加到表单模板的“文件”菜单,并自定义任何其他提交选项,例如“提交”上显示的文本按钮,即向用户显示的消息,用于指示表单是否已成功提交,以及提交后是否要使表单保持打开状态。

返回页首

将表单数据提交到 Web 服务器上的应用程序

如果 Web 服务器上现有的 Active Server Pages (ASP) 页或可处理 XML 数据的其他代码,则可以设计表单模板,以便用户可以使用 HTTP POST 方法将已完成的表单提交到该 Web 服务器。 将表单模板配置为允许用户以这种方式提交其表单时,InfoPath 会创建一封包含表单数据的邮件,然后将此邮件发送到 Web 服务器。 设计表单模板以将数据提交到 Web 服务器时,可以向表单模板添加“ 提交 ”按钮,指定“ 提交 ”按钮上显示的文本,自定义向用户显示的邮件以指示表单是否已成功提交,并指定是否在提交后保持表单打开状态。

返回页首

使用数据连接文件提交表单数据

在 Microsoft Office InfoPath 2007 中,还可以创建一个名为数据连接文件的 XML 文件,该文件包含数据连接所需的所有设置。 您可以将该文件存储在 Microsoft Office SharePoint 服务器 2007 网站的数据连接库中,然后设计多个使用同一 XML 文件的表单模板来配置数据连接。 使用数据连接文件意味着,如果数据连接发生任何更改(例如,外部数据源的位置发生更改),则可以更新数据连接文件一次,而不是更新每个表单模板中的数据连接。 使用数据连接文件的所有表单模板都将使用新设置自动更新。

数据连接文件可以包含确定用户如何提交其表单数据的设置。 可以设计表单模板以使用此数据连接文件中的设置。 将表单模板配置为允许表单提交后,可以将“提交”命令添加到“文件”菜单,并将“提交”按钮添加到基于表单模板的表单上的Standard工具栏,然后自定义任何其他提交选项,例如“提交”上显示的文本按钮和命令,显示给用户以指示表单是否已成功提交以及提交后是否要使表单保持打开状态的消息。

返回页首

使用代码提交表单数据

若要在表单模板中创建用于提交表单数据的高级功能,可以使用 Microsoft Visual Basic .NET、Microsoft Visual C# .NET 或脚本编写托管代码。 例如,可以向表单模板添加功能,使表单可以同时提交到多个位置,或者添加到 InfoPath 通常不支持的外部数据源。

提示

如果无法将表单模板配置为允许用户使用 InfoPath 数据连接选项将其表单提交到外部数据源,则可以使用此功能将自己的数据连接实现写入到该外部数据源。

返回页首