PLM.生成POM表单对象的二开,生成POM表单插件参考

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

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二开指...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息