应用背景:当前付款单默认收款方类型,不管是上游单据下推付款单,比如费用报销单、付款申请单下推付款单,还是手动新增的付款单,都是根据收款单位类型代码里写死的,收款单位类型为“员工”,默认收款方类型默认为“个人”,其他类型则默认为“企业”。
二开场景:希望修改付款单默认收款方类型。
二开指导:
1.上游单据下推付款单,通过在对应单据转换的插件策略注册python脚本进行干预,python脚本内容如下:
import clr
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
def AfterConvert(e):
headEntity=e.Result.FindByEntityKey("FBillHead")
for item in headEntity:
data = item["PAYBILLENTRY"]
for i in range(len(data)):
#0为企业,1为个人
data[i]["RecType"]="0"
2.手动新增的付款单,通过在付款单的表单插件注册python脚本进行干预,python脚本内容如下:
import clr
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.DataEntity')
from Kingdee.BOS.DataEntity import *
from Kingdee.BOS.Core.Metadata.FieldElement import *
#付款单新增明细给收款方类型设置默认值为企业
def AfterCreateNewEntryRow(e):
this.Model.SetValue("FRecType","0",e.Row)
#新增付款单将明细收款方类型设置默认值为企业
def AfterCreateNewData(e):
count=this.View.Model.GetEntryRowCount("FPAYBILLENTRY")
for i in range(count):
this.Model.SetValue("FRecType","0",i)
注意:因为付款单新增界面会触发实体服务规则,根据收款单位类型设置收款方类型默认值,所以对于下推付款单后弹出付款单新增界面的情况,则1、2两步二开都要做,如果下推后是后台生成付款单,则只需要做第1步。
推荐阅读