Files
GateDge2023_ljy/08.昶东/EastChanger.Python/VUOY_Ledger/BillEventPlugInEx.py

42 lines
1.6 KiB
Python
Raw Normal View History

2024-04-22 09:39:19 +08:00
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")
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.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import *
from Kingdee.BOS.Util import StringUtils,JsonUtil
from System import *
from System.ComponentModel import *
from System.Collections.Generic import *
from System.Text import*
from Kingdee.BOS.ServiceHelper import *
def BeforeF7Select(e):
if e.FieldKey.upper() == "FLEDGERSTOCKID":
id = this.Model.DataObject["Id"]
details = this.View.BusinessInfo.GetEntity("F_VUOY_LEDGERSTOCK")
entry = this.View.Model.GetEntityDataObject(details)
joinFilterSrt = """
FSTOCKID NOT IN (
SELECT t0es.FLEDGERSTOCKID
FROM T_BD_LEDGERENTRY t0e
INNER JOIN T_BD_LEDGERSTOCK t0es on t0e.FEntryID = t0es.FEntryID
WHERE FID != {0})
""".format(id)
if entry != None and entry.Count > 0:
idList = map(str,set(map(lambda x : x["FLedgerStockId_Id"], entry)))
if idList.Count > 0:
e.ListFilterParameter.Filter = StringUtils.JoinFilterString(e.ListFilterParameter.Filter," FSTOCKID NOT IN ({0})".format(",".join(idList)))
e.ListFilterParameter.Filter = StringUtils.JoinFilterString(e.ListFilterParameter.Filter, joinFilterSrt)
return