> 文档中心 > K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据

  • 脚本
  • 关键 语法
    • 1、三目运算符
    • 2、join()
    • 3、map()
    • 4、lambda ,filter()

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

脚本

  1. 首先满足单据体不为空,以及 其他条件
  2. 然后把单据体中,符合条件的集合,拼接到单据头的备注中
 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)    

输出结果:
K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

2、join()

将序列中的元素以指定的字符连接生成一个新的字符串

    # join    arr = ["abc", "db", "cc", "df", "ll", "ob", "fb"]    str = ','  # 将集合中的内容用逗号拼接    res = str.join(arr)    print(res)

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

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}')

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

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转换为列表

K3Cloud BOS设计 值更新 列表明细 字段拼接到单据体

老江饲料商城