解决大分辨率和个人喜好及近视远视的焦虑,实现星空表单界面放大显示(GUI客户端)
本篇二开基础:BOS平台的二开编程(论坛),python语法,json语法
一、背景
星空界面的整体布局是经过专业人机设计的,以当前最合适的方式展示界面。在客户端场景下,客户端具有的易操作,高性能,大数据容量等好处,使得客户端应用拥有很大的用户群。然而场景千变万化,不能一以盖之,在个人喜好习惯差异,近视和远视等现实场景下,在大分辨率设备应用中,我们需要一个更合适的字形展示来适应这些变化与差异,来解决我们的焦虑。
二、问题场景
1、客户端具有大分辨率显示设备;
2、使用人员个人喜好和习惯;
3、存在近视远视的焦虑;
三、星空的解决方案与操作指引 (发布:PT-146884 [7.7.0.202108] 构建号7.7.2256.5 2021.08.06)
1、解决难点:
数据驱动模式下,在不同端点上展示不同效果,在固定布局下解决大字体下的重叠与遮挡,大布局与显示区域容量的冲突。
2、本地配置法:
2.1、配置如图,在用户菜单 【我的设置-本地配置】中设置【用户界面放大】参数,设置范围100%~200%。
2.2、效果如下图,设置为150%时,与100%的窗口对比。
3、二开代码编程法
3.1、Python表单插件编程(表单插件编程参考论坛其他帖子,这里不做展开),具体代码在【二开指引中提供】
3.2、效果如下图,设置为150%时,与100%的窗口对比。
四、二开指引
1、二开编码参考:https://wenku.my7c.com/article/170666 的 【插件实现样例】仅参考方法,目标表单按实际需求选择。
2、控制代码如下:
from Kingdee.BOS.JSON import * def ButtonClick(e): if(e.Key=='FBTNTEST'): args = JSONArray() arg = JSONObject() #设置放大150% arg['scale'] = 1.5 args.Add(arg) this.View.AddAction('SetScale', args) if(e.Key=='FBTNTESTUNDO'): args = JSONArray() arg = JSONObject() #设置恢复默认配置 arg['reset'] = True args.Add(arg) this.View.AddAction('SetScale', args)
3、复制代码如果存在问题,请参考帖子解决论坛字符转译问题: https://wenku.my7c.com/article/158166130920311808
五、答疑
疑问1、为何是本地配置,不是全局配置?
答:定位端设备差异,以及个人喜好,近视远视等差异,在每个端上的具体情况差异不同,因此最合理配置方式是在具体端上控制。
疑问2、为何有的窗口不会放大,例如本地参数配置?
答:本地参数配置本不是一个业务功能,同时参数也比较多,避免放大后导致参数不可直观看见,因此不做放大处理。再如调试httpwach窗口同理。另外,弹出窗口的标题栏我们也不做放大处理,由于放大后整体界面空间就变得有限和宝贵,对于不常需耗费眼睛的标题栏,我们为了节省可用空间也不做放大处理。
疑问3、放大后,在老电脑下感觉性能有影响到
答:这是因为整体布局后,在放大渲染过程中,需要重新计算所有元素的位置和大小尺寸,这时就存在二次运算与布局调整,因此会存在性能消耗,因此在使用这个功能时需要做好性能与功能权衡,或者升级下客户端的终端电脑配置。
疑问4、除了客户端外,Silverlight和HTML5端是否支持?
答:Silverlight和HTML5端都运行在浏览器上,浏览器本身已经有放大功能,可以按着键盘Ctrl键+鼠标滚轮就可以实现整体放大了,或者浏览器菜单的【缩放】菜单项进行设置。星空这里就不再做画蛇添足的功能了。
。。。。。。
创建:2021-08-06 10:39:00
编辑:2021-08-09 10:37:00
不错不错
解决大分辨率和个人喜好及近视远视的焦虑,实现星空表单界面放大显示(GUI客户端)
本文2024-09-16 18:39:38发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23581.html