Infopath【函数】--(substring-before,substring-after,concat)巧妙运用
【原创】
一、新建人员配置列表,包括:登录账号,显示名称,所在部门,部门经理等栏。
二、联系人资料重复表,人员选择、人员删除都引用人员配置表中的显示名称。功能实现维系人员支持多选,人员删除可删除选择人员。
1、维系人员选择,如下图有三位维系人员:
当前用户帐号为:userName();
当前用户名称为:@显示名称[@登录帐号 = 当前用户帐号];
维系人员默认值为:当前用户名称;
维系人员规则:设置--维系人员经理名称=@部门经理[@显示名称 = current()];
维系人员选择总规则预览,如下图实现效果可设置维系人员:1张三2王五3李六:
<1>、维系人员选择规则1,如下图标记默认值为0,初始化标记设置标记=【标记】+1:
<2>、维系人员选择规则2如下图设置【维系人员】=【维系人员】+【标记】+【维系人员选择】concat函数运用:
<3>、维系人员选择规则3如下图设置【维系人员经理名称】=concat(维系人员经理名称, 标记, @部门经理[@显示名称 = current()])concat函数运用:
2、维系人员删除,如下图当人员删除选择标记为1的显示名称时将删除维系人员中标记为1的维系人员:
维系人员删除总规则预览,如下图实现效果可设置维系人员:当人员删除选择了张三,最后得到的是--2王五3李六:
<1>、维系人员删除规则1,如下图substring-before、string-length、substring函数的运用:
条件:维系人员包含维系人员删除;
设置:标记1=substring-before(维系人员, 维系人员删除);注释:读取【维系人员删除】之前字符串。
设置:标记2=substring(标记1, string-length(标记1), 1);注释:获取【维系人员删除】之前字符串在‘(string-length(标记1)’位置的字符串。
设置:标记3=substring(标记1, string-length(标记1) - 1, 1);注释:获取【维系人员删除】之前字符串在‘(string-length(标记1)-1’位置的字符串,用于【标记】两位的情况。
<2>、维系人员删除规则2,如下图:
条件:维系人员包含维系人员删除、标记3>=1、标记3<=9;(注释:判断【标记】是1位数还是2位数)
设置:位数标记=1;
<3>、维系人员删除规则3,如下图substring-before、concat、substring-after函数运用:
条件:【维系人员】包含【维系人员删除】、【位数标记】=1;(注释:【标记】为2位数的情况)
设置:维系人员=concat(substring-before(维系人员, concat(标记3, 标记2, .)), substring-after(维系人员, concat(标记3, 标记2, .)));注释:获取‘【标记】+【维系人员删除】’之前的字符串+‘【标记】+【维系人员删除】’之后的字符串;
维系人员经理名称=concat(substring-before(维系人员经理名称, concat(标记3, 标记2, @部门经理[@显示名称 = current()])), substring-after(维系人员经理名称, concat(标记3, 标记2, @部门经理[@显示名称 = current()])));注释:获取‘【标记】+【@部门经理[@显示名称 = current()]))】’之前的字符串+‘【标记】+【@部门经理[@显示名称 = current()]))】’之后的字符串;
注释:"."表示【维系人员删除】;
<4>、维系人员删除规则4,如下图substring-before、concat、substring-after函数运用:
条件:【维系人员】包含【维系人员删除】、【位数标记】=0 ( 注释:位数标记默认值为0);
设置:维系人员=concat(substring-before(维系人员, concat(标记2, .)), substring-after(维系人员, concat(标记2, .)));注释:获取‘【标记】+【维系人员删除】’之前的字符串+‘【标记】+【维系人员删除】’之后的字符串;
维系人员经理名称=concat(substring-before(维系人员经理名称, concat(标记2, @部门经理[@显示名称 = current()])), substring-after(维系人员经理名 称, concat(标记2, @部门经理[@显示名称 = current()])));注释:获取‘【标记】+【@部门经理[@显示名称 = current()]))】’之前的字符串+‘【标记】+【@部门经理[@显示名称 = current()]))】’之后的字符串;
<5>、维系人员删除规则5:
接着这个思路你可以设置【标记】位是三位,别说不会……
本文是作者呕心沥血之作,转载请标明出处……,谢谢您的配合!!!
后续会共享表单下载,敬请期待……