51Testing软件测试论坛

标题: 其实对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表的第一列

[ 本帖最后由 Horus_Ra 于 2006-3-22 17:54 编辑 ]
作者: 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
正在试验中。。。
作者: xiaofang85    时间: 2008-3-19 17:28
标题: 回复 1# 的帖子
谢谢! 一边动手操作,这样学习起来更快!
作者: momang    时间: 2008-3-21 10:42
哈哈  好强大
好灵活

  收藏
作者: yqx    时间: 2008-4-15 16:24
http://bbs.51testing.com/thread-110506-1-1.html 可以看下
作者: 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

[ 本帖最后由 yabest 于 2008-7-2 16:45 编辑 ]
作者: fwlikexbx    时间: 2008-10-14 17:57
太NB 了 学习了
作者: wshyzhywx    时间: 2008-10-14 18:02
非常棒!
作者: 李志智    时间: 2008-12-23 14:06
up up!!!
作者: moyiyun    时间: 2011-5-9 13:39
学习学习,以后用得着。
作者: yxd2006    时间: 2011-6-24 14:51
学习了,谢谢分享
作者: moyiyun    时间: 2011-10-10 14:43
不错,先收藏啦!
作者: chenliquan    时间: 2011-12-13 11:16
如果要读取Datatable的第一行、第一列怎么写呢?
作者: Shawn_xiao    时间: 2011-12-26 17:22
收藏了
作者: 406070803    时间: 2012-3-23 13:58

作者: muyunsihe    时间: 2012-4-25 17:34
收藏了,谢谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2