工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值
【应用场景】
工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值。
标准产品会根据工作中心获取默认的活动信息,这是在表单插件中实现的,如果不希望由工作中心带出,需要二开实现。
【注意事项】
该实现方案涉及到工序计划界面逻辑,非最佳实践,不推荐使用,仅限于特殊场景下的特殊应用。
【实现方案一:表单插件实现】
<1>编写表单插件,继承标准的工序计划表单插件OperationPlanningEdit,跳过工作中心修改后的赋值,代码如下:
public class ExtendOperationPlanningEdit : OperationPlanningEdit { public override void DataChanged(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.DataChangedEventArgs e) { if ("FWorkCenterId" == e.Field.Key) // 工作中心 { return; // 跳过赋值 } base.DataChanged(e); } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展“工序计划”,取消启用标准的表单插件OperationPlanningEdit,注册上述二开的表单插件,保存元数据。
【实现方案二:Python脚本实现】
BOSIDE扩展“工序计划”,“表单插件”中注册Python脚本,先取得工作中心修改前的活动值,待工作中心修改后再恢复。
Python脚本如下:
fieldKeyArr=["FActivity1Id","FActivity1UnitId","FActivity1FormulaId","FActivity1RepFormulaId","FActivity1BaseQty","FActivity1Qty","FActivity2Id","FActivity2UnitId","FActivity2FormulaId","FActivity2RepFormulaId","FActivity2BaseQty","FActivity2Qty"] fieldDic={} def BeforeUpdateValue(e): if ("FWorkCenterId".Equals(e.Key)): for fieldKey in fieldKeyArr: fieldDic[fieldKey]=this.Model.GetValue(fieldKey, e.Row) def DataChanged(e): if ("FWorkCenterId".Equals(e.Field.Key)): for fieldKey in fieldDic.keys(): this.Model.SetValue(fieldKey, fieldDic[fieldKey], e.Row) fieldDic.Clear()
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值
【应用场景】工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值。标准产品会根据工作中心获取默认的活动信息,这是...
点击下载文档
本文2024-09-23 03:26:44发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158905.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章