PLM.二开案例.对象平台二开方案(物料平台/文档平台)

【应用场景】
PLM的物料、文档等平台框架添加自定义页签,并展示自定义内容。
【实现说明】
目前PLM物料、文档等对象打开时,在对象基础信息基础外套用了一个PLM平台框架,里面包含了其他相关信息的页签(相关对象、相关过程等);
在PLM平台框架下,通过表单参数传递了相关的业务信息,如需二开需要通过表单参数获取必要的对象信息,以便开发;
本案例主要说明相关参数的内容以及使用;
附元数据标识:
物料平台 PLM_CFG_MATERIALPLATFORM
文档平台 PLM_CFG_DOCPLATFORM
【案例演示】
物料平台添加一个页签,用于展示物料对应的替代方案信息。
【实现步骤】
本文主要提供PLM平台框架的二次开发方案说明以及代码示例,关于BOS扩展等其他操作请参考文末资料;
方案一:自定义解析表单参数
主表单参数说明:
| 参数标识 | 类型(C#) | 说明 |
| plm_param_Platform_TempObjectId | long | 页签组id。如果对象没有BOM(获文档组),id为对象本身,否则为BOM的id;如果是BOM Id需要再自行获取父项Id |
| plm_param_IsHistory | bool | 是否为历史;在查看历史信息时为true |
| plm_param_HistoryVersionInfo | Kingdee.BOS.Orm.DataEntity.DynamicObject | 历史版本履历信息;如果是查看历史,此处会有相关的历史版本信 |
| plm_param_IsFlow | bool | 是否流程操作;用于表明是否从PLM审核流程中查看对象 |
| plm_param_IsChangeObject | bool | 是否为新版对象;用于表明是否为从变更单中查看的新版对象 |
参考组件:

代码示例:
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.PLM.Business.PlugIn;
using Kingdee.K3.PLM.CFG.Common.BusinessEntity.Base;
using Kingdee.K3.PLM.CFG.Common.BusinessEntity.Manager;
using System;
using System.ComponentModel;
namespace ISV.PlatformDemo.Common.BusinessEntity
{
[Description("物料平台开发演示"), HotUpdate]
public class MaterialPlatformEx : AbstractPLMDynamicFormPlugIn
{
long objectId = 0;
public override void PreOpenForm(PreOpenFormEventArgs e)
{
objectId = long.Parse(e.OpenParameter.GetCustomParameter("plm_param_Platform_TempObjectId").ToString());
base.PreOpenForm(e);
}
public override void OnLoad(EventArgs e)
{
var currentObj = DomainObjectManager.InstanceByObjectId(PLMContext, objectId).Get(PLMContext, objectId);
long matId;
if (CategoryContract.Instance.IsRelationCategory(PLMContext, Convert.ToInt64(currentObj["CategoryId_Id"]))) //是否为关系类型
{
DynamicObject dyn = BaseObjectManager.Instance(PLMContext).GetMainRelation(PLMContext, objectId);
matId = long.Parse(dyn["FMAINRELATION"].ToString());
}
else
{
matId = objectId;
}
ShowSubList(matId);
base.OnLoad(e);
}
private void ShowSubList(long objId)
{
var listShowParameter = new ListShowParameter();
listShowParameter.FormId = "PLM_STD_BOM_SUB";
listShowParameter.PageId = Guid.NewGuid().ToString();
listShowParameter.ParentPageId = this.View.PageId;
listShowParameter.OpenStyle.ShowType = ShowType.InContainer;
listShowParameter.OpenStyle.TagetKey = "FPanel_SubList"; //自定义的面板标识
listShowParameter.HideListMenu = true;
listShowParameter.IsShowQuickFilter = false;
listShowParameter.MultiSelect = false;
listShowParameter.CustomParams.Add("IsSelectPLM", "1"); //PLM替代方案列表需要此参数
listShowParameter.IsShowUsed = false;
listShowParameter.IsShowApproved = false;
// 给列表设置固定过滤条件
listShowParameter.ListFilterParameter.Filter = string.Format("FMATERIALID='{0}'", objId);
this.View.ShowForm(listShowParameter);
}
}
}方案二:继承PLM抽象插件AbstractPlatformBill
针对此类平台框架,PLM有抽象了一个平
PLM.二开案例.对象平台二开方案(物料平台/文档平台)
【应用场景】PLM的物料、文档等平台框架添加自定义页签,并展示自定义内容。【实现说明】目前PLM物料、文档等对象打开时,在对象基础信息基...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



