python编写会计凭证金蝶_【金蝶K3Cloud】 Python套打插件开发记录

1 #-*- coding: utf-8 -*-

2 importclr3 clr.AddReference("System")4 clr.AddReference("System.Core")5 clr.AddReference("Kingdee.BOS")6 clr.AddReference("Kingdee.BOS.Core")7 clr.AddReference("Kingdee.BOS.DataEntity")8 clr.AddReference("Kingdee.BOS.ServiceHelper")9 importsys10 from System import *

11 from System.Collections.Generic import *

12 from System.Threading import *

13 from Kingdee.BOS.Log import *

14 from Kingdee.BOS.Core.Log import *

15 from Kingdee.BOS.Core import *

16 from Kingdee.BOS.Core.DynamicForm import *

17 from Kingdee.BOS.KDThread import *

18 from Kingdee.BOS.DataEntity import *

19 from Kingdee.BOS.Orm.DataEntity import *

20 from Kingdee.BOS.ServiceHelper import *

21 from Kingdee.BOS.Core.Metadata import SelectorItemInfo ##字段选择实体类

22 from Kingdee.BOS.Core.SqlBuilder import QueryBuilderParemeter ##查询参数实体类

23 #修改默认编码为utf8

24 reload(sys)25 sys.setdefaultencoding('utf-8')26

27 defOnPrepareNotePrintData(e):28 if e.DataSourceId == "FBillHead":29 #获取到单据头的数据包

30 qureyObjs =e.DataObjects31 #获取数据包行数

32 _count =e.DataObjects.Count33 #获取到单据头的数据包类型

34 DevDynamicTypy =qureyObjs[0].DynamicObjectType35 #是否需要注册字段

36 IsNeedReg =True37 for p inDevDynamicTypy.Properties:38 if str(p.Name).lower() == "F_Dev_ReimbNotPaySum".lower():39 IsNeedReg =False40 #如果需要注册字段就注册字段

41 ifIsNeedReg:42 #注册一个F_PAEZ_Amount字段

43 DevDynamicTypy.RegisterSimpleProperty("F_Dev_ReimbNotPaySum", str,None,False,[])44 #循环把数据包的数据赋值回去。

45 for i inrange(0,_count):46 #创建一个新的数据包

47 obj =DynamicObject(DevDynamicTypy)48 #把旧数据包的值全部给新数据包

49 for p inqureyObjs[0].DynamicObjectType.Properties:50 obj[p] =e.DataObjects[0][p]51 #查询出未付款金额

52 sql = "/*dialect*/select CAST(SUM(FREIMBNOTPAYAMOUNT) AS DECIMAL(18,2)) as FREIMBNOTPAYAMOUNT from t_ER_ExpenseReimbEntry where fid =" +str(qureyObjs[0][0])53 dyc =DBServiceHelper.ExecuteDynamicObject(this.Context, sql)54 if dyc !=None:55 Amount =dyc[0][0]56 #把未付款金额的数据给OBJ数据包

57 obj["F_Dev_ReimbNotPaySum"] =Amount;58 #最后用新的数据包来替换旧的数据包

59 e.DataObjects[i] = obj

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值