11.2、表单插件,DataChanged,e.NewValue,e.OldValue原创
金蝶云社区-林荫大道cc身份
林荫大道cc
13人赞赏了该文章 7939次浏览 未经作者许可,禁止转载编辑于2020年07月02日 15:29:24
封面


业务场景:当客户,值更新后,把新值带入A字段,旧值带入B字段



11.1




1、打开BOS,销售订单,ctrl拖动,复制2个客户 FCustIdNew,FCustIdOld


image.png


image.png




2、


                //赋值返回的是,基本资料FID内码
                
                //给A字段FCustIdNew,赋新值e.NewValue,更新前的值
                this.View.Model.SetValue("FCustIdNew",e.NewValue);
                
                //给B字段FCustIdOld,赋旧值e.OldValue,更新后的值
                this.View.Model.SetValue("FCustIdOld", e.OldValue);
                
                //刷新
                this.View.UpdateView("FCustIdNew");
                this.View.UpdateView("FCustIdOld");




3、重新生成dll




4、最终效果,重新打开销售订单,第一次填写客户,带出A字段


image.png


第二次填写客户


image.png


--------------------------------



5、调试,看执行过程


image.png


image.png


image.png



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.BOS;
using Kingdee.BOS.Core.Bill.PlugIn;
//添加引用后,缩写函数
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using System.ComponentModel;


namespace Kingdee.Bos.Project.BillDataChanged.plugln
{
    [Description ("DataChanged值更新后触发")]
    
    [Kingdee.BOS.Util.HotUpdate]
    
    
    public class ClassName:AbstractBillPlugIn
    {
        // DataChanged事件
        //public override void DataChanged(BOS.Core.DynamicForm.PlugIn.Args.DataChangedEventArgs e)
        //{
        //    base.DataChanged(e);
        //}
        //添加引用后,缩写函数
        public override void DataChanged(DataChangedEventArgs e)
        {
         base.DataChanged(e);
         
         
            //如果等于客户
            if(e.Field.Key =="FCustId")
            {
                this.View.Model.SetValue("FNote", "客户变化后赋值到备注");
                this.View.Model.SetValue("FNote1", "客户变化后赋值到备注1");
                
                
                //刷新
                this.View.UpdateView("FNote");
                this.View.UpdateView("FNote1");
                
                
                //赋值返回的是,基本资料FID内码
                //给A字段FCustIdNew,赋新值e.NewValue,更新前的值
                this.View.Model.SetValue("FCustIdNew",e.NewValue);
                
                //给B字段FCustIdOld,赋旧值e.OldValue,更新后的值
                this.View.Model.SetValue("FCustIdOld", e.OldValue);
                
                
                //刷新
                this.View.UpdateView("FCustIdNew");
                this.View.UpdateView("FCustIdOld");
            }
        }
    }
}


总目录链接

https://vip.kingdee.com/article/64993872014591232


赞 13