本文介绍了三种文本字段合并(字符串拼接)的方法,并分析了常见的拼接报错及原因。方法一和二通过公式实现,考虑了字段为空的情况,避免直接拼接报错。方法三较复杂,分情况合并文本。此外,还指出了直接拼接可能遇到的报错及其原因,并提供了相关Python字符串操作链接。
相关词:合并文本字段,字符串拼接,字符串合并
相关方法社区问答中有答复,但是还是有人问,这里整理了一下,并配上了截图,希望能帮助到有需要的人。
文本字段合并的实现方法一(仅供参考):
实体服务规则配置服务【计算定义公式的值并填写到指定列】,公式如下:
F_PENQ_Text3 = ('' if F_PENQ_Text1==None else F_PENQ_Text1) + ('' if F_PENQ_Text2==None else F_PENQ_Text2)
分析:先对要合并的文本字段进行,如果为None,则值为'',否则值为字符串本身。
实现的效果如下:
文本字段合并的实现方法二(仅供参考):
实体服务规则配置服务【计算定义公式的值并填写到指定列】,公式如下:
F_PENQ_Text3 = (str( F_PENQ_Text1 OR '') + str( F_PENQ_Text2 OR '') ).strip()
实现的效果如下:
文本字段合并的实现方法三(仅供参考):
配置多条实体服务规则:(最复杂的,不建议用)
1)、文本一=null and 文本二<>null,合并文本=文本二;
2)、文本一<>null and 文本二=null,合并文本=文本一;
3)、文本一<>null and 文本<>=null,合并文本=文本一+文本二
实现的效果如下:
【常见的拼接报错】
1、表达式计算出错: F_PENQ_Text3 = F_PENQ_Text1 + F_PENQ_Text2 ( unsupported operand type(s) for +: 'str' and 'NoneType' )
【分析】两个文本字段直接拼接,其中一个为空则报错。
2、表达式计算出错: F_PENQ_Text3 = str(F_PENQ_Text1) + srt(F_PENQ_Text2 ) ( 'ascii' codec can't decode byte 0 in position 0: ordinal not in range )
【分析】使用str()将两个文本字段转换成字符串,但此时其中一个输入中文,则报错;如果输入数字,另外一个为空,则拼接后会在数字后拼接“none”。
3、表达式计算出错: F_PENQ_Text3 = F_PENQ_Text1[0:3] + F_PENQ_Text2[0:2] ( 'NoneType' object is unsubscriptable )
【分析】当其中一个文本字段未填写时,文本字段是没有值的,此时对字符串进行截取拼接则会报错。
【相关链接】
更多Python字符串的操作,详见:https://vip.kingdee.com/article/34108
推荐阅读