PLM.生成POM表单对象的二开,生成POM表单插件参考
【应用场景】
根据数据要求生成对应表单对象,如案例PBOM;
【案例演示】
本文不详细介绍插件部署方式,相关内容可以参考【汇总】星空PLM二开指南(持续更新)。
【实现步骤】
<1>编写表单插件和服务插件,代码如下。
对于上述场景,你可以参考下面的代码示例。
在此之前,你可能需要以下组件:
Kingdee.K3.PLM.Common.Core.dll
Kingdee.K3.PLM.Common.Framework.dll
Kingdee.K3.PLM.Common.BusinessEntity.dll
Kingdee.K3.PLM.Business.PlugIn.dll
Kingdee.K3.PLM.CFG.Common.BusinessEntity.dll
Kingdee.K3.PLM.CFG.Common.Core.dll
C# 编码参考示例:
//获取对应表单标识
var categoryId = (long)StandardCategoryType.PBOM;
var formid = CategoryManager.Instance.GetFormIdByCategory(PLMContext, categoryId);
//通过视图代理新建对应标识对象
using (CommonViewProxy proxy = new CommonViewProxy(PLMContext, formid, false))
{
var view = proxy.GetEmptyView();
var obj = view.Model.DataObject;
// 修改对象信息,父项物料,业务类型
obj.SetDynamicObjectItemValue("MainRelation_Id", mainDyn["id"]);
obj.SetDynamicObjectItemValue("MainRelation", mainDyn);
obj.SetDynamicObjectItemValue("CategoryId_Id", categoryId);
obj.SetDynamicObjectItemValue("CategoryId", category);
//可根据自己需要赋值单据头其他内容
SetHeadFieldValue(PLMContext, obj, bom);
//根据单据体标识创建新行
view.Model.CreateNewEntryRow("SlaveRelationEntry");
var row = view.Model.GetEntryCurrentRowIndex("SlaveRelationEntry");
//可根据自己需要赋值单据体其他内容
SetEntityFieldValue(PLMContext, obj, bom);
//最后调对应操作进行保存,或检入
IOperationResult result;
var operation = view.GetFormOperation("Save") as AbstractFormOperation; //调用保存操作
if(operation != null)
{
operation.Option.SetVariableValue("TBECRPUSHECN", true);
OperationHelper.MarkBackCalling(operation.Option);
bool ok = operation.Execute();
try
{
result = operation.Option.GetVariableValue < IOperationResult > (BOSConst.CST_KEY_DynamicFormOperationResult); // 获取保存操作结果
}
catch(Exception e)
{
throw new PLMException(0, "保存失败!");
}
if(ok == false) result.IsSuccess = false;
}
else
{
throw new PLMException(0, "没有找到相关保存的处理!");
}
}
PLM.生成POM表单对象的二开,生成POM表单插件参考
【应用场景】根据数据要求生成对应表单对象,如案例PBOM;【案例演示】本文不详细介绍插件部署方式,相关内容可以参考【汇总】星空PLM二开指...
点击下载文档
本文2024-09-23 03:04:27发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156530.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章