Files
GateDge2023_ljy/03.珠海市汇威精密制造有限公司/HW.PythonPlugIn/穿透表.py
PastSaid 912bea60ac 1
2024-03-28 11:30:14 +08:00

102 lines
4.0 KiB
Python

import clr
clr.AddReference("System")
clr.AddReference("System.Data")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.ServiceHelper")
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.List import *
from Kingdee.BOS.Core.Report import *
from System import *
from System.Data import *
from System.Net import *
from System.Text import *
from Kingdee.BOS.App.Data import *
from Kingdee.BOS.Core.List.PlugIn import *
from Kingdee.BOS.Core.List.PlugIn.Args import *
# def FormatCellValue(args):
# # 日期格式化
# if args.Header.ColType == SqlStorageType.SqlDatetime:
# args.FormateValue = ("{0}").format(DateTime.Parse(str(args.FormateValue)).ToString("yyyy-MM-dd"))
def CellDbClick(e):
e.Cancel = True
fldKey = e.Header.FieldName;
# 生产订单
if fldKey == "MONO":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
moIds = "0";
if data["MOIDS"] !=None and data["MOIDS"] != "":
moIds = data["MOIDS"];
filterStr = "FID IN ({0}) AND FMATERIALID = {1} ".format(moIds,data["ProMaterialId"])
ShowListForm("PRD_MO", filterStr)
# 订单.需求数量
if fldKey == "FBASENEEDQTY":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
moIds = "0";
if data["MOIDS"] !=None and data["MOIDS"] != "":
moIds = data["MOIDS"];
filterStr = "t1.FMOID IN ({0}) AND t1.FMATERIALID = {1} ".format(moIds,data["物料内码"])
ShowListForm("PRD_PPBOM", filterStr)
# 订单.未领数量
if fldKey == "FBASENOPICKEDQTY":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
moIds = "0";
if data["MOIDS"] !=None and data["MOIDS"] != "":
moIds = data["MOIDS"];
filterStr = "t1.FMOID IN ({0}) AND t1.FMATERIALID = {1} ".format(moIds,data["物料内码"])
ShowListForm("PRD_PPBOM", filterStr)
# 未发量
if fldKey == "未发量":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
filterStr = "EXISTS (SELECT 1 FROM T_PRD_MOENTRY_A tt WHERE tt.FID = t1.FMOID AND tt.FSTATUS = 4 ) AND t1.FMATERIALID = {0} ".format(data["物料内码"])
ShowListForm("PRD_PPBOM", filterStr)
# 在制量
if fldKey == "在制量":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
filterStr = "EXISTS (SELECT 1 FROM T_PRD_MOENTRY_A tt WHERE tt.FENTRYID = t1.FENTRYID AND tt.FSTATUS = 4 ) AND t1.FMATERIALID = {0} ".format(data["物料内码"])
ShowListForm("PRD_PPBOM", filterStr)
# 在途量
if fldKey == "在途量":
reportModel = this.Model
tab = reportModel.DataSource
row = e.CellRowIndex - 1
data = tab.Rows[row]
filterStr = "FMRPCLOSESTATUS = 'A' AND FCloseStatus = 'A' AND FMATERIALID = {0} AND FBASEUNITQTY >= FBASESTOCKINQTY".format(data["物料内码"])
# ShowListForm("PUR_PurchaseOrder", filterStr)
showParam = ListShowParameter();
showParam.FormId = "PUR_PurchaseOrder";
showParam.ParentPageId = this.View.PageId;
showParam.OpenStyle.ShowType = ShowType.Floating;
showParam.ListFilterParameter.Filter = filterStr
showParam.IsShowQuickFilter = True;
this.View.ShowForm(showParam)
def ShowListForm(_fromId, _filter, _operationStatus = OperationStatus.VIEW ,_openStyleShowType = ShowType.Floating):
showParam = ListShowParameter();
showParam.FormId = _fromId;
showParam.ParentPageId = this.View.PageId;
showParam.OpenStyle.ShowType = _openStyleShowType;
showParam.ListFilterParameter.Filter = _filter
showParam.IsShowQuickFilter = True;
this.View.ShowForm(showParam)