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:

接着这个思路你可以设置【标记】位是三位,别说不会……

本文是作者呕心沥血之作,转载请标明出处……,谢谢您的配合!!!

后续会共享表单下载,敬请期待……

CSDN下载地址

 

转载于:https://www.cnblogs.com/lygx/archive/2009/11/06/1597566.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值