套打按照单据体序号排序—分组出现顺序排序

应用场景:
套打时,默认是按照分组字段做升序或降序排序,如物料编码,但是某些场景需要按照单据上序号排序,而不是要按照物料编码来做升序降序排列,希望保持跟单据上显示的一致。
以我这边环境为例:
检验单套打按照检验项目和组别分组之后,默认排序会跟系统单据上不一致。如下图:


到套打上会按照检验项目首字母进行排序,这样就跟单据上检验项目顺序不一致,IQC反馈检验是按照顺序进行检验,所以就产生了这个需求场景。
这个时候需要通过注册python插件来干预,让其按照检验项目序号进行排序。
插件如下:
from System import *
from Kingdee.BOS import *
from Kingdee.BOS.DataEntity import *
def OnPrepareNotePrintData(e):
if e.NotePrintTplId.Equals("LLJYBGTD1"):
if e.DataSourceId.Equals("FItemDetail",StringComparison.OrdinalIgnoreCase):
seqKey = "FItemDetail" + "_" + "FSeq";
materialKey = "FInspectItemId_FNumber";
if e.DataObjects == None or e.DataObjects.Length <= 0:
return;
if not e.DataObjects[0].DynamicObjectType.Properties.ContainsKey(materialKey):
return;
if not e.DataObjects[0].DynamicObjectType.Properties.ContainsKey(seqKey):
return;
rowMaterialSeq = {};
for index in range(len(e.DataObjects)):
material = e.DataObjects[index][materialKey];
套打按照单据体序号排序—分组出现顺序排序
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



