一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(3)--给事件注册表单添加人员选取器和提交按钮

        现在,注册表单对于当前登录用户自己注册非常有用。但是,如果你想让当前登录人为其他人注册怎么办?现在配置的表单只能加载当前登录用户的信息。所以,如何使事务填充另一个用户配置文件数据到表单呢?本次练习的策略是,同时使用人员选取器和来自用户配置文件Web service的数据,并添加一个按钮(执行另一系列规则)。

        准备:设计模式打开之前的Event Registration表单;或打开练习文件的Event Registration Post Exercise 2.xsn表单。本练习假设你可以访问带用户配置文件的SharePoint服务器。并且你已经发布Event Registration表单到SharePoint表单库。

1.      在表格下方的表单上添加“人员/组选择器”按钮。也添加一行说明,为什么会出现一个人员选取控件。

2.      在其下方添加按钮控件。在按钮属性,更名为Click to load user data。


3.      选中此按钮,打开“规则”窗格。

        你将使用此按钮引用一系列新的规则,用人员选取器选中的用户数据重载五个配置文件域。

        注意:可用多种方法完成----一个一般按钮可能不是最美观的。然而,只为说明目的,使用按钮是有用的,这样你可以容易看到发生了什么。

4.      添加操作规则Load Alternate User Data。

5.      在规则中添加操作设置域值。

6.      在“域”对话框,导航到GetUserProfilebyName(辅助)数据源,进入queryFields组直到你看到AccountName节点,选中并点击“确定”。


7.      点击公式“fx”按钮,选择“插入域或组”。浏览到group_1 group(你的人员/组选取器名),选择AccountID节点。

        重要:先前的规则启用了接下来的规则,使用在人员选取器选中的用户,而不是当前登录用户的数据,填充表单域。


        第二个规则也是重要的。你需要指导按钮来刷新到用户配置文件web service的连接,这样你接下来的操作可以找到必需的数据。

8.      添加“查询数据”步骤到你的GetUserProfileByName数据连接。

        当按钮被点击时,确保表单有个新的连接到web service。

9.      现在你使用规则告诉表单根据人员选取器决定使用哪个用户的数据,你必须添加和之前表单加载相同的规则。特别地,你需要执行那个练习的步骤5-11.

        当单击这个按钮时,这些规则给每个域重载相应的数据。你可以查看之前的练习或者看下面总结的步骤:

        A. 添加“设置域值”步骤,从主数据源选择Attendee域

        B. 点击公式按钮,选择“插入域或组”。

        C. 更改下拉框为“GetUserProfileByName(辅助)”数据源。

        D. 在dataFields文件夹选中Value域,但不点击“确定”。Value域要求你传递一个筛选数据来获得与Attendee匹配的指定数据域。

        E.  点击“筛选数据”按钮,点击“添加”,选择“选择域或组”。选择PropertyData组下Name域,点击“确定”。

        F.  第二个下拉设置为“等于”,在第三个下拉键入文本PreferredName,按下Tab键。

        G. 多次点击“确定”回到设计界面。预览表单。在人员选取器控件选择其他用户。你可以看到Attendee域被填入你在人员选取器中选择的用户账户。


10.  添加额外四个步骤到规则,为用户数据剩余域重复步骤。

        到公式步骤时,用下面值代替条件筛选器中的PreferredName:


        完成步骤后,你的规则是这样的:


11.  保存表单,点击“快速发布”。

12.  预览。在人员选择器选择不同用户,点击按钮。你的表单就会加载其他用户的信息。


        现在如果你想完成表单,你肯定会想添加一个提交按钮,连接到宿主表单库。

        你现在有个功能强大的事件注册表单,它使用SharePoint用户配置文件web service!

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