实现保存时自动删除数量为0的行
目前8.0版本,部分单据需要使用插件(或python脚本)实现,后续版本可能会有更多单据直接使用参数配置即可实现。
实现方式:
销售出库单、销售退货单:
单据编辑界面--【选型--业务参数--勾选“保存时自动删除实发(退)数量为0的行”】即可
直接调拨单、生产领料单、生产退料单:
单据编辑界面--【选型--业务参数--勾选“保存时清除实发(退)为零的分录”】即可
其他单据未添加参数控制的,可以用以下python脚本实现:
(社区的代码编辑器会改变代码格式,直接复制代码可能会格式不正确,请下载附件内容)
import clr clr.AddReference("Kingdee.BOS") clr.AddReference("Kingdee.BOS.App") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.DataEntity") clr.AddReference("System.Data") clr.AddReference('Kingdee.BOS.Contracts') from Kingdee.BOS.Util import * from System import * from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Orm import * from Kingdee.BOS.App import * from Kingdee.BOS.Contracts import * #采购入库单表单插件 def BeforeSave(e): DeleteEntryWhenZore("FInStockEntry","FRealQty") #数量为0时删除分录行。EntryKey:单据体标识,QtyKey:数量字段标识 def DeleteEntryWhenZore(EntryKey,QtyKey): entity = this.View.BillBusinessInfo.GetEntity(EntryKey); rows = this.Model.GetEntityDataObject(entity); #DynamicObjectCollection for i in range(rows.Count-1,-1,-1):#从后往前循环,不包括-1,步长为-1 Qty=this.View.Model.GetValue(QtyKey,i) if Qty==0 or Qty==None: this.View.Model.DeleteEntryRow(EntryKey,i);
这个非常有用
实现保存时自动删除数量为0的行
目前8.0版本,部分单据需要使用插件(或python脚本)实现,后续版本可能会有更多单据直接使用参数配置即可实现。实现方式:销售出库单、销...
点击下载文档
上一篇:套打打印中选不到字段下一篇:关联数据包的保存接口无法触发反写规则问题
本文2024-09-16 17:42:42发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-17466.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章