电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

在操作插件中判断上游单据是否存在?

来源:金蝶云社区作者:金蝶2024-09-232

在操作插件中判断上游单据是否存在?

目前单据反写时不会判断上游单据是否存在,可以在操作插件中验证,代码如下:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.BusinessFlow.ServiceArgs;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.App.Core;
using Kingdee.BOS.Core.Metadata.FieldElement;
namespace Kingdee.BOS.TestPlugIn.FormOperationPlugIn
{
    [HotUpdate]
    [Description("单据操作插件")]
    public class BillAOperationPlugIn : AbstractOperationServicePlugIn
    {
 
        /// <summary>
        /// 在保存操作插件中验证关联数据包中的上游单据是否存在
        /// </summary>
        /// <param name="e"></param>
        public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
        {
            base.BeforeExecuteOperationTransaction(e);
            if (this.FormOperation.Operation.EqualsIgnoreCase("Save"))
            {
                foreach (var objData in e.DataEntitys)
                {
                    var linkEntity = this.BusinessInfo.GetForm().LinkSet.LinkEntitys[0];//关联实体
                    var parentKey = linkEntity.ParentEntityKey; //关联主实体key(也叫父实体key)
                    var parentEntity = this.BusinessInfo.GetEntity(parentKey);//关联主实体
                    DynamicObjectCollection dynObjs;
                    if (parentEntity is HeadEntity) //如果关联主实体是单据头
                    {
                        dynObjs = new DynamicObjectCollection(objData.DynamicObjectType);
                        dynObjs.Add(objData);
                    }
                    else
                    {
                        dynObjs = parentEntity.DynamicProperty.GetValue(objData) as DynamicObjectCollection;
                    }
                    //循环关联数据包,得到上游单据内码集合
                    List<object> lstBillId = new List<object>();
                    foreach (var entityObj in dynObjs)
                    {
                        var linkObjs = entityObj[linkEntity.Key] as DynamicObjectCollection;  //关联数据包
                        fore

在操作插件中判断上游单据是否存在?

目前单据反写时不会判断上游单据是否存在,可以在操作插件中验证,代码如下:using System;using System.Collections.Generic;using System...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信