在第五章节“添加逻辑和规则到表单”中,你了解到表单规则和逻辑。每个按钮和控件都可以有应用的规则。不仅规则可以在单个控件中创建,而且每次打开表单时运行的规则也可以创建。这些是表单加载规则。对于经过批准流程和本例中的表单,这些类型的规则可以被用在InfoPath作为工作流的部分。每个规则可以有自己的条件和操作。例如,一个规则可以在新建表单中执行某操作,另一个规则可用于批准流程,以及另一个用于已经被批准且完结的表单。
在功能区“数据”选项卡,点击“表单加载”按钮。你将注意到已经创加了一个表单加载规则。这个规则将在本章节解决。
在你的表单中,你不想让终端用户有能力在表单视图中切换。Reimbursement表单的流程可以这样:
1. 当新表单填写完成时,FormStatus默认值为“New”。
2. 在新建视图,第一次点击提交按钮使FormStatus域值设置为Manager Approval。
3. 使用下列表单加载规则:如果FormStatus包含Approval,切换到Approval视图
4. 伴随着每个人批准并提交表单,FormStatus值从Manager Approval变为VP Approval,每个提交按钮将设置FormStatus的值。
5. 因为CEO是最后一个批准者,当她批准并点击提交时,FormStatus值设置为“已完成”。
6. 如果其中任何人拒绝了表单,FormStatus域被设置为“已拒绝”。
7. 使用下列表单加载规则:如果FormStatus等于“已完成”或“已拒绝”,切换到只读视图。
下面练习中,你将创建两个表单加载规则,这样视图可以自动切换。
准备:以设计模式打开ContosoReimbursementform.xsn。
1. 在功能区,点击“数据”选项卡,点击“表单加载”按钮。
2. 点击“新建”按钮,选择“操作”。
3. “详细信息”输入Approvals。
4. 在“条件”节,点击“无--规则在打开表单时运行”链接。
5. 在myFields下拉框,点击“选择域或组”。
6. 展开Hidden组,选择FormStatus,点击“确定”。
7. 在第二个下拉框,选择“包含”。
8. 第三个,“键入文本”,输入Approval。点击“确定”。
9. 在“运行这些操作”旁点击“添加”按钮,选择“切换视图”。
10. 选择“Approvals”视图,点击“确定”。
现在approvals规则已经创建,已完成或已拒绝表单规则也可以被创建了。
11. 点击“新建”按钮,选择“操作”。
12. 详细信息输入Read Only。在“条件”节,点击“无-规则在打开表单时运行”链接。
有两个条件:FormStatus等于“已完成”和FormStatus等于“已拒绝”。注意到第一行末尾的下拉框中“或”条件。
13. 点击“确定”。在“运行这些操作”旁点击“添加”按钮,选择“切换视图”。
14. 选择Read Only视图,点击“确定”。
尽管有两级审批可用,有一个审批视图就很高效了,因为我们的表单加载规则可以保持简单。记住条件是大小写敏感的,所以确保认真遵从说明指导。
目前,我们创建了一些approval域,一个approval节,一些表单加载规则。下一个任务是将所有这些功能绑定到一起(使用一些自定义提交按钮和更多规则)。