子单据体运用数据包赋值原创
16人赞赏了该文章
1,435次浏览
编辑于2023年08月02日 16:22:38
子单据体运用数据包赋值前需要考虑两个问题:(1)怎么获取子单据体的数据包(2)子单据体和单据体之间的联系
业务场景,当单据体中的”F_MES_Class“字段改变时,子单据体中的”F_MES_PersonTotal“字段自动赋值15
//代码实现 using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata.EntityElement; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kingdee.K3Clound.DJC.learn.PlugIn { [Description("【单据插件】"),HotUpdate] public class calssSubEntryBillPlugIn:AbstractBillPlugIn { public override void DataChanged(DataChangedEventArgs e) { base.DataChanged(e); if(e.Field.Key.EqualsIgnoreCase("F_MES_Class")) { //获取F_MES_DetailEntity单据体的数据包 var entry = this.View.Model.DataObject["F_MES_DetailEntity"] as DynamicObjectCollection; //获取F_MES_ClassSubEntity子单据体(包含子单据体的一些属性信息) var entryRow = this.View.BusinessInfo.GetEntryEntity("F_MES_ClassSubEntity"); //获取F_MES_ClassSubEntity子单据体的数据包(当前单据体行下的数据包) var dynamicObject = this.View.Model.GetEntityDataObject(entryRow); //创建一个F_MES_ClassSubEntity子单据体分录行类型的数据包 DynamicObject subEntry = dynamicObject.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject; //F_MES_ClassSubEntity子单据体中的F_MES_PersonTotal字段赋值 subEntry["F_MES_PersonTotal"] = 15; //将子单据体分录行的数据包添加到子单据体的数据包中 dynamicObject.Add(subEntry); //页面刷新,呈现结果 this.View.UpdateView(); } } } }
赞 16
16人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读