infopath 获取当前用户

在infopath中,我们可以通过大概四种方法得到当前用户,这里介绍两种最简单的方法。

第一种方法,通过infopath(2010)自带的函数。

第一步:在表单中插入一个文本控件

  image

第二步:选择文本框属性:

image

第三步:点击 文本框属性》数据》默认值(FX)签,弹出 “插入公式”对话框

image

第四步:我们选择插入函数:

image

   在2010环境中,多了userName函数,很方便吧,只是遗憾的是返回的是用户的帐户,而非用户的显示名称,即姓示明谁。

第二种方法:通过web服务方法,这种方法不受infopath版本限制,也是最高效的。

首先我们要将web服务加进来,步骤如下:

  第一步:打开数据连接,选择“添加”

      选择“接收数据”。

 image

选择SOAP web服务

image

在这里输入服务的地址:

image

您的网址:例如http://www.baidu.com/_vti_bin/UserProfileService.asmx

在这里我们选择:

image

继续下一步:

image

一直下一步:

image

在上面可以输入一个带有提示的名称。

我们看到数据连接里已经多了一个服务连接:

image

接下来我们做到这一步:(上面有详细说明)

image

在这里我们点击 “插入域或组”

image

找到这个值:

image

点击筛选数据:

image

点击“添加”,然后输入如下条件。(注:C一定要是大写。 )

image

一路点确定:得到如下公式:

image

我们现在看下,我们现在得到了什么值:

image

这是用户其中的一个属性了。 Ok,做到这步了,我们剩下的工作就是要取到我们想要的用户姓名了。

我们打开公式编辑器:

image

将光标放到公式开始处,选择插入(substring-before)函数:

image

是的,我们的目的就是要去掉姓名以外的字符,基于这个思路,就简单多了,不是吗!

同样的方法,再插入(substring-after)最终的公式形如下:

image

substring-after(substring-before(Value[starts-with(., "C")], ","), "=")

image

OK!

原文地址:https://www.cnblogs.com/rnetboy/p/1901169.html