在SP列表中创建已计算值栏目时,可以期待下列表现:
1. 计算值的结果是一个可以在SP列表中任何视图显示的栏目。
2. 计算结果是个只读值。
3. 当表单第一次填写或编辑时,计算结果不会随着其他域改变而动态改变。
4. 直到表单更改被保存时,新改变的计算结果才会更新。
相应地,在InfoPath中创建计算值时,可以期待下列表现:
1. 计算结果动态显示在表单中,意味着其他栏目值变化时它会马上改变。
2. 无论在SharePoint列表中是否有计算值栏,已计算值(域)都可以添加到表单上。
3. 如果计算值添加到表单(独立于列表计算值栏目),在SharePoint列表中就没有栏显示公式结果。
4. 表单中用于计算的可用函数列表与SharePoint列表栏目中可用的计算不同。
下面的练习中,你将向Travel Request表单添加两个计算值栏。既然新域已经添加到了Travel Request表单,下个类型的域将是hotel cost-per-day与number of nights的乘积计算值。此过程中,计算值域类型间的区别将得到探讨。
准备:在浏览器中,打开SharePoint站点,导航到Travel Requests列表。
1. 在“列表”选项卡,点击“列表设置”。
2. 创建新栏Total Hotel,填入如下信息。点击确定。
注意到Total Hotel域还不存在于表单中,但是新项目保存后,计算值在列表中作为一个栏出现
4. 点击“自定义表单”,点击“是”更新域。
5. 右击Number of Night单元格,点击“插入”,选择“行(在下方)”添加新行到表格。
6. 在新行的左单元格输入“Total Hotel:”,从域窗格拖拽“Total Hotel”域到表格;放在刚输入的文本后面。
7. 选中Total Hotel控件,按下Alt+Enter打开控件属性。在“格式为”下拉框点击“小数”。
8. 点击“格式”按钮,选择“货币符号”格式,在“其它选项”部分,在“小数位数”下拉框选择“2”。
10. 打开现存表单,注意到计算值已经出现在表单中。创建新项目,注意到输入number of nights和hotel cost-per-night值后,Total Hotel域并不显示任何数据。计算值直到保存表单才会出现在表单中。在功能区,再次点击“自定义表单”。
11. 在域窗格,双击Total Hotel域。
12. 在“域或组属性”对话框的“数据”选项卡,点击位于“默认值”右下角的“fx”按钮。
13. 点击“插入域或组”按钮选择“Hotel Per Night”。输入乘号(*),两侧有空格,然后插入“”域,点击“确定”。
14. 为了给空间动态的功能,在 “域或组属性”页,保证选中“重新计算公式时刷新值”复选框,点击“确定”。
15. 将光标放在“Total Hotel”右侧,输入“Total Estimated Cost:”。16. 点击“文件”选项卡,在“控件”区,点击“已计算值”,添加新的计算到表单。
17. 点击空框旁边的“fx”按钮。
18. 使用 “步骤12”相同的方法,创建计算(“Event Cost”加“Total Hotel”),点击“确定”(通过点击“插入域或组”开始)。
19. 重复步骤7和8格式化新的计算值(Total Estimated Cost域)。20. 关闭InfoPath,点击“保存并发布”
注意到这个域设置起来快多了,包含动态函数,但是不会在SharePoint列表中作为栏显示。