【值更新】【实体服务规则】字符串拼接表达式举例原创
28人赞赏了该文章
4,249次浏览
编辑于2020年10月23日 15:53:09
分隔符
问题:
用值更新事件 或 实体服务规则,计算定义公式的值并填写到指定的列,实现功能:
将4个文本控件中的字符串拼接起来,用'/'分隔,填到另一个文本控件。要求4个文本有空值时,'/'不重复。
即'a'、''、'c'、'd'拼接成'a/c/d'。
解决方案:
使用如图表达式:
结果如下:
表达式:
F_MOB_Text_Result = '/'.join(x for x in ( (F_MOB_Text OR '').strip() , (F_MOB_Text1 OR '').strip() , (F_MOB_Text2 OR '').strip() , (F_MOB_Text3 OR '').strip() ) if x != '')
str.join(sequence) 方法,将 sequence 中的元素连接起来,以 str 分隔,返回新字符串。
(F_MOB_Text OR '').strip(),F_MOB_Text 字段为空则返回 '',否则返回 F_MOB_Text 的值的字符串,并去掉头尾空格。
( (F_MOB_Text OR '').strip() , (F_MOB_Text1 OR '').strip() , (F_MOB_Text2 OR '').strip() , (F_MOB_Text3 OR '').strip() ),() 初始化一个 tuple,其中有4个元素,即4个文本控件中的字符串。tuple 是一个 sequence。
(x for x in ( tuple ) if x != ''),过滤 tuple 中的元素,返回不为 '' 的元素,组成一个 sequence。
总结起来就是,将4个文本控件中的字符串,不为空的取出来,以 '/' 分隔连接起来。
赞 28
28人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!