如何将多个字段拼接到1个字段?如拼接文本、基础资料、辅助资料
【概述】
日常使用中,有时候我们需要在一个字段上体现多个字段拼接组合的结果,我们就可以通过配置值更新或者实体服务规则来实现
系统只有文本字段可以直接拼接,其他类型字段比如基础资料、辅助资料、数量等,要拼接起来需要先转化为文本形式,使用str()函数
以下我们通过举例的方式来展示如何实现多个不同类型字段的拼接
【案例】
一、多个文本字段拼接
1.拼接字段不为空
如果第个文本字段均有值,我们可以使用最简单的公式A=B+C+D,如果字段之前要用','间隔开,公式A=B+','+C+','+D,为实现效果如下:
这个公式有局限性,就是拼接的字段不能为空,不然空值如果是文本字段,就会显示空白、如果是基础资料字段,就会显示Null,如果是数量字段,就会显示为0
列如文本1为空值,所以在拼接字段中为空白;基础资料1为空值,所以在拼接字段中显示为null;数量1为空值,所以在拼接字段中展示为0;
2.拼接字段存在空值
多个字段文本字段拼接,中间有为空的字段可以设置自动忽略
表达式如下:';'.join ( x for x in ( ( A OR '' ),( B OR '' ),('')) if x !='' )
【join】函数说明:将多个字符串以指定的分隔符拼接成一个字符串,表达式前面的';'即为分隔符,根据需要我们可以修改为其他符号
列如文本2为空值,所以按以上设置,在拼接字段中不展示;
二、多个基础资料或者辅助资料拼接在一起
基础资料或者辅助资料无法简单的拼接,需要先转换为文本字段,再使用文件字段拼接的方式组合在一起。
表达式举例:str(基础资料1)+str(基础资料2)
【str】函数说明:将其他类型字段转换为字符串类型
三、多个数量字段拼接,尾0不显示
BOS中数量字段都勾选了不显示尾零,使用常规公式:文本= str(长)+'*'+str(宽)+'*'+str(高);在客户端显示的时候,还是会出现尾0的情况
原因是服务端存储是有尾零的,系统是在前端呈现时移除尾零,因此需要在实体服务中变通处理,文本= str(长).rstrip('0').rstrip('.')+'*'+str(宽).rstrip('0').rstrip('.')+'*'+str(高).rstrip('0').rstrip('.')
公式说明:rstrip('0'),移除右边的0;rstrip('.'),移除右边的小数点。
如何将多个字段拼接到1个字段?如拼接文本、基础资料、辅助资料
本文2024-09-23 04:04:44发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-162975.html