表单插件_根据订单数量循环打印标签
业务需求:每一个产品出库的时候都需要贴一个标签,能否根据出库单上的数量。自动套打份数。
注:附件为销售出库单套打模板
Python实现逻辑如下:
clr.AddReference("System")
clr.AddReference("Kingdee.BOS.ServiceHelper")
clr.AddReference("Kingdee.BOS.DataEntity")
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.Util import *
from Kingdee.BOS.Log import *
from System import Convert
import System.Type
def OnPrepareNotePrintData(e):
# 这个kd_num是在套打模板中设置的动态字段的名称
if (e.DataSourceId.Equals("FEntity") and e.NotePrintTplId.Equals("dce31243-8850-4dc7-b37e-6d08f3b65329")):#指定套打模板
objType = e.DataObjects[0].DynamicObjectType
if objType.Properties.ContainsKey("kd_num")==False:
attr1 = SimplePropertyAttribute()
attr1.Alias = "kd_num"
#objType.RegisterSimpleProperty("kd_num", typeof(Int32), attributes:SimplePropertyAttribute())
#objType.RegisterSimpleProperty("kd_num",object,None,False,attr1)
objType.RegisterSimpleProperty("kd_num",typeof(Int32),attr1)
notePrintEntryRows = List[DynamicObject]()
notePrintEntryRows_1 = List[DynamicObject]()
for i in range(len(e.DataObjects)):
obj = DynamicObject(objType)
for p in e.DataObjects[i].DynamicObjectType.Properties:
obj[p] = e.DataObjects[i][p]
notePrintEntryRows.Add(obj)
for i in range(len(notePrintEntryRows)):
obj = notePrintEntryRows[i]
if obj.DynamicObjectType.Properties.ContainsKey("FRealQty"):
num = Convert.ToInt32(obj["FRealQty"])#销售出库数量
#this.View.ShowMessage(str(num))
for j in range(num):
tempObj = ObjectUtils.CreateCopy(obj, FormatterType.BinaryFormatter)
notePrintEntryRows_1.Add(tempObj);
tempObj["kd_num"] = j;
else:
notePrintEntryRows_1.Add(obj)
e.DataObjects = notePrintEntryRows_1.ToArray();
楼主可以发一份文本版的吗 文件打不开 感谢
表单插件_根据订单数量循环打印标签
业务需求:每一个产品出库的时候都需要贴一个标签,能否根据出库单上的数量。自动套打份数。注:附件为销售出库单套打模板Python实现逻辑如...
点击下载文档
本文2024-09-16 18:32:07发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22773.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章