泉州xx前端平台支持方案备忘

上次编辑于2019年8月27日 17:30:59
泉州xx前端平台支持方案备忘:
(已在2019-01-24发布正式7.3第一个补丁 PT131268 中包含以下所有内容)
(已发基于2018-10-26 PT128132 的临时补丁 【TempPatch_V7_BOS.7.0.553.5.kdpkg】 ,ClientVersion【7.2.983.9】 )
一、【录入焦点跳转问题】方案:通过为单据体增加【指定焦点跳转模式】功能来实现具体某个单据的录入跳转的流畅体验(需要简单的插件二开Python即可)
--二开方法指引, 【表单业务插件】 :
from Kingdee.BOS.JSON import *
def AfterBindData(e):
#切换表格录入光标导航为服务端指定字段模式
navCellOpts = JSONObject()
#设置回车跳转模式为指定字段模式【specfields】
#参数fields:导航字段列表,格式: 字段1,字段2,字段3,字段4,...,字段n
navCellOpts["mode"] = "specfields"
#【 clientAuto】模式下,不需要指定字段,会在可编辑列之间自动跳转(动态锁定的除外)
#设置字段的跳转顺序,如果字段在界面上不可见,就不要设置上去。否则会把光标跳没了。
navCellOpts["fields"] = "FMATERIALID,FUNITID,FQTY,FPURNUMBER,FPRICEUNITID,FPRICEUNITQTY"
#设置是否为强制由服务器控制
navCellOpts["isServerControl"] = False
#在客户端跳转情况下(isServerControl=False才有效),个别字段可以设置为强制由服务器控制,如果全部无需服务端控制就不用设置
#navCellOpts["ctrlBySvrFields"] = "FMATERIALID,FQTY,FPRICEUNITQTY"
#参数autoChangeRow:自动跳下一行
navCellOpts["autoChangeRow"] = True
#客户端跳转延迟ms数(isServerControl=False才有效)
navCellOpts["clientDelay"] =100
#写入单据体参数
this.View.GetControl("FPOOrderEntry").InvokeControlMethod("SpecNextFields", navCellOpts)
#过于频繁的无必要事件要关闭,否则影响界面效率
this.View.GetControl("FPOOrderEntry").SetCustomPropertyValue("FireCellSelectChangeEvent", False)
def CustomEvents(e):
#通知客户端可以跳下个字段了 e.Key必须全大写
if(e.Key=="FPOOrderEntry" and e.EventName=="Kingdee.BOS.Grid.SpecNavTo"):
this.View.GetControl("FPOOrderEntry").InvokeControlMethod("SpecToNextField", None)
【解决问题说明】原来的单据体回车跳转模式和人工指定字段回车跳转模式:
1、原来的跳转是不等服务端操作的响应,这时如果直接跳转会导致录入数据被比较慢的服务器返回数据覆盖,或者要跳转字段被更新或锁定,导致基础资料要敲两次回车;
2、现在这种人工指定模式是一定要等服务器返回才跳转,这样就不会有录入数据被服务器覆盖的风险,也不会存在需要敲两次回车的问题;
人工指定模式:录入[物料]-》回车-》服务的返回该行数据包括[数量]初始值,更新[单据体]字段-》跳转 [数量]-》录入50-》回车-》然后服务计算返回,更新[单据体]字段-》跳转下一个字段。
但说到底,都是服务器返回比录入操作慢。这个控制好服务器返回再0.5秒以内,应该就感受不到了;
二、【组合显示字段的表头对齐问题】方案:通过增加【列头标题对齐设置】功能来实现插件制定列左右对其方式和标题的修改(需要简单的插件二开Python即可--预研基本可行--预计放入下个补丁)
--二开方法指引, 【表单业务插件】 :
from Kingdee.BOS.JSON import *
def AfterBindData(e):
#设置列标题对齐方式和列标题文本
job = JSONObject()
job["key"] = "FUNSHOWDESCRIPT"
job["headeralignment"] = "left"
job["header"] = "订单日期 |计划跟踪号 |客户 |物料"
this.View.GetControl("FDetailEntity").InvokeControlMethod("UpdateFieldStates", job)
job = JSONObject()
job["key"] = "FSHOWDESCRIPT2"
job["
泉州xx前端平台支持方案备忘
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



