实现保存时自动删除数量为0的行(摘自Joysing大佬)
目前8.0版本,部分单据需要使用插件(或python脚本)实现,后续版本可能会有更多单据直接使用参数配置即可实现。
目前该业务功能系统内部分单据可直接支持,操作方式如下:
单据编辑界面--【选型--业务参数--勾选“保存时清除实发(退)为零的分录”】即可
若在业务参数内没有该配置,则可以使用phython插件实现
(社区的代码编辑器会改变代码格式,直接复制代码可能会格式不正确,请下载附件内容)
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的行(摘自Joysing大佬)
目前8.0版本,部分单据需要使用插件(或python脚本)实现,后续版本可能会有更多单据直接使用参数配置即可实现。目前该业务功能系统内部分...
点击下载文档
本文2024-09-16 18:05:51发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-19925.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章