工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值

【应用场景】

工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值。

标准产品会根据工作中心获取默认的活动信息,这是在表单插件中实现的,如果不希望由工作中心带出,需要二开实现。


【注意事项】

该实现方案涉及到工序计划界面逻辑,非最佳实践,不推荐使用,仅限于特殊场景下的特殊应用。


【实现方案一:表单插件实现】

<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



工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值

【应用场景】工序计划单修改生产组织、工作中心时,不清除准备活动及加工活动相关字段值。标准产品会根据工作中心获取默认的活动信息,这是...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息