金蝶二开Python代码-销售出库单业务日期等于审核日期原创
55人赞赏了该文章
344次浏览
未经作者许可,禁止转载编辑于2024年05月06日 18:00:39
【功能实现】在单据的表单或列表,点击审核按钮执行数据库语句;
【优点】无论公有云、混合云还是私有云都可用;
【缺点】调试起来很麻烦;
【风险】一定要好好检查SQL语句,建议不要直接影响原有字段的值,先用测试环境测试好在放到正式环境运行;
【案例】操作列表审核服务中注册插件,勾选行并点审核按钮后,根据当前单据库存组织是否在指定库存组织中更新明细单据体的业务日期为审核日期;
注册操作列表审核服务Python插件:
import clr
clr.AddReference('System')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
from System import *
from Kingdee.BOS import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Validation import *
# 业务日期和审核日期需要通过预加载
def OnPreparePropertys(e):
e.FieldKeys.Add("FDATE");
e.FieldKeys.Add("FApproveDate");
# 服务插件,审核的操作在列表和表单都有
def EndOperationTransaction(e):
for billObj in e.DataEntitys:
billId=billObj["Id"];
StockOrgId=billObj["StockOrgId"];
# 指定库存组织更新业务日期数据
if billId>0 and StockOrgId in ('103.01','103.02','103'):
# 业务日期=审核日期
sql = "UPDATE T_SAL_OUTSTOCK SET FDate=FApproveDate WHERE FID={0}".format(billId);
count = DBUtils.Execute(this.Context,sql);
推荐阅读