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

目前单据反写时不会判断上游单据是否存在,可以在操作插件中验证,代码如下:
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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



