GUI元素库:智能查找与批量输入
SmartInput
SmartInput提供了无需指定元素类型就能查找Input元素的能力。还是以前面的login页面作为例子。
如果要得到Login
name对应的edit
box。代码如下
Set bj = GUI_Html_GetElement(objContainer, "Login name",
"WebEdit")
如果使用SmartInput,代码如下
Set bj = GUI_SmartInput_Get(objContainer, "Login name")
SmartInput会按照下面的顺序依次查找element。如果最终没有找到,那么返回Nothing。
"WebEdit", "WebList", "WebCheckBox",
"WebRadioGroup", "WebFile"
对于单独的一个Input,看上去意义不大。但是如果你面对一个具有几十个Input的Form,那么结合FormInput,在提高开发效率方面就有可观效果。
FormInput
FormInput提供批量读取/设置Form里input的值的方法。
对于企业应用程序,常常会有处理包含几十个Input的Form的情况。如下例所示,这个界面包含16个Input控件,而且这还只是一个Wizrd的5个界面之一。
基本形式
对于这种情况,批量输入数据是很有意义的。比如设计下面一个接口。
GUI_FormInput(objContainer, nameValueMap, nameTypeMap)
调用代码如下
GUI_FormInput(objWizard, _
"Activated=True; Name=xs;
Schedule=Monthly; Day=31; Hour=2; Minute=32;Day#2=31; Hour#2=2;
Minute#2=32",
"Activated=JavaCheckBox;
Name=JavaEdit; Schedule=JavaList; Day=JavaSpin; Hour=JavaSpin; Minute=JavaSpin;
Day#2=JavaSpin; Hour#2=JavaSpin; Minute#2=JavaSpin")
相对于每一个Input控件逐个调用相应的查找函数,FormInput节省了的大量的代码。
利用SmartInput
GUI_FormInput(objWizard, _
"Activated=True; Name=xs;
Schedule=Monthly; Day=31; Hour=2; Minute=32;Day#2=31; Hour#2=2;
Minute#2=32",
"")
可以看到,第三个参数为空字符串,也就是不用指定Input的类型。因为所有的Input控件都被SmartInput支持。
返回已有值
另外,调用GUI_FormInput函数的时候,返回Input的值在某些情况下也是很有用的功能。实际上对于实现来说,在设置Input的值时,获取Input已有的值是很容易的。所以FormInput还会返回Form里所有Input的值,如下所示。
Set mapFormVal = GUI_FormInput(objWizard, _
"Activated=True; Name=xs;
Schedule=Monthly; Day=31; Hour=2; Minute=32;Day#2=31; Hour#2=2;
Minute#2=32",
"")