在infopath中,我们可以通过大概四种方法得到当前用户,这里介绍两种最简单的方法。
第一种方法,通过infopath(2010)自带的函数。
第一步:在表单中插入一个文本控件
第二步:选择文本框属性:
第三步:点击 文本框属性》数据》默认值(FX)签,弹出 “插入公式”对话框
第四步:我们选择插入函数:
在2010环境中,多了userName函数,很方便吧,只是遗憾的是返回的是用户的帐户,而非用户的显示名称,即姓示明谁。
第二种方法:通过web服务方法,这种方法不受infopath版本限制,也是最高效的。
首先我们要将web服务加进来,步骤如下:
第一步:打开数据连接,选择“添加”
选择“接收数据”。
选择SOAP web服务
在这里输入服务的地址:
您的网址:例如http://www.baidu.com/_vti_bin/UserProfileService.asmx
在这里我们选择:
继续下一步:
一直下一步:
在上面可以输入一个带有提示的名称。
我们看到数据连接里已经多了一个服务连接:
接下来我们做到这一步:(上面有详细说明)
在这里我们点击 “插入域或组”
找到这个值:
点击筛选数据:
点击“添加”,然后输入如下条件。(注:C一定要是大写。 )
一路点确定:得到如下公式:
我们现在看下,我们现在得到了什么值:
这是用户其中的一个属性了。 Ok,做到这步了,我们剩下的工作就是要取到我们想要的用户姓名了。
我们打开公式编辑器:
将光标放到公式开始处,选择插入(substring-before)函数:
是的,我们的目的就是要去掉姓名以外的字符,基于这个思路,就简单多了,不是吗!
同样的方法,再插入(substring-after)最终的公式形如下:
substring-after(substring-before(Value[starts-with(., "C")], ","), "=")
OK!