通过单据内码加载其实体模型或加载空的单据实体模型

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

通过单据内码加载其实体模型或加载空的单据实体模型

  1. 通过单据内码加载其实体模型

    主要就是通过BusinessDataServiceHelper.LoadSingle方法去加载,具体代码如下:


  IMetaDataService service = ServiceHelper.GetService<IMetaDataService>();
  FormMetadata formMetadata = (FormMetadata)service.Load(base.Context, "ENG_BOM");
  BusinessInfo info = formMetadata.BusinessInfo;
  DynamicObject csbomMaterial = BusinessDataServiceHelper.LoadSingle(this.Context, "2084104", info.GetDynamicObjectType());//获取指定BOM的实体

我这里获取的是单据内码为2084104的BOM,也就是物料清单的实体模型,ENG_BOM是物料清单的唯一标识,2084104是物料清单的内码


获取其分录就是

 DynamicObjectCollection bomEntitys = csbomMaterial ["单据体标识"] as DynamicObjectCollection;



   2.加载空的单据实体模型

其实就是new一个新的出来

 IMetaDataService service = ServiceHelper.GetService<IMetaDataService>();
 FormMetadata formMetadata = (FormMetadata)service.Load(base.Context, "ENG_BOM");
 var id = this.Context.CurrentOrganizationInfo.ID;//通过Context获取当前组织id
 DynamicObject material = new DynamicObject(formMetadata.BusinessInfo.GetDynamicObjectType());
 获取其分录就是
 DynamicObjectCollection bomEntitys = material ["单据体标识"] as DynamicObjectCollection;
  DynamicObject entry = new DynamicObject(bomEntitys.DynamicCollectionItemPropertyType);//新增分录
  bomEntitys.Add(entry );//将新增的分录添加到单据体内
  OperateOption option = null;
  ISaveService delService = ServiceHelper.GetService<ISaveService>();
   //调用保存
   IOperationResult result = delService.Save(base.Context, formMetadata.BusinessInfo, new DynamicObject[] { material }, option);
   if (result.IsSuccess)
      {
        this.View.ShowMessage("完成");
       }
       //提交审核也是一样的方法,不过就是Save,Submit和Audit的区别

这里实例化的是物料清单空的实体模型


引用:using Kingdee.BOS.ServiceHelper;


保存之后自动生成主键,我想获取这个主键的话该怎么作呀

通过单据内码加载其实体模型或加载空的单据实体模型

通过单据内码加载其实体模型主要就是通过BusinessDataServiceHelper.LoadSingle方法去加载,具体代码如下: IMetaDataService service = S...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息