二开案例.实体服务规则.按条件拼接格式化后的多个字段

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.实体服务规则.按条件拼接格式化后的多个字段

需求场景:

  1. 拼接物料的长、宽、高,希望实现可以四舍五入后拼接。

  2. 实现需求1的时候,又想到之前的一个常见需求。拼接多个字段,最简单的方法是A+","+B+","+...,但是如果字段为空会拼接出none、0等等的值。

    如果用if条件一个一个判断的话,需要每个都做判断,并不方便。

    之前有一个循环判断的条件,判断为空就不拼接';'.join ( x for x in ( ( A OR ''  ),( B OR ''  ),('')) if x !='' )。这个方法可以用,本文介绍另一个方法。


实现方案:

下面以拼接四舍五入后的长宽高为例。

  1. 表达式: FSpecification  = '*'.join(map(lambda x:str(round(x,1)), filter(lambda x: x!=0,[FLENGTH,FWIDTH,FHEIGHT])))

  2. [FLENGTH,FWIDTH,FHEIGHT]:长宽高的集合,可以按照需求添加字段。

  3. x!=0:按条件取值,只取x!=0的值,如果集合里有文本、基础资料的话,可以用x<>null and x<>"" and x<>" " and x<>0,来做判断条件实现。

  4. str(round(x,1)):因为join函数只能拼接str类型的字段,因此要把round四舍五入后的浮点数强制转换为str类型。如果集合中有文本字段,那么像这种round条件肯定是不合理的,所以这个处理条件,建议按需实现。

  5. 综上所述,长宽高是数据集合,x!=0是条件,round是处理,取满足条件的集合数据做处理后拼接字段。可以满足用户的个性化需求。


二开案例.实体服务规则.按条件拼接格式化后的多个字段

需求场景:拼接物料的长、宽、高,希望实现可以四舍五入后拼接。实现需求1的时候,又想到之前的一个常见需求。拼接多个字段,最简单的方法...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息