如何实现检验单主表体修改字段值,使用决策表体决策状态为不合格的分录自动勾选不良处理

需求描述:在检验单主表体修改合格数、不合格数或者检验结果字段时,如果修改时使用决策表体只存在一行分录,则会默认按照修改结果刷新使用决策表体数据,此时想要实现当使用决策表体分录的决策状态为不合格的分录,自动将其不良处理字段勾选上。
实现方案:由于标准产品按主表体相关字段值刷新使用决策表体的逻辑的在表单插件中处理的,所以想要实现上述效果也需要二开表单插件才可以,具体思路如下:
二开表单插件继承BaseControlEdit(需要引用Kingdee.K3.MFG.QM.Business.PlugIn.dll 组件),在插件中注册实体服务规则,在实体服务规则中处理上述逻辑(注意:标准产品某些检验类型是不支持不良品处理流程的,所以代码中需要通过业务类型字段去区分是否走二开的逻辑,否则会导致不支持不良处理流程的检验单使用决策状态为不合格时无法反写数量回源单 )

示例代码如下:
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.K3.Core.MFG.EnumConst;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.K3.Core.MFG.Utils;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Core.DependencyRules;
namespace Kingdee.K3.MFG.QM.Business.PlugIn.Bill
{
public class InspectBillTest : BaseControlEdit
{
public override void OnInitialize(InitializeEventArgs e)
{
base.OnInitialize(e);
this.View.RuleContainer.AddPluginRule("FEntity",
RaiseEventType.ValueChanged,
SetPolicyDefect,
new string[] { "FQualifiedQty", "FUnqualifiedQty", "FInspectResult" });
}
private void SetPolicyDefect(DynamicObject dataEntity, dynamic row)
{
string businessType = this.View.Model.GetValue<string>("FBusinessType");
//不支持不良品处理的流程不允许默认勾选不良处理,否则会导致相关数量无法反写回源单:
//目前不支持不良品处理流程的主要包含:8:发货检验 9:生产先检验 20:其他检验 21:工序巡检
如何实现检验单主表体修改字段值,使用决策表体决策状态为不合格的分录自动勾选不良处理
需求描述:在检验单主表体修改合格数、不合格数或者检验结果字段时,如果修改时使用决策表体只存在一行分录,则会默认按照修改结果刷新使用...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



