import clr clr.AddReference("System") clr.AddReference("Kingdee.BOS") clr.AddReference("Kingdee.BOS.Core") clr.AddReference("Kingdee.BOS.DataEntity") clr.AddReference("Kingdee.BOS.App") clr.AddReference("Kingdee.BOS.Contracts") clr.AddReference("Kingdee.BOS.ServiceHelper") clr.AddReference("ExtensionMethods") from Kingdee.BOS import* from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Orm.DataEntity import* from Kingdee.BOS.Orm.Metadata.DataEntity import* from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from System import * from System.ComponentModel import* from System.Collections.Generic import* from System.Text import* from Kingdee.BOS.ServiceHelper import * from ExtensionMethods import BooleanExtension as boolObjEx from ExtensionMethods import DateTimeExtension as dateObjEx from ExtensionMethods import ObjectExtension as objEx from ExtensionMethods import StringExtension as strObjEx def ButtonClick(e): if e.Key.EndsWith("FToSelectBtn", StringComparison.OrdinalIgnoreCase): billNos = List[str]() billNos.Add("RO2403280019") SelectData(); def SelectData(billNos): jsons = [] sqlL = """/*dialect*/ SELECT t0.FPRODUCTNO ,t0.FPRODUCTID ,SUM(t1.FAMOUNT) AS '领料成本' ,SUM(t1.FQTY) AS '领料数量' ,t2.FMATERIALID ,ISNULL(t4.FNUMBER,'') 'FLOT_TEXT' ,ROW_NUMBER() OVER (PARTITION BY t0.FPRODUCTNO,t0.FPRODUCTID ORDER BY t2.FMATERIALID) RN ,0 plevel FROM T_CB_PROORDERDIME t0 INNER JOIN V_CB_COSTALLORESULTSEND t1 on t0.FPRODUCTDIMEID = t1.FPRODUCTDIMEID INNER JOIN T_HS_INIVSTOCKDIMENSION t2 on t2.FENTRYID = t1.FDIMEENTRYID INNER JOIN V_HS_OUTINSTOCKSEQ t3 on t3.FENTRYID = t1.FOUTINSTOCKID LEFT JOIN T_BD_LOTMASTER t4 on t4.FLOTID = t2.FLOT WHERE t0.FPRODUCTNO IN ('{0}') GROUP BY t0.FPRODUCTNO,t0.FPRODUCTID,t2.FMATERIALID,t4.FNUMBER """ datas = DBServiceHelper.ExecuteDynamicObject(this.Context, sqlL.format("','".join(billNos))); if datas != None and datas.Count > 0: itemBillNos = List[str]() for item in datas: lotObjVal = item["FLOT_TEXT"] lotVal = '' if lotObjVal == None else str(lotObjVal) jsonData = {"工单编号": item["FPRODUCTNO"],"批号": lotVal} if lotVal != '': itemBillNos.Add(lotVal); jsons.append(jsonData); if itemBillNos.Count > 0: return SelectData(itemBillNos) return None else : return None