单据保存时,判断校验仓位不能等于某个仓位;学习及举例原创
金蝶云社区-xky999
xky999
49人赞赏了该文章 258次浏览 未经作者许可,禁止转载编辑于2024年11月01日 17:01:13

学习:二开案例.表达式.表达式测试.仓位:https://vip.kingdee.com/link/s/l8j2d

【客户需求】仓库启用仓位设置仓位值必录:https://vip.kingdee.com/link/s/l8X1m

仓位及仓位值集-学习笔记:https://vip.kingdee.com/link/s/lp4XK


举例:其他出库单上,保存时判断:仓位不能等于1厂房;


首先用公式判断仓位1厂房所在的值集;

image.png

通过两个对比,可以看到货架所在的值集为F100001;厂房所在的值集为F100003;

image.png


值集在系统中的显示:

image.png

因此,校验公式为:

FStockLocId  <> null AND FStockLocID.ActiveObject['F100003']  <> null AND  FStockLocID.ActiveObject['F100003']['Name'].ToString()="1厂房"

或者:

FStockLocId  <> null AND FStockLocID.ActiveObject['F100003']  <> null AND  FStockLocID.ActiveObject['F100003']['Number']="01"


image.png

实现效果:多仓位值集也可以判断出来。

image.png



例2:需求:单据明细中仓位不能填某几个仓位

使用in()函数。在括号中填写需要比较的值。

注意比较值需要填写完全。

len(filter(lambda x:(x.FStockLocId  <> null AND x.FStockLocID.ActiveObject['F100003']  <> null AND  x.FStockLocID.ActiveObject['F100003']['Name'].ToString() in ( "2厂房","1厂房" )),FEntity)) > 0

image.png

图标赞 49
49人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!