重要
对 Microsoft InfoPath 2013 的支持已于 2026 年 7 月 14 日结束。 建议将现有的 InfoPath 表单和工作流迁移到受支持的 Microsoft 365 解决方案。 了解有关 InfoPath 停用的详细信息。
可以设计 Microsoft Office InfoPath 表单,以显示与工作流的当前状态对应的特定数据。 为此,您可以设计表单模板,以使用根据工作流状态在其表单中启动操作的规则。 这可以简化人们用于填写表单的流程。
本文介绍如何设计支出报表窗体模板,以根据关联审批工作流的状态自动显示窗体模板的不同视图。 例如,在工作流启动之前,窗体将显示一个“支出”视图,其中包含一个重复表,用户可以在其中输入支出。 当工作流状态为 In Progress 时,窗体将显示“费用摘要”视图,其中显示每个类别中的总支出。 当工作流状态为 “已完成”时,窗体将显示“已完成”视图,其中包括有关估计报销时间的详细信息。
若要使表单能够响应工作流状态,必须在表单所在的 Microsoft Office SharePoint 服务器 2007 网站或 Windows SharePoint Services 3.0 网站上执行任务,并在 InfoPath 中执行任务。 在 SharePoint 网站上,必须创建工作流和网站内容类型,并且在 InfoPath 中,必须添加与表单模板的数据连接、创建规则并发布表单模板。
注意
本文使用一个示例方案,其中表单模板发布为网站内容类型。 还可以将表单模板发布到共享网络位置,或在将表单模板发布到 SharePoint 网站时创建新的文档库。 在“ 另请参阅 ”部分查找有关发布表单模板的详细信息。
本文内容
- 工作流与 InfoPath 表单结合使用的简介
- 兼容性注意事项
- 准备工作
- 第 1 步:将审批工作流添加到库
- 第 2 步:添加与表单模板的数据连接
- 第 3 步:将规则添加到表单模板以显示特定视图
- 步骤 4:将表单模板发布为网站内容类型
- 步骤 5:向文档库添加内容类型
工作流与 InfoPath 表单结合使用的简介
工作流通过对 Microsoft Office SharePoint 服务器 2007 网站或 Windows SharePoint Services 3.0 网站中的文档和项目实施特定的业务流程,帮助人们协作处理文档和管理项目任务。 工作流程帮助组织遵守一致的业务流程,它们还通过管理特定业务流程中涉及的任务和步骤来提高组织效率和生产力。 这使执行这些任务的人员能够专注于执行工作,而不是管理工作流程。
可以启用 InfoPath 表单来显示与工作流的当前状态对应的特定数据。 为此,您可以设计表单模板,以使用根据工作流状态在表单中启动操作的规则。 这可以简化人们用于填写表单的流程。 例如,您可以启用窗体以在工作流的状态为 “完成” 时显示只读视图,因此不应更改窗体中的数据。
必须将工作流添加到 SharePoint 列表、库或内容类型,以使其可在 InfoPath 表单模板中使用。 网站的可用工作流也因网站类型以及自定义工作流是否是使用 Microsoft Office SharePoint Designer 2007 创建而异。
本文使用审批工作流来说明如何将工作流与 InfoPath 表单模板一起使用。 审批工作流将保存到库的 InfoPath 表单路由给一组人员以供审批。 默认情况下,审批工作流与文档内容类型关联,并自动在文档或表单库中使用。
每个工作流都由具有描述性名称(例如“ 正在进行”)的不同状态定义。 状态的名称因工作流类型而异。 例如,审批工作流(在运行 Microsoft Office SharePoint 服务器 2007 的服务器上可用)包括“ 正在进行”、“ 已取消”和 “已完成”的状态。 三态工作流(在 Windows SharePoint Services 3.0 中可用)的状态可以由将工作流添加到库或列表的人员定义,而其他工作流使用标准状态,例如前面提到的“正在进行”状态。 尽管描述性名称对用户可见,但工作流状态是以编程方式用数值表示的。 若要设计表单模板以响应特定的工作流状态,必须知道要使用的工作流状态的数值。 这是因为 InfoPath 使用工作流的数值来启动操作,例如切换视图。
如之前所述,您可以启用 InfoPath 表单模板来显示与工作流的当前状态对应的特定数据。 虽然本文介绍了如何启用支出报表窗体模板以根据其在工作流中的状态自动显示特定视图,但您还可以通过添加其他操作来自定义工作流。 例如,可以使窗体显示显示说明的对话框消息,而不是启用窗体显示特定视图。 您可以使用三态工作流,而不是使用审批工作流。
注意
如果启用本文中描述的操作以外的其他操作,则可能需要执行其他步骤来帮助确保表单模板在所用工作流中正常工作。
兼容性注意事项
如果计划创建与浏览器兼容的表单模板,请记住,在 Microsoft Office 文档(包括 InfoPath 表单)中填写表单时可见的文档操作栏在用户在 Web 浏览器中填写的与浏览器兼容的表单模板中不可见。 但是,您仍然可以在工作流中使用基于浏览器的表单。 若要更改此类表单的工作流状态,工作流参与者可以使用文档库设置。 在“ 另请参阅 ”部分查找有关使用 SharePoint 网站更改工作流设置的详细信息。
开始之前
在执行本文中的任务之前,请确保满足以下条件:
- 联系服务器场管理员,确认已为要使用的 SharePoint 网站安装并启用审批工作流。
- 请确保你至少具有 SharePoint 网站的设计权限级别。 发布表单模板和创建工作流需要此权限级别。
- 创建具有两个或多个视图的表单模板,并自定义每个视图以显示适用于每个工作流状态的数据类型。 例如,对于要在工作流完成时显示的视图,可以将该视图中的控件设置为只读。
- 创建文档或表单库,并确保库设置为允许多种内容类型。
第 1 步:将审批工作流添加到库
此方案侧重于审批工作流,但如果需要,可以使用其他工作流类型。 如果使用其他工作流类型,则该工作流的选项可能与本文中描述的工作流不同。
打开要添加工作流的库。
在 “设置 ”菜单上,单击要打开的库类型的设置。
例如,在文档库中,单击“文档库设置”。在 权限和管理下,单击 工作流设置。
单击 添加工作流。
在 添加工作流 页面的 工作流 部分中,单击 审批。
在 名称 部分中,键入工作流的唯一名称。
在“ 任务列表 ”部分中,指定要用于此工作流的任务列表。
注意
- 可以使用默认 任务 列表,也可以创建一个新列表。 如果使用默认任务列表,工作流参与者将能够使用任务列表的“我的任务”视图轻松查找和查看其工作流任务。
- 如果此工作流的任务将显示要与常规 任务 列表分开保存的敏感或机密数据,则应创建一个新的任务列表。
- 如果您的组织将具有大量工作流,或者工作流将涉及大量任务,则应创建一个新的任务列表。 在此实例中,您可能希望为每个工作流创建任务列表。
在“ 历史记录列表 ”部分中,选择要用于此工作流的历史记录列表。 历史记录列表显示每个工作流实例期间发生的所有事件。
可以使用默认 历史记录 列表,也可以创建一个新列表。 如果您的组织将有大量工作流,则可以为每个工作流创建单独的历史记录列表。要允许手动启动工作流,请选中 开始选项 部分中的 允许经过身份验证的用户通过编辑项权限手动启动此工作流 检查框。
若要要求其他权限才能启动工作流,请选中“需要管理列表权限才能启动工作流”检查框。
指定任何其他所需选项,包括何时希望启动工作流,然后单击 “下一步”。
在“自定义工作流”页上,指定所需的选项,包括任务的路由方式、默认工作流开始值以及工作流的完成方式,然后单击 “确定”。
在以下任一部分中选择选项。 不需要在每个部分中指定选项:
工作流任务目的 操作 (并行工作流) 一次将任务分配给所有参与者 同时 (并行) 选择“所有参与者 ”。 一次将任务分配给一个参与者,要求一个参与者完成一项任务,然后下一个参与者才能收到任务 (串行工作流) 一次选择 一个参与者 (串行) 。 允许工作流参与者将其任务重新分配给其他人 选中将任务重新分配给其他人检查框。 允许工作流参与者请求更改文档或项。 必须在任务完成前批准更改。 选中“完成任务之前请求更改”检查框。 默认工作流开始值
目的 操作 为此工作流的所有实例指定默认的参与者列表 键入工作流启动时要包括的参与者的姓名,或单击审 批者 ,然后从目录服务中选择人员和组。
注意: 名称之间以分号分隔。如果将此工作流设置为串行工作流,请按照要分配任务的顺序添加工作流参与者的名称。将单个任务分配给组,而不是为每个组成员分配单独的任务 选中“为输入的每个组分配单个任务” (“不展开组) 检查框。 允许启动工作流的人员更改或添加参与者 选中启动此工作流时允许对参与者列表进行更改检查框。 指定随每个任务一起显示的默认消息 在文本框中键入消息或说明。 为并行工作流指定截止日期 在 “任务截止日期”下输入 (并行) 的日期。 指定串行工作流参与者必须完成工作流任务的时间 在 “给每个人以下时间以完成其任务 (串行) ”下,键入一个数字,然后选择“ 第 (天) ”或“第 (周) ”作为时间增量。 指定应在工作流启动时) 接收警报 (而不是任务分配的人员列表 在 “通知其他人”下,键入要接收通知的人员的姓名,或单击“ 抄送” 并从目录服务中选择人员和组。
注意: 名称之间以分号分隔。完成工作流
目的 操作 指定当特定数量的参与者完成其任务时,并行工作流完成 选中以下完成的任务数检查框,然后键入数字。 指定在拒绝文档或项目时工作流已完成 选中“文档被拒绝”检查框。 指定在文档或项更改时工作流完成 选中“文档已更改”检查框。 完成后的工作流活动
目的 操作 工作流完成后更新文档或项目的审批状态 选择更新审批状态 (使用此工作流控制内容审批) 检查框。
注意:如果您正在使用审批工作流来管理库的内容审批,并且在添加工作流页面上选中了启动此工作流以批准发布项目的主要版本检查框,则默认情况下将选中此检查框。如果由于不希望此工作流成为库的默认内容审批工作流,而未选中“添加工作流”页面上的“启动此工作流以批准发布项目的主要版本”检查框,则可以选中此检查框,使此工作流成为特定用户可以手动启动的辅助内容审批工作流。
第 2 步:添加与表单模板的数据连接
以下过程说明如何添加辅助数据连接,以查询您在步骤 1 中添加的工作流的工作流状态。 此辅助数据连接提供的数据,使表单中的规则能够根据工作流的状态切换视图。
- 在 InfoPath 中的 “工具 ”菜单上,单击 “数据连接”。
- 在 “数据连接 ”对话框中,单击 “添加”。
- 在数据连接向导中,单击“ 创建新的连接”,单击 “接收数据”,然后单击 “下一步”。
- 在向导的下一页上,单击“ SharePoint 库或列表”,然后单击“ 下一步”。
- 在向导的下一页上,键入 SharePoint 网站的 URL。
- 在 “选择列表或库 ”列表中,单击在步骤 1 中添加审批工作流的文档库的名称,然后单击“ 下一步”。
- 在向导的下一页的“选择字段”列表中,选中与工作流名称匹配的字段名称旁边的检查框。
字段名称可能与工作流名称不完全匹配。 如果字段名称以下划线或字母以外的特殊字符开头,则将在列表中自定义工作流的名称。 - 选中“仅包括活动窗体的数据”检查框,然后单击“下一步”。
- 清除“在窗体模板中存储数据副本”检查框,然后单击“下一步”。
- 在向导的下一页的“ 输入此数据连接的名称”框中,键入此辅助数据连接的描述性名称。 此名称显示在“数据源”任务窗格的数据源列表中的内容。
- 若要在用户打开窗体时自动运行查询,请选中“窗体打开时自动检索数据”检查框。
- 在该向导的最后一页上,单击“完成”。
- 在 “数据连接 ”对话框中,单击 “关闭”。
第 3 步:将规则添加到表单模板以显示特定视图
设计表单模板时,可以使用规则自动显示对话框、设置字段值、查询窗体数据或将窗体数据提交到数据连接、切换视图或打开或关闭窗体以响应某些事件和条件。 事件可以包括对数据源中的特定字段或组的更改、按钮的单击、在重复表中插入重复部分或行,或者打开或提交表单。 条件可以包括计算、XPath 表达式和用户角色。 条件还可以包括字段的值为空、在指定范围内、等于另一个字段的值、或者以某些字符开头或包含某些字符。
在这种情况下,您将创建一个规则,以根据工作流状态切换视图。
在 “工具 ”菜单上,单击 “窗体选项”。
在 “类别 ”列表中,单击 “打开并保存”。
在 “打开行为”下,单击 “规则”。
在“ 打开表单规则” 对话框中,单击“ 添加”。
在 “名称 ”框中,键入规则的名称。
例如,键入 “切换视图”。要指定规则应运行的条件,请单击 设置条件。
在 “当此条件为 True 时应用规则”下的第一个框中,单击 “选择字段或组”。
在 “数据源 ”列表中,单击在步骤 2 中添加的辅助数据源的名称,然后单击 “确定”。
单击与工作流状态对应的字段名称。
可能需要展开窗口中的文件夹,直到看到所需字段。在 “条件” 对话框的第二个列表中,单击“ 等于”。
在第三个列表中,单击“ 键入一个数字”,然后键入与工作流状态相对应的值。
例如,对于工作流完成时显示的视图,请键入 5。
审批工作流中工作流状态的数值状态 数值 正在进行 2 已完成 5 已取消 15 已批准 16 已拒绝 17 注意
- 其他工作流中状态的数值可能有所不同。
- InfoPath 中工作流状态的值为只读。 这意味着您无法设计表单模板,以便用户可以通过在窗体本身上的控件中输入值来手动更改工作流的状态。
单击“确定”。
在 “规则” 对话框中,单击 “添加操作”。
在 操作下,单击 切换视图。
在 “视图”下,单击工作流状态与此条件的状态匹配时要显示的视图的名称,然后单击 “确定”。
例如,如果在步骤 11 中键入 2 ,请单击工作流状态等于“ 正在进行”时要显示的视图的名称。在“ 规则” 对话框中,单击“ 确定”。
重复步骤 4 到 16,创建其他规则,以便在工作流的每个阶段切换相应的视图。
步骤 4:将表单模板发布为网站内容类型
发布表单模板时,可以将其发布到文档库,也可以将其发布为可在网站集中的多个文档库中使用的网站内容类型。 由于已创建文档库并向其分配了工作流,因此必须将表单模板作为内容类型发布。 稍后,可以将表单模板的网站内容类型与创建的库相关联。
除了将表单模板发布为网站内容类型外,还可以在将表单模板发布到 SharePoint 网站时将表单模板发布到共享网络位置或创建新的文档库。 在“ 另请参阅 ”部分查找有关发布表单模板的详细信息。
在“文件”菜单上,单击“保存”。
在“ 另存为” 对话框中,浏览到要保存表单模板的位置,然后单击“ 保存”。
若要打开“设计检查器”任务窗格,请单击“工具”菜单上的“设计检查器”。
如果 “设计检查器 ”任务窗格中列出了错误,请修复这些错误,然后单击 “刷新 ”以确定错误是否仍然存在。
在 “文件 ”菜单上,单击 “发布”。
在发布向导中,单击“到带或不带 InfoPath Forms Services 的 SharePoint 服务器),然后单击”下一步“。
在向导的下一页的“输入 SharePoint 或 InfoPath Forms Services 网站的位置”框中,键入要在其中发布表单模板的 SharePoint 网站位置,然后单击“下一步”。
若要允许用户使用 Web 浏览器填写此表单,请在向导的下一页上,选中“允许使用浏览器填写此表单”检查框。
单击“ 网站内容类型” (高级) ,然后单击 “下一步”。
在向导的下一页上,单击“ 新建内容类型”。
在“ 内容类型的基础 ”列表中,单击 “窗体”,然后单击 “下一步”。
在向导的下一页上,键入新内容类型的名称和说明,然后单击“ 下一步”。
在向导的下一页的 “为表单模板指定位置和文件名 ”框中,键入 SharePoint 网站的位置,然后单击“ 浏览”。
在 “浏览 ”对话框中,浏览到要将表单模板发布为网站内容类型的服务器上的位置,然后在“ 文件名 ”框中,键入表单模板的名称,然后单击“ 保存”。
单击“下一步”。
在表单模板中选择要在文档库的默认视图中显示为列的字段。
如何实现?单击“添加”。
选择要在文档库中添加为列的字段,然后执行下列操作之一:
- 在 “列名 ”框中键入列的名称。
- 在 “网站列组 ”列表中选择网站列,在 “列名 ”列表中选择一个名称,然后单击“ 确定”。
如果选择了重复字段来显示文档库中的数据,则可以通过单击 “函数 ”列表中的值来定义要如何在文档库中显示字段。 可以选择是显示字段中的第一个值、字段中的最后一个值或字段的所有匹配项的计数,或是否将所有值合并在一起。
单击“确定”。
单击“下一步”。
在向导的下一页上,验证显示的信息是否正确,然后单击 “发布”。
单击 “关闭”,然后验证表单模板是否为 SharePoint 网站上的内容类型。
如何实现?- 在 Web 浏览器中打开 SharePoint 网站。
- 在站点右上角的 站点操作 菜单上,单击 站点设置。
- 在 “网站设置”中的“ 库”下,单击 “网站内容类型”。
表单模板应列在网站内容类型库的 InfoPath 内容类型下。
步骤 5:向文档库添加内容类型
通过内容类型,组织可以跨网站集中更高效地组织、管理和处理内容。 通过为特定类型的文档定义内容类型,组织可以确保更有效地管理这些内容组中的每一个。 通过向列表或库添加内容类型,可以设置列表或库以包含多个项目类型或文档类型的项目。
注意
要向列表或库中添加内容类型,至少需要该列表或库的设计权限级别。
在开始之前,请确保库设置为允许多种内容类型。
允许多种内容类型
- 在 “设置 ”菜单上,单击“ 文档库设置”。
- 在“常规设置”下,单击“高级设置”。
- 在“ 内容类型 ”部分中,选择“ 是 ”以允许多种内容类型,然后单击 “确定”。
如果列表或库尚未打开,请在“快速启动”上单击其名称。
注意
如果未显示该列表或库的名称,则请单击“查看所有网站内容”,然后单击列表或库的名称。
在 “设置 ”菜单上,单击“ 文档库设置”。
在 内容类型下,单击 从现有网站内容类型添加。
在“选择内容类型”部分的“从下列位置选择网站内容类型”列表中,选择要从中选择的网站内容类型组。
在 “可用网站内容类型 ”列表中,单击所需的内容类型,然后单击“ 添加 ”以将所选内容类型移动到“ 要添加的内容类型 ”列表中。
要添加其他内容类型,请重复步骤 4 和步骤 5,然后单击“ 确定”。
现在,当用户在此库中创建新表单时,表单的视图将根据工作流的状态显示。