【业务流程】--得到源单相关信息原创
3人赞赏了该文章
316次浏览
编辑于2022年11月25日 19:07:06
通过本单的LK表数据得到直接上游单据的内码,分录内码,表名等信息,具体代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.ComponentModel; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Core.Bill; using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Orm; using Kingdee.BOS.Core; using Kingdee.BOS.Core.Metadata.EntityElement; namespace Kingdee.BOS.TestPlugIn22.FormPlugin { [HotUpdate] [Description("单据测试插件")] public class TestFormPlugIn : AbstractDynamicFormPlugIn { public override void AfterBindData(EventArgs e) { base.AfterBindData(e); var dataObj = this.Model.DataObject; //当前单据数据包 var linkEntity = this.View.BillBusinessInfo.GetForm().LinkSet.LinkEntitys[0]; //关联实体 var mainEntity = this.View.BillBusinessInfo.GetEntity(linkEntity.ParentEntityKey); //关联主实体 DynamicObjectCollection mainDataObjs; //关联主实体对应数据包 if (mainEntity is HeadEntity) //关联主实体是单据头 { mainDataObjs = new DynamicObjectCollection(dataObj.DynamicObjectType); } else //关联主实体是单据体(不需要判断,关联主实体除单据头外就是单据体) { mainDataObjs = mainEntity.DynamicProperty.GetValue(dataObj) as DynamicObjectCollection; } foreach (var rowObj in mainDataObjs) { var linkObjs = rowObj[linkEntity.Key] as DynamicObjectCollection; //关联数据包 foreach (var lkObj in linkObjs) { var sId = lkObj["SId"]; //源单和本单关联的实体内码,一般为源单分录内码 var STableName = lkObj["STableName"]; //源单和本单关联的实体表名, var sBillId = lkObj["SBillId"]; //源单内码 } } } } }
赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读