电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-235

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

【应用场景】

PLM的物料、文档等平台框架添加自定义页签,并展示自定义内容。


【实现说明】

目前PLM物料、文档等对象打开时,在对象基础信息基础外套用了一个PLM平台框架,里面包含了其他相关信息的页签(相关对象、相关过程等);

在PLM平台框架下,通过表单参数传递了相关的业务信息,如需二开需要通过表单参数获取必要的对象信息,以便开发;

本案例主要说明相关参数的内容以及使用;


元数据标识

物料平台 PLM_CFG_MATERIALPLATFORM

文档平台 PLM_CFG_DOCPLATFORM


【案例演示】

物料平台添加一个页签,用于展示物料对应的替代方案信息。


【实现步骤】

本文主要提供PLM平台框架的二次开发方案说明以及代码示例,关于BOS扩展等其他操作请参考文末资料;

方案一:自定义解析表单参数

主表单参数说明:

参数标识类型(C#)说明
plm_param_Platform_TempObjectIdlong

页签组id。如果对象没有BOM(获文档组),id为对象本身,否则为BOM的id;如果是BOM Id需要再自行获取父项Id

plm_param_IsHistorybool是否为历史;在查看历史信息时为true
plm_param_HistoryVersionInfoKingdee.BOS.Orm.DataEntity.DynamicObject

历史版本履历信息;如果是查看历史,此处会有相关的历史版本信

息(版本介绍参考https://vip.kingdee.com/article/470236028695887104

plm_param_IsFlowbool是否流程操作;用于表明是否从PLM审核流程中查看对象
plm_param_IsChangeObjectbool是否为新版对象;用于表明是否为从变更单中查看的新版对象

参考组件:

代码示例:

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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信