运行期辅助工具使用说明.docx
《运行期辅助工具使用说明.docx》由会员分享,可在线阅读,更多相关《运行期辅助工具使用说明.docx(15页珍藏版)》请在冰豆网上搜索。
运行期辅助工具使用说明
运行期辅助工具使用说明
EAS管理会计系统部邱桂明
1.概念
运行期辅助工具是在EAS客户端程序运行期激活,通过KScript为脚本执行语言,对运行期程序中的变量,方法进行访问和调用,辅助开发人员快捷分析问题的一个工具。
(基于6.0标准版)
2激活方式
与查询分析器工具类似,在资金类单据UI(从FMBillBase继承)中按下Ctrl+Shift+A即弹出工具界面.
3.界面说明
1.标题区:
显示当前捕获的对象变量及其类名
2.内容编辑区:
编写KScript脚本内容区域
3.按钮键区:
●[脚本-选中]:
用Kscript运行内容编辑区中选中的脚本代码
●[查找-选中]:
在被监控UI中查找编辑区选中的控件名,找到后,将以红色5X5方格标识
●[显示/停止]:
alt+s切换功能状态,
按钮为[停止]时,表明程序处于自动捕获变量状态,鼠标滑动,程序在被监控UI中自动捕获鼠标下方控件变量;
按钮为[显示]时,表明程序处于停止自动捕获状态,鼠标滑动,程序不捕获变量,如果内容区有变量,表明该对象被锁定;
●[刷新]:
工具弹出时,默认只监控当前显示的1个UI,点击刷新后,程序将已打开的其他页签UI也加入到监控中.
●[Help]:
点击后弹出常用的辅助脚本,方便使用者调用
●[确定/取消]:
退出运行期辅助工具
4.结果窗体:
如果返回的结果为null值,则结果窗体不弹出,不为null时,打印出对象的toString()方法.
4.功能演示
4.1查询UI的窗口的类名
应用场景:
程序运行时,想查某个UI对应类名
操作图示:
●例1:
授信额度查询ListUI,它属于资金类单据,打开后,按下alt+shift+A,弹出工具界面
默认自动监控当前页签中的UI,鼠标滑向页签处
内容区和标题区则自动显示为
若想copy它的类名,则按下alt+s先停止自动捕获鼠标下变量功能,然后输入.class,并选中
然后按[脚本-选中]键,弹出结果框,即可复制
●例2:
授信用途ListUI,它不从FMBillBase继承,不能直接激活工具
先借助授信额度ListUI弹出工具界面,然后页签切换到授信用途ListUI,点击辅助工具的[刷新]按钮,将授信用途ListUI加入监控,然后按[显示]按钮,开启自动捕获鼠标下控件变量功能,鼠标滑向页签
内容区和标题区即显示结果
后继操作参考例1
4.2鼠标指向控件,查找控件变量名(适用于工具条按钮)
工具激活,且当前UI为被监控时,且开启自动捕获鼠标下控件变量功能,则滑动鼠标时,内容区和标题区将即时反应结果
4.3指定控件名,查找UI中对应的控件位置
工具激活,且当前UI为被监控时,在内容编辑区输入控件变量名,选中后点击[查找-选中]
则对应控件上将显示红色5X5像素方格。
4.4锁定对象变量,访问public属性和方法
参考<鼠标指向控件,查找控件变量名(适用于工具条按钮)>一节,按下alt+S,锁定总额度控件对象变量,加入.getText(),选中
点击[脚本-选中],显示结果
4.5访问对象中的成员,privateprotected适用
参考<锁定对象变量,访问公开属性和方法>一节,当想查看的成员为非公开时,可用如下方法访问到:
首先锁定到指定的对象变量,参考<锁定对象变量,访问公开属性和方法>一节,本例锁定EditUI变量对象CoreUI
点击[help]按钮,弹出常用辅助代码列表
复制代码FMClientHelper.getField(CoreUI,"editData"),放入内容编辑区,选中,
点击[脚本-选中],得到结果
类似的,若想获取其他控件对象的属性,可在锁定后替换CoreUI变量即可。
如汇率的精度是私有的成员privateintprecision=DEFAULT_PRECISION;
访问结果为
4.6调用对象中的方法,privateprotected适用
参考<访问对象中的成员,privateprotected适用>一节,复制[help]的代码
FMClientHelper.invokeMethod("",newClass[]{},CoreUI,newObject[]{}),作调整
""填入方法名,newClass[]{},是方法的参数声明,CoreUI改为锁定的对象变量,newObject[]{}是传递的实际参数,例子:
4.7获得ListUI中查询的实际SQL语句
先锁定ListUI的对象变量,然后复制[help]的代码并选中
FMClientHelper.getListSql(CoreUI),点击[脚本-选中],弹出结果
其中,后面的where部分语句对帮助我们分析ListUI上查询数据的正确性很有帮助
4.8获取F7控件中实际过滤的SQL语句
参考<获得ListUI中查询的实际SQL语句>一节,锁定F7控件
要特别注意的是,1个F7由2个控件组成,1个是负责文本显示,1个是负责f7数据处理的,所以我们要锁定的控件是后者,一定要把鼠标放到图中红色方框放大镜那里,标题中出现extendcontrols.字样后,才alt+s确认锁定,在[help]中复制代码并选中
FMClientHelper.getF7Sql(),修改为FMClientHelper.getF7Sql(prmtProject),运行结果:
4.9指定类,查询在客户端中加载的实际路径
应用场景:
在分析客户现场实际问题中有帮助,尤其是存在二次开发,行业开发情况下排查一些莫名错误时很有帮助,无论有多少个相同的类,都一定只能有1个类被加载。
定位它的位置就能确定问题原因。
在[help]中复制代码并选中FMClientHelper.locateClassCtl(“”)
填入类全名+.class,运行得到结果,例:
Jar:
file标识class文件是从jar包中加载,之后给出了jar位置。
4.10指定元数据,查询在客户端中加载的实际路径
参考<指定类,查询在客户端中加载的实际路径>一节,
代码为:
FMClientHelper.locateMetaCtl(""),例:
4.11指定类,查询在服务端中加载的实际路径
参考<指定类,查询在客户端中加载的实际路径>一节,
代码为:
FMClientHelper.locateClassSvr(“”),例:
4.12指定元数据,查询在服务端中加载的实际路径
参考<指定类,查询在客户端中加载的实际路径>一节,
代码为:
FMClientHelper.locateMetaSvr(""),例:
4.13通过info的属性获得对应绑定的Component
例:
代码为:
FMClientHelper.getCompNameByInfoPropName(CoreUI,"number")
4.14更多功能,符合KScript语法
Kscript是很强大的脚本语言,速度快,兼容性好,如果有需要更多的功能,只要在内容编辑区内写好脚本代码,选中,执行即可。
当然脚本代码要符合Kscript规范。
例如代码:
BigDecimala=newBigDecimal("101.11");
BigDecimalb=newBigDecimal("201.31");
returna+b;
结果:
4.15固化扩展
如果有些方法经常用到,将其固化为java代码,需要时调用一下更加方便,在help
FMClientHelper.helps()方法中加入说明即可。
例:
获取F7查询语句固化为java代码
Helps加入说明
[Help]按键中就出现了,方便调用