【业务流程】--得到源单相关信息原创
金蝶云社区-eris
eris
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人打赏
还没有人打赏,快来当第一个打赏的人吧!