wincc报表日报表实例_工作系统二次开发二Python加工原膜切割日报表数据实例

本文介绍了如何使用Python对WinCC报表数据进行二次处理,具体包括:当查询工作令后,根据特定规则修改数据。如加工单号和母卷物料编号相同,领料数量变为0;加工单号和成品行号相同,生产数量和平方数清零;加工单号相同,效率统计字段置零。通过遍历和比较json对象,实现了数据的条件更新。
摘要由CSDN通过智能技术生成

8d9d4c213c9bb18e7dfa077aa5d6d36c.png

#工作系统二次开发二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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值