电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

缺料分析已选单据去重二开方案

来源:金蝶云社区作者:金蝶2024-09-234

缺料分析已选单据去重二开方案

## 实现原理 1.通过BeforeDoOperation事件捕获选单操作,将已选的单据传入e.Option对象。 2.目标单列表插件通过重写AfterCreateSqlBuilderParameter事件,处理e.sqlBuilderParameter对象的查询筛选条件。本方案主要是添加ExtJoinTable和增加where条件的形式实现已选数据去重。 ## 参考插件(Python) ### 插件一:注册于缺料分析单表单插件属性 ```python import clr clr.AddReference('System') from System.Collections.Generic import List from System import Int64 def BeforeDoOperation(e): if e.Operation.FormOperation.Operation == "Draw": prdIds=List[Int64]() subreqIds=List[Int64]() for entry in this.Model.DataObject["Entity"]: if entry['RowType']<>'0': continue if entry['SelOrderType']=='A' and entry['MoEntryId']>0: prdIds.Add(entry['MoEntryId']) elif entry['SelOrderType']=='B' and entry['MoEntryId']>0: subreqIds.Add(entry['MoEntryId']) if subreqIds.Count>0: e.Option.SetVariableValue('subreqIds',subreqIds) if prdIds.Count>0: e.Option.SetVariableValue("prdIds",prdIds) ``` ### 插件二:注册于生产订单列表 ```python import clr clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS') clr.AddReference('System.Core') from Kingdee.BOS.Core.SqlBuilder import QueryBuilderParemeter from Kingdee.BOS.Core.SqlBuilder import ExtJoinTableDescription from Kingdee.BOS.Util import StringUtils from Kingdee.BOS import SqlParam from Kingdee.BOS import KDDbType from System.Collections.Generic import List from System.Linq import Enumerable def AfterCreateSqlBuilderParameter(e): if this.View.ParentFormView is None: return if this.View.ParentFormView.Session is None: return if this.View.ParentFormView.Session.ContainsKey('_DrawOperationOption_')==False: return option = this.View.ParentFormView.Session["_DrawOperationOption_"] if option is None: return if option.ContainsVariable('prdIds')==False: return existIds = option.GetVariables()['prdIds'] extd= ExtJoinTableDescription() extd.FieldName = "FID" extd.TableName = StringUtils.GetSqlWithCardinality(existIds.Count, "@eids", 1) extd.TableNameAs = "tls" extd.ScourceKey = "FTreeEntity_FENTRYID" extd.JoinOption = QueryBuilderParemeter.JoinOption.LeftJoin e.sqlBuilderParameter.ExtJoinTables.Add(extd) e.sqlBuilderParameter.SqlParams.Add(SqlParam("@eids", KDDbType.udt_inttable, existIds.ToArray())) if e.sqlBuilderParameter.FilterClauseWihtKey is not None and e.sqlBuilderParameter.FilterClauseWihtKey.Length>0: e.sqlBuilderParameter.FilterClauseWihtKey +=" And tls.FID is NULL" else: e.sqlBuilderParameter

缺料分析已选单据去重二开方案

## 实现原理1.通过BeforeDoOperation事件捕获选单操作,将已选的单据传入e.Option对象。2.目标单列表插件通过重写AfterCreateSqlBuilderPa...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信