K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体
K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体
- 脚本
- 关键 语法
-
- 1、三目运算符
- 2、join()
- 3、map()
- 4、lambda ,filter()
脚本
- 首先满足单据体不为空,以及 其他条件
- 然后把单据体中,符合条件的集合,拼接到单据头的备注中
FRemark = '' if FIS_ALLOW_SOFT != true and FEntity null AND FEntity.Count > 0 else ','.join(x for x in (map(lambda n:n.FMaterialType.FName , filter(lambda r:r.FMaterialTypenull,FEntity))))
关键 语法
1、三目运算符
print('赋值前输出') remark = '' msg = "结果:remark 不是空字符" msg1 = "结果:remark 是空字符" res = msg1 if remark == '' else msg print(res) print('赋值后输出') remark = '您好' res = msg1 if remark == '' else msg print(res)
输出结果:
2、join()
将序列中的元素以指定的字符连接生成一个新的字符串
# join arr = ["abc", "db", "cc", "df", "ll", "ob", "fb"] str = ',' # 将集合中的内容用逗号拼接 res = str.join(arr) print(res)
3、map()
arr中的每个元素都调用 map_fun 函数,并返回调用函数后的 映射
def map_fun(x): return x + "_Q" if __name__ == '__main__': arr = ["abc", "db", "cc", "df", "ll", "ob", "fb"] # arr中的每个元素都调用 map_fun 函数,并返回调用函数后的 映射 s = map(map_fun, arr) # 调用 map_fun,元素拼接 _Q m = list(s) # 用list转换为列表 print(f'map 处理后,转list 结果:\r\n {m}')
4、lambda ,filter()
sum = lambda x: x + 2 # lambda 作为赋值给变量,变量作为函数print(sum(1)) # 输出 3 # 筛选集合中元素不等于"" 的元素 arr = ["abc", "db", "cc", "df", "ll", "", "ob", "fb", ""] r = filter(lambda x: x != "", arr) print(list(r)) # 用list转换为列表