设置可见性的几种方式及常见情况(锁定性同理)原创
金蝶云社区-JeremyG
JeremyG
10人赞赏了该文章 6323次浏览 未经作者许可,禁止转载编辑于2023年03月14日 11:33:43

关键字:可见性、锁定性、元数据、this.getView().setVisible();、this.getView().setEnable();

关联文章设置字段锁定性的几种方法 https://vip.kingdee.com/article/423414423659953920 


前言:之前回答过一个可见性的问题,总结了一些可见性方面的情况,又被人问到,写个帖子方便搜索定位


正文:

可见性:

设置可见性这块分3种情况:

  1. 设计器里设置的隐藏或者可见性,这是基于元数据层面的,优先级高

  2. 代码this.getView().setVisible();,是数据模型层面的,优先级低

  3. 也可以代码修改元数据(实现方式点击这里),也是元数据层面的,优先级高


对于设置的可见性,是取并集之后的从严控制,但是也是和优先级及加载顺序相关的。比如:

  1. 设计器里设置了可见,代码setVisible设置了不可见,那么最终是不可见(从严控制)

  2. 设计器里设置了可见,代码setVisible设置了不可见,然后又通过插件修改了元数据为可见,那么最终是可见的(元数据的优先级高)

  3. 设计器里设置了不可见,代码setVisible设置了可见,那么最终是不可见的(从严控制+元数据的优先级高)

  4. 设计器里设置了不可见,代码setVisible设置了可见,然后又通过插件修改了元数据为可见,那么最终是可见的(元数据的优先级高,但是插件修改比界面设置加载的晚,元数据最终被修改成了可见)


锁定性:

同理:设置锁定性也是3种情况:

  1. 设计器里设置的锁定性,这是基于元数据层面的,优先级高

  2. 代码this.getView().setEnable();,是数据模型层面的,优先级低

  3. 也可以代码修改元数据(实现方式点击这里),也是元数据层面的,优先级高

2023.3加:设置字段锁定性的几种方法 https://vip.kingdee.com/article/423414423659953920 


常见的情况参考可见性。

(最后,可见性本人是有自己尝试过,锁定性是根据可见性推导出来的,如果两个实现方式类似的话,应该没什么问题,大家可以自行尝试并对照结果,实践出真知,有问题可以评论反馈,感谢~)


附:

从严控制:即以最严格的方式来管控,比如有一个地方设置了他为不可见,就不可见。金蝶云苍穹中有很多地方都使用了从严控制的原则,最常见的就是数据权限管控。比如有任何一个地方设置该条数据不可见,那么最终结果就是不可见。



如果发现文章有什么问题欢迎大家指出,我将积极验证修改。如果有帮到你,还请来一波三连:关注,点赞,收藏【emoji】【emoji】。觉得有用也可以分享到公司云之家群,惠及其他同事,感谢您的耐心观看~~~


赞 10