![8d9d4c213c9bb18e7dfa077aa5d6d36c.png](https://i-blog.csdnimg.cn/blog_migrate/fc287c1d1c36e1aa3a8ec072de4165e0.jpeg)
#工作系统二次开发二Python加工原膜切割日报表数据实例
#当查询一个或多个工作令后在表格展示数据前按要求对数据进行二次处理,处理要求看如下
#1、加工单号和母卷物料编号相同则把除第一行外的领料有关的数量变成0
#2、加工单号和成品行号相同则把除第一行外的生产数量,平方数
#3、加工单号相同把除第一行外的效率统计字段清零
#引入库文件
import json
import spam
data = [[data]]; #[data]是获取当前表单所查询据,[[data]]声明并生成json对象
strMInfo = ""; #存放上一行加工单号和生产成品行号
strPInfo = ""; #存放上一行加工单号和生产领料行号
strSheetinfo = "" #单据编号
strSaveM = ""; #存放单据编号+生产成品数据行号
strSaveD = ""; #存放加工单号和生产领料行号
strM002 = ""; #单据编号
reccount = data.__len__(); #取得json对象的长度
for index in xrange(reccount): #for 循环
#data[index]["D014"] = data[index]["D014"] + "修改了内容";
strSheetinfo = data[index]["M002"];
strMInfo = strSheetinfo + str(data[index]["D009"]);
strPInfo = strSheetinfo + str(data[index]["M009"]);
if(strSaveM == strMInfo) or (strSaveM.find(strMInfo+"/") != -1) or (strSaveM.find("/" + strMInfo) != -1): #加工单号和母卷物料编号相同则把领料有关的数量变成0
data[index]["M602"] = "0";
data[index]["M604"] = "0";
data[index]["D027"] = "0";
data[index]["M608"] = "0";
data[index]["M605"] = "0";
data[index]["M607"] = "0";
else:
if(strSaveM == ""):
strSaveM = strMInfo;
else:
strSaveM = strSaveM + "/" + strMInfo;
if(strSaveD == strPInfo) or (strSaveD.find(strPInfo+"/") != -1) or (strSaveD.find("/" + strPInfo) != -1): #如果切割单号和生产成品数据行号相同则把把以下成品有关的字段置零
data[index]["M603"] = "0";
data[index]["M606"] = "0";
data[index]["M812"] = "0";
else:
if(strSaveD == ""):
strSaveD = strPInfo;
else:
strSaveD = strSaveD + "/" + strPInfo;
if(strM002 == strSheetinfo) or (strM002.find(strSheetinfo+"/") != -1) or (strM002.find("/" + strSheetinfo) != -1): //同一张切割单把以下统计字段置零
data[index]["M504"] = "0";
data[index]["M501"] = "0";
data[index]["M502"] = "0";
data[index]["M503"] = "0";
else:
if(strM002 == ""):
strM002 = strSheetinfo;
else:
strM002 = strM002 + "/" + strSheetinfo;
#输出json文本数据
#jsonTxt = json.dumps(data,ensure_ascii=False);
spam.ExecPythonAction_Clear('', 1); #清空消息文本
print "ExecPythonAction_One"; #执行某个动作函数
spam.ExecPythonActionName('', 1);
for index in range(reccount): #for 循环
print json.dumps(data[index],ensure_ascii=False); #发送编辑过的json数据
spam.ExecPythonAction_Text('', 1);
#print jsonTxt; #发送编辑过的json数据
spam.ExecPythonAction('', 1);
![b575098cc9485a9064c15ade314bffc8.png](https://i-blog.csdnimg.cn/blog_migrate/b89ee01ebe1c53a66f8a2380f4db4975.jpeg)