【学习】字段值更新和删除分录行
引用
值更新也是表单插件的一种,需要继承AbstractBillPlugIn类来重写DataChanged方法
注意
获取某个字段是否触发了值更新e.Field.Key.EqualsIgnoreCase("字段标识");
备注:字段触发值更新需要在BOS里面勾选即时触发值更新事件
值更新事件
单据头更新单据体
if (e.Field.Key.EqualsIgnoreCase("F_VVHD_WL")) { //获取单据头的物料赋值给单据体 var F_VVHD_WL = this.Model.GetValue("F_VVHD_WL"); string Name1 = (F_VVHD_WL as DynamicObject)["id"].ToString();//取值 int count = this.Model.GetEntryRowCount("FPOOrderEntry");//获取采购订单分录行总数 for (int i = 0; i < count; i++) { this.Model.SetValue("FMaterialId", Name1, i);//赋值 } }
单据体更新单据头
if (e.Field.Key.EqualsIgnoreCase("FQty")) { int count = this.Model.GetEntryRowCount("FPOOrderEntry");//获取采购订单分录行总数 double Qty = 0; for (int i = 0; i < count; i++) { string FQty = this.Model.GetValue("FQty", i).ToString();//获取采购订单分录行总数 Qty += double.Parse(FQty); } this.Model.SetValue("F_VVHD_Text", Qty.ToString());//赋值 }
值更新需要注意
AfterDeleteRow 分录行删除事件
public override void AfterDeleteRow(AfterDeleteRowEventArgs e)//分录行被删除时 { //将上面的代码复制一份 base.AfterDeleteRow(e); int count = this.Model.GetEntryRowCount("FPOOrderEntry"); double Qty = 0; for (int i = 0; i < count; i++) { string FQty = this.Model.GetValue("FQty", i).ToString(); Qty += double.Parse(FQty); } this.Model.SetValue("F_VVHD_Text", Qty.ToString()); }
代码分享
using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; namespace XueXi { [Description("学习值更新事件"), HotUpdate] public class Class3 : AbstractBillPlugIn { public override void DataChanged(DataChangedEventArgs e) { base.DataChanged(e); if (e.Field.Key.EqualsIgnoreCase("F_VVHD_WL")) { //获取单据头的物料赋值给单据体 var F_VVHD_WL = this.Model.GetValue("F_VVHD_WL"); string Name1 = (F_VVHD_WL as DynamicObject)["id"].ToString();//取值 int count = this.Model.GetEntryRowCount("FPOOrderEntry");//获取采购订单分录行总数 for (int i = 0; i < count; i++) { this.Model.SetValue("FMaterialId", Name1, i);//赋值 } } if (e.Field.Key.EqualsIgnoreCase("FQty")) { int count = this.Model.GetEntryRowCount("FPOOrderEntry");//获取采购订单分录行总数 double Qty = 0; for (int i = 0; i < count; i++) { string FQty = this.Model.GetValue("FQty", i).ToString();//获取采购订单分录行总数 Qty += double.Parse(FQty); } this.Model.SetValue("F_VVHD_Text", Qty.ToString());//赋值 } } public override void AfterDeleteRow(AfterDeleteRowEventArgs e)//分录行被删除时 { //将上面的代码复制一份 base.AfterDeleteRow(e); int count = this.Model.GetEntryRowCount("FPOOrderEntry"); double Qty = 0; for (int i = 0; i < count; i++) { string FQty = this.Model.GetValue("FQty", i).ToString(); Qty += double.Parse(FQty); } this.Model.SetValue("F_VVHD_Text", Qty.ToString()); } } }
【学习】字段值更新和删除分录行
引用值更新也是表单插件的一种,需要继承AbstractBillPlugIn类来重写DataChanged方法注意获取某个字段是否触发了值更新e.Field.Key.EqualsI...
点击下载文档
本文2024-09-16 17:14:12发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14408.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章