表单插件--撤销按钮被点击后删除下游单据原创
金蝶云社区-今夜
今夜
12人赞赏了该文章 188次浏览 未经作者许可,禁止转载编辑于2024年08月08日 13:38:37
# 开发时间:2024/7/29 15:34

##****************************表单插件--撤销按钮被点击后删除下游单据*******************
#引入clr运行库
import clr
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.WebApi.FormService')
clr.AddReference('Kingdee.BOS.ServiceFacade.KDServiceFx')
clr.AddReference('Newtonsoft.Json')
from Kingdee.BOS.App.Data import *
from Kingdee.BOS import *
from Kingdee.BOS.Core.DynamicForm import *
from Kingdee.BOS.Core.DynamicService import *
from System import *
from System.Data import *
from System.Collections.Generic import *
from Kingdee.BOS.WebApi.FormService import *
from Kingdee.BOS.ServiceFacade.KDServiceFx import *
from Newtonsoft.Json.Linq import *


def BarItemClick(e):

    if e.BarItemKey=="tbCancelAssign":#自定义按钮的标识
    Billid = this.View.Model.DataObject["Id"].ToString();


    sql=("""/*dialect*/SELECT
    t2.FID 
FROM
    T_PRD_ISSUEMTRNOTICE t1
    LEFT JOIN (
    SELECT distinct FSourceBillId,
       fid = (
          stuff(
             ( SELECT ',' + CAST ( FID AS VARCHAR ( 20 ) ) FROM PZEJ_PRD_ISSNOTICE WHERE FSourceBillId = a.FSourceBillId FOR xml path ( '' ) ),
             1,
             1,
             '' 
          ) 
       ) 
    FROM
       PZEJ_PRD_ISSNOTICE a 
    ) t2  on t1.Fid=t2.FSourceBillId
WHERE
    t1.Fid = {0}""").format(Billid);#SQL语句,获取下游单据的FID,自行替换即可
    BillIdstr = str(DBUtils.ExecuteScalar(this.Context, sql, None))
    apiResult = DeleteBill(BillIdstr)

def DeleteBill(BillIdstr):
    jsonData = """{"Ids":"BIllIds"}"""
    json = jsonData.Replace("BIllIds", BillIdstr)
    apiResult = WebApiServiceCall.Delete(this.Context, "PZEJ_PRD_ISSUEMTRNOTICE", json)#WebApiServiceCall调用接口具体的操作标识
    return apiResult

最近写的一个python,分享出来,希望能给其他小伙伴提供到思路,也希望有大神能提出优化改进的地方。

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

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0