单据数据:
套打效果:
python插件:
#引入clr运行库import clr#添加对cloud插件开发的常用组件的引用
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.DataEntity')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from Kingdee.BOS.Orm.DataEntity import *
from Kingdee.BOS.App.Data import *
def OnPrepareNotePrintData(e):
tgtSourceId = 'FPOOrderEntry';
tgtFieldId = 'FEntryNote';
if e.DataObjects == None or e.DataObjects.Length ==0:
return;
if not e.DataSourceId.Equals(tgtSourceId,StringComparison.OrdinalIgnoreCase):
return;
if not e.DataObjects[0].DynamicObjectType.Properties.ContainsKey(tgtFieldId):
return;
tagChar = ' ';
for index in range(len(e.DataObjects)):
strVal = e.DataObjects[index][tgtFieldId];
replaceVal = '';
spaceCnt = 0;
for charVal in strVal:
if charVal == tagChar:
spaceCnt+=1;
else:
if spaceCnt > 0:
#首空格保持
if replaceVal =='':
replaceVal +=tagChar * spaceCnt;
#字符串中间空格改为1个
else:
replaceVal +=tagChar;
spaceCnt =0;
replaceVal += charVal;
#尾空格保持
if spaceCnt > 0 :
replaceVal += tagChar * spaceCnt;
e.DataObjects[index][tgtFieldId] = replaceVal;