PLM.二开案例.业务对象平台调整子页签顺序后无法正常显示内容的处理方案
【应用场景】
调整了业务对象的平台表单的子页签控件顺序后,首次打开无法正常显示,必须切换其他页签后切换回来才正常显示。
例如,项目对象中将【项目成果】下的子页签【输入汇总】调整到第一个去,但是打开是无法正常显示
【原因分析】
业务平台使用了延迟加载的方式,只在切换至对应页签时才显示相关内容(大部分)。
其中子页签显示方式为在首次切换至具体父页签时,固定显示预置的首个页签,原因为父页签切换时子页签并未触发页签切换事件,只能默认加载。
因此,调整了子页签的页签顺序后,需要按实际情况在父页签指定需要固定显示的子页签。
PLM标准的业务平台一般都已经指定了相关页签的显示内容,因此可以插件干预,使用PLM封装的页签指定事件TabControlManager.Instance.TabPageIndexChangedForAll实现页签显示。
注意:只有业务平台表单的标准页签才可能使用此方案,例如项目对象、物料平台、公共平台等。请针对具体场景做测试。
【实现步骤】
插件二开过程本文不再赘述,相关指引可参考【汇总】星空PLM二开指南(持续更新) (kingdee.com)
方法说明:
当切换至具体父页签时,使用TabPageIndexChangedForAll方法指定具体页签显示
view: PLMView, PLM视图封装对象
tabKey: 子页签控件标识,子页签所在的页签控件
tabPageKey: 具体需要显示的子页签标识
以本文开头项目页签场景为例:
C#插件
引用参考:
代码实例:
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.K3.PLM.Business.PlugIn; using Kingdee.K3.PLM.Common.BusinessEntity.View; namespace ISV.ProjDemo.Common.BusinessEntity { public class ProjectBillExtend: AbstractPLMDynamicFormPlugIn { public override void TabItemSelectedChange(TabItemSelectedChangeEventArgs e) { base.TabItemSelectedChange(e); if (e.TabKey == "FTAB_ORDER_RESULT") { TabControlManager.Instance.TabPageIndexChangedForAll(this.PLMView, "FTabControl_Order_Result", "FTab_Order_Result_OutputCol"); } } } }
Python插件
import clr; clr.AddReference("Kingdee.K3.PLM.Common.Core") clr.AddReference("Kingdee.K3.PLM.Common.BusinessEntity") from Kingdee.K3.PLM.Common.BusinessEntity.View import TabControlManager from Kingdee.K3.PLM.Common.Core.BOSBridge import PLMView def TabItemSelectedChange(e): if(e.TabKey == "FTAB_ORDER_RESULT"): TabControlManager.Instance.TabPageIndexChangedForAll(PLMView.Get(this.View), "FTabControl_Order_Result", "FTab_Order_Result_OutputCol");
【功能验证】
注册相关插件后即可试验效果(可能需要清理元数据缓存)。
【参考资料】
【汇总】星空PLM二开指南(持续更新) (kingdee.com)
PLM.二开案例.业务对象平台调整子页签顺序后无法正常显示内容的处理方案
【应用场景】调整了业务对象的平台表单的子页签控件顺序后,首次打开无法正常显示,必须切换其他页签后切换回来才正常显示。例如,项目对象...
点击下载文档
本文2024-09-23 03:00:04发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156048.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章