查看完整版本: 其实对DataTable的操作可以很灵活……

Horus_Ra 2006-3-22 13:43

其实对DataTable的操作可以很灵活……

由QTP自动生成的语句是这样的:
DataTable("Col", dtLocalSheet)
DataTable("Col", dtGlobalSheet)
其中,dtLocalSheet就是当前Action的DataTable,dtGlobalSheet就是Global的DataTable,Col是列名

还有很多写法,比如
DataTable("Col", "Action2")
就是读取Action2的Col列。
你完全可以读取另一个Action的DataTable,而不需要跨Action传递变量,使用DataTable比变量更方便,因为结束后能在Result里看到运行时的值
你可以在一个Action里读取另外一个Action的列,但是要注意另外一个Action的当前行
比如你在Action1里读取Action2的某列,如果Action1运行到第二行,你读取的Action2还是第一行的数据,解决办法就是写上这句:
DataTable.GetSheet("Action2").SetCurrentRow(2)
你也可以用GetCurrentRow来获取Action1的行,然后再用SetCurrentRow来保持两个Action的当前行一致:
CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)

还有一种写法:
DataTable(1, "Action2")
这样就是读取Action2的第一列,不管第一列叫什么名字,都能读
这样就很方便,比如:
For i = 1 To 10
        MsgBox DataTable(i, "Action2")
Next
这样就能循环读取Action2的1~10列了

同样,表也可以用数字代替:
DataTable(1, 2)
这样就是读取第二个Action表的第一列

[[i] 本帖最后由 Horus_Ra 于 2006-3-22 17:54 编辑 [/i]]

mstiunicon 2006-3-23 09:49

对DataTable有比较深的了解啊。顶一个

dirkabc 2006-3-23 16:06

谢谢!谢谢!太谢谢了!弄好了改天请你吃饭。

walker1020 2006-8-29 21:32

好帖!值得收藏!

小宝2006 2006-8-31 14:04

哈哈,不错不错

Alexlj_luo 2006-9-3 08:22

多谢多谢

小宝2006 2006-9-11 17:20

hao

edision 2006-10-27 11:01

thank you very much, you have a good view at datatable.

miniyal 2006-12-1 13:52

不错,值得收藏~

you力 2007-3-5 21:35

好贴~~~已收藏~~终于搞清楚了~

nan3937 2007-3-13 17:19

里面有很多用法没试过,等以后公司有qtp了一定要试试看

abens0426 2007-3-30 11:35

非常不错的资料,收藏了!谢谢~

xihong2004 2007-3-31 21:59

收了,顶了

Sophie.zhang.cs 2007-4-16 16:29

恩,受益匪浅!!

breadtree 2007-4-18 16:34

顶,UP!

lucky520 2007-5-18 09:07

up

lucky520 2007-5-18 09:08

up

jimmy2006.hi 2007-5-29 11:22

值得顶一个!好东西!

sdlkfj2 佩服

ohyo12 2007-5-29 13:34

thanks

premiumdue 2007-5-29 15:20

回复 #1 Horus_Ra 的帖子

thank you !!

wish_luckyman 2007-6-22 17:17

envy
admire

qicyt1812 2007-7-31 10:05

不错,收藏ingsdlkfj5

lin85210 2007-8-1 09:18

目前还没学到多个ACTION,先略知道些,谢谢分享
  QTP关于正则表达式都有哪些应用

飞天侠 2007-8-5 15:57

好的,谢谢

vaguely 2007-8-7 14:54

thank 2

vaguely 2007-8-7 14:54

thank 3

vaguely 2007-8-7 14:54

thank 4

vaguely 2007-8-7 14:54

thank 5

wuzhiyongnihao 2008-2-17 19:12

回复 1# 的帖子

klasjdfl

qicyt1812 2008-2-21 10:18

:D 正在试验中。。。

xiaofang85 2008-3-19 17:28

回复 1# 的帖子

谢谢! 一边动手操作,这样学习起来更快!

momang 2008-3-21 10:42

哈哈  好强大
好灵活

  收藏

yqx 2008-4-15 16:24

[url]http://bbs.51testing.com/thread-110506-1-1.html[/url] 可以看下

chunli29 2008-5-29 17:43

太感谢楼主了!!

正需要这个,收藏了!

cobeehuang 2008-6-4 22:55

原来参数共享可以这样实现,受用了,THX

ym_wei 2008-7-2 15:59

谢谢,又有了进一步的了解

yabest 2008-7-2 16:44

还可以这样用! 轻松的遍历每个参数的每行的值,不需要SetCurrentRow!


RowCount = DataTable.GetSheet("SheetName").GetRowCount()

ParamCount = DataTable.GetSheet("SheetName").GetParameterCount()

For ParamIndex = 1 to ParamCount

        ParamName = DataTable.GetSheet("SheetName").GetParameter(ParamIndex).Name
       
        For RowIndex = 1 to RowCount
                ParamValue = DataTable.GetSheet("SheetName").GetParameter(ParamName).ValueByRow(RowIndex)
        Next  
       
Next

[[i] 本帖最后由 yabest 于 2008-7-2 16:45 编辑 [/i]]
页: [1]
查看完整版本: 其实对DataTable的操作可以很灵活……