本文介绍了在金蝶云苍穹平台中设置字段可见性和锁定性的三种情况:设计器设置(元数据层面,优先级高)、代码设置(数据模型层面,优先级低)、以及通过代码修改元数据(元数据层面,优先级高)。文章强调了设置时的从严控制原则,并给出了示例说明不同设置下的最终结果。同时,也推荐读者通过实践尝试并验证,并提供了相关文章链接。
关键字:可见性、锁定性、元数据、this.getView().setVisible();、this.getView().setEnable();
关联文章:设置字段锁定性的几种方法 https://vip.kingdee.com/article/423414423659953920
前言:之前回答过一个可见性的问题,总结了一些可见性方面的情况,又被人问到,写个帖子方便搜索定位
正文:
可见性:
设置可见性这块分3种情况:
设计器里设置的隐藏或者可见性,这是基于元数据层面的,优先级高
代码this.getView().setVisible();,是数据模型层面的,优先级低
也可以代码修改元数据(实现方式点击这里),也是元数据层面的,优先级高
对于设置的可见性,是取并集之后的从严控制,但是也是和优先级及加载顺序相关的。比如:
设计器里设置了可见,代码setVisible设置了不可见,那么最终是不可见(从严控制)
设计器里设置了可见,代码setVisible设置了不可见,然后又通过插件修改了元数据为可见,那么最终是可见的(元数据的优先级高)
设计器里设置了不可见,代码setVisible设置了可见,那么最终是不可见的(从严控制+元数据的优先级高)
设计器里设置了不可见,代码setVisible设置了可见,然后又通过插件修改了元数据为可见,那么最终是可见的(元数据的优先级高,但是插件修改比界面设置加载的晚,元数据最终被修改成了可见)
锁定性:
同理:设置锁定性也是3种情况:
设计器里设置的锁定性,这是基于元数据层面的,优先级高
代码this.getView().setEnable();,是数据模型层面的,优先级低
也可以代码修改元数据(实现方式点击这里),也是元数据层面的,优先级高
2023.3加:设置字段锁定性的几种方法 https://vip.kingdee.com/article/423414423659953920
常见的情况参考可见性。
(最后,可见性本人是有自己尝试过,锁定性是根据可见性推导出来的,如果两个实现方式类似的话,应该没什么问题,大家可以自行尝试并对照结果,实践出真知,有问题可以评论反馈,感谢~)
附:
从严控制:即以最严格的方式来管控,比如有一个地方设置了他为不可见,就不可见。金蝶云苍穹中有很多地方都使用了从严控制的原则,最常见的就是数据权限管控。比如有任何一个地方设置该条数据不可见,那么最终结果就是不可见。
如果发现文章有什么问题欢迎大家指出,我将积极验证修改。如果有帮到你,还请来一波三连:关注,点赞,收藏【emoji】【emoji】。觉得有用也可以分享到公司云之家群,惠及其他同事,感谢您的耐心观看~~~
推荐阅读