【插件开发】通过代码复制物料

private static IOperationResult CopyMaterial(string materialBaseId,IBillView materialView)
{
// 获取物料的view 初始化
var materialView = CreateMaterialView();
// 执行copy操作
materialView.Model.Copy(materialBaseId);
// 设置物料的number
var modelDataObject = materialView.Model.DataObject;
if (modelDataObject["MaterialBase"] is DynamicObjectCollection modelDataMaterialBase)
{
// 可以根据需求来改变物料,比如修改物料编码,属性
// modelDataObject["Number"] = "Test";
}
// 保存
var operationResult = materialView.Model.Save();
// 提交
materialView.InvokeFormOperation(FormOperationEnum.Submit);
// 审核
var isAudit = materialView.InvokeFormOperation(FormOperationEnum.Audit);
// 如果审核成功就返回
if (isAudit) return operationResult;
operationResult.IsSuccess = false;
return operationResult;
}
private IBillView CreateMaterialView()
{
// 读取物料的元数据
var meta = MetaDataServiceHelper.Load(this.Context, "BD_MATERIAL") as FormMetadata;
var form = meta.BusinessInfo.GetForm();
// 创建用于引入数据的单据view
var type = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web");
Debug.Assert(type != null, nameof(type) + " != null");
var billView = (IDynamicFormViewService) Activator.CreateInstance(type);
// 开始初始化billView:
// 创建视图加载参数对象,指定各种参数,如FormId, 视图(LayoutId)等
var openParam = CreateOpenParameter(meta);
// 动态领域模型服务提供类,通过此类,构建MVC实例
var provider = form.GetFormServiceProvider();
billView.Initialize(openParam, provider);
return billView as IBillView;
}
/// 元数据
/// 视图加载参数对象
private BillOpenParameter CreateOpenParameter(FormMetadata meta)
{
Form form = meta.BusinessInfo.GetForm();
// 指定FormId, LayoutId
BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);
// 数据库上下文
o【插件开发】通过代码复制物料
private static IOperationResult CopyMaterial(string materialBaseId,IBillView materialView){ // 获取物料的view 初始化 var mat...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



