踏实,努力向上!

获取WinListView的具体值,并导出表中

上一篇 / 下一篇  2009-02-08 14:55:11 / 个人分类:QTP

Dialog("AA").Restore
Dialog("AA").WinButton("Button").Click
Dialog("AA").WinListView("WinListView").Select "重要"


#下面这四行都是对datatable添加列名,并且初始化为0。
DataTable.GlobalSheet.AddParameter "类型", 00
DataTable.GlobalSheet.AddParameter "kb号", 00
DataTable.GlobalSheet.AddParameter "描述", 00
DataTable.GlobalSheet.AddParameter "当前状态", 00

#定义变量
Dim i,kb1,kb2,kb3,kb4

#由于有16行要输出,所以循环从1到16。
For i = 1 to 16

#下面这四行是对WinListView的取值。(i,0)表求第i行,第0列。一共有四列。
kb1 = Dialog("AA").WinListView("WinListView").GetSubItem( i, 0)
kb2= Dialog("AA").WinListView("WinListView").GetSubItem( i, 1)
kb3 = Dialog("AA").WinListView("WinListView").GetSubItem( i, 2)
kb4 = Dialog("AA").WinListView("WinListView").GetSubItem( i, 3)

#这四行是将取得的值放入到datatable中,相应的列名下。如将kb1的值放入到"类型“下。
DataTable.Value(  "类型") = kb1
DataTable.Value(  "kb号") = kb2
DataTable.Value(  "描述") = kb3
DataTable.Value(  "当前状态") = kb4

#下面这行是将当前的行指向下一行,这样数据都一行一行地插进去。如果没这一行,取到的数据永远只放到第一行。永远只能取到一行的数据。
DataTable.SetCurrentRow (i+1)

Next

#这行是将数据表导出到data.xls中。
datatable.Export("d:\data.xls")

开始时,没有修改地这相关的配置,导致循环时,总是从头开始循环,导致重新检测很多次。数据重复插入很多次。而脚本的目的只是循环只需要for中的,其它的都不需要。
解决:
从file -> settings -->run  中将data table iterations 改为run one iteration only。问题即可解决。一般情况下这里默认是run on all rows。即循环针对所有的行。


TAG: QTP

 

评分:0

我来说两句

Open Toolbar