最近常遇到WinListView这样的对象,这种窗体对象,一般存在有隐藏的数据列和可见的数据列,例如:
上图中,可见的主题,签发者,生效日期等数据列,一般情况下,我们需要给定一个值,例如证书主题,然后在WinListView中定位这一项,进行选择,而WinListView选择某一数据项时,是通过 Select方法,并且后面跟的是数据所在位置的索引值,如:.WinListView().select 1
这样的话,我们就必须先根据给定的一个值(如 主题),在WinListView中定位,然后取出对应的索引值。但是,如果直接取数据项的索引值似乎比较困难。我们了解到WinListView的索引值是从0开始的,知道了这个特性,就可以通过循环的控制来选取指定的值了,如下:
下面的例子是通过循环取值的方式,将WinListView遍历,定位到与给定值匹配的数据后,执行操作:
Dim cert_array(3)
cert_array(0)="cn=raaudit"
cert_array(1)="cn=raadmin"
cert_array(2)="cn=testra01"
For m=1 to 3
Browser("控制台").Page("控制台").Frame("leftFrame").WebButton("选择管理员证书").Click
t_colcount=Browser("控制台").Dialog("请选择证书").WinListView("SysListView32").ColumnCount
For n=0 to t_colcount-1
t_dn=Browser("控制台").Dialog("请选择证书").WinListView("SysListView32").GetSubItem(n,1)
'msgbox t_dn
'msgbox cert_array(m-1)
If t_dn=cert_array(m-1) Then
Browser("控制台").Dialog("请选择证书").WinListView("SysListView32").Selectn
Browser("控制台").Dialog("请选择证书").WinButton("确定").Click
Exit for
End If
Next
Next
ColumnCount--获取WinListView中数据的条目数
GetSubItem--获取指定行,指定列的数据信息
Select --选择数据 select index