单据体Lambda 使用原创
金蝶云社区-蒋斌
蒋斌
77人赞赏了该文章 1,091次浏览 未经作者许可,禁止转载编辑于2023年10月13日 17:06:53

今天遇到一个需求,需要判断 当 单据体文本字段包含“XXXX”时,更新表头的复选框,当时想当然的就在单据体的实体服务规则里做了,但是报“DynamicRowModel is not iterable”,后来查询发现,是单据体不支持Lambda,需要做在单据头,于是做了实体服务规则,功能实现。


FEntity<>null AND FEntity.Count>0 AND F_JSDZ<>null AND len(filter(lambda row: row.F_JSDZ<>null and row.F_JSDZ.find('XXXX')>=0, FEntity))>0

解释下 

    FEntity 单据体的标识

    F_JSDZ 表体需要判断的字段

    lambda row: row.F_JSDZ<>null and row.F_JSDZ.find('XXXX')>=0 row 表示每一行,row.F_JSDZ 表示取到当前行的字段

    row.F_JSDZ.find('XXXX')>=0 表示 检测到对应的字段里包含字符串XXXX,下标从0 开始

    len(filter(lambda row: row.F_JSDZ<>null and row.F_JSDZ.find('XXXX')>=0, FEntity))>0 判断有多少行

赞 77