一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件(3)--参数

        InfoPath中参数是什么?参数是从表单外部传递过来的数据(可以被表单接收)。这个信息在表单中被接收,或影响表单整体的行为,或被传递到其中一个域(成为表单参数)。
        参数在发布过程中被定义,可以作为输入、输出来设置,或兼而有之。下面截图上半部分是熟悉的属性提升区域,下半部分(在SharePoint2010新引入的)用来创建参数。
        小贴士:参数不是SharePoint列表表单中的选项。


        为了将数据从一个表单、一个Web部件送到另一个Web部件,必须使用输出参数。为了从其他Web部件抽取数据,必须使用输入参数。
        下面的例子中,你将在之前表单中创建新域,使这个域成为Web部件连接参数。然后,你将从当前用户筛选器Web部件传递参数到InfoPath表单Web部件。当前用户筛选器Web部件用来捕获当前登录用户的部门名称,并将其传入表单。
        小贴士:下面例子中,你将在表单中以文本框形式显示传递参数的值。这不是必须的,因为表单不必在表单中显示信息,仍然可以接收参数信息。
        准备:设计模式打开之前创建的Feedback Form。
1. 在域列表中,右击“myFields”,点击“添加”,打开“添加域或组”对话框。
2. 命名为Department,点击“确定”。


3. 在表单上,光标放在Subject旁边,点击 “布局”选项卡中的“在上方插入”。
4. 拖拽Department域到这一新行。


5. 点击“文件”菜单,选择“发布”,点击“SharePoint服务器”。
        注意:本练习中,你将使用发布向导,而不是快速发布按钮,因为选择参数的选项是发布向导中的一步。
6. 点击“下一步”,直到你看到页面,在上面你可以选择域作为栏目来发布。
7. 点击“添加”按钮添加新的Department域到顶部栏目列表。
8. 点击“添加”来添加Department域作为参数到下面部分。Department将作为输入参数。点击“确定”。


        四个栏目出现在顶部,一个参数出现在底部。


9. 点击“下一步”
10. 点击“发布”按钮,点击“关闭”。
11. 返回Test Feedback站点。刷新网页时,你将看到Feedback Form Web部件现在已经更新,显示新的Department域。点击“网站操作”,选择“编辑页面”。
12. 在页面右边区域,点击“添加Web部件”。

        你将添加“当前用户筛选器Web部件”到页面。它在哪个区域不要紧,因为它在页面上不可见。


13. 在“筛选器”类别,选择“当前用户筛选器”,点击添加。


14. 点击“当前用户筛选器”窗格右上角箭头,点击“编辑Web部件”。


        默认地,“当前用户筛选器”以 “域\用户名”方式储存当前用户登录名。你需要获得登录用户的部门名称。
15. 改变“当前用户的SharePoint配置文件值”为“部门”。


16. 点击“确定”。
        现在你需要在筛选器Web部件和表单Web部件之间创建Web部件连接、
17. 在编辑模式,点击Feedback Form右上角的黑色下拉箭头。在弹出菜单,选择连接----数据获取位置----当前用户筛选器。


18. 在“配置连接”页面,consumer域Department已经被选中,因为它是表单中唯一的输入参数。点击“完成”。


        仍然在编辑模式,在创建的连接中,筛选器Web部件现在显示信息发送对象Web部件名。并且,表单中Department域将显示当前登录用户的部门名称。本例中,当前用户是IT部门员工。
19. 点击网页左上角的“停止编辑”。


        现在步骤已经完成,注意警官你在页面上看不到当前用户筛选器Web部件,它仍在捕获信息并发送到表单Web部件。尝试提交新的反馈表单。当你点击页面左侧快速启动栏的Feedback表单库名时,Department栏将显示提交表单用户的部门名称。
        注意:另一个抽取用户信息到InfoPath表单的方法需要创建数据连接到UserProfileService web service。这种方法在第九章节详细讲述。
附加:查询字符串(URL)筛选器Web部件
        当前用户筛选器是最简单(传递信息到表单)的方法之一。另一个极其有用的筛选器控件是查询字符串(URL)筛选器。查询字符串添加一个URL,这样它包含了传送到页面上Web部件的信息,来筛选Web部件。URL的查询字符串部放置在ASPX SharePoint页面名字的末尾,在问号标记之后。语法是“域=值”。
        下面例子展示了一个URL指向Accounting站点的网站页面。这个网站页面作为Accounting项目的项目仪表板被创建。本例的目的是表达URL语法:
        http://www.contoso.com/accounting/sitepages/ProjectDetails.aspx?Project=23
        拆解上述URL例子:
1. ProjectDetails.aspx是Web部件页的名字。
2. Project是域名。
3. 23是值。
        当查询字符串筛选Web部件在页面上使用时,它将查看当前URL和期望的查询参数。在Web部件属性中,查询字符串参数名必须和URL中域匹配,所以在URL例子中,值将是Project。和当前用户筛选器一样,这个Web部件需要有与其他Web部件的Web部件连接,才能传递筛选信息到Web部件。

posted @ 2014-04-01 11:28  crazygolf  阅读(175)  评论(0编辑  收藏  举报