51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 20918|回复: 46
打印 上一主题 下一主题

[原创] 其实对DataTable的操作可以很灵活……

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-3-22 13:43:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
由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 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

47#
发表于 2012-4-25 17:34:58 | 只看该作者
收藏了,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

46#
发表于 2012-3-23 13:58:25 | 只看该作者
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2016-5-4 10:34
  • 签到天数: 68 天

    连续签到: 1 天

    [LV.6]测试旅长

    45#
    发表于 2011-12-26 17:22:42 | 只看该作者
    收藏了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    44#
    发表于 2011-12-13 11:16:25 | 只看该作者
    如果要读取Datatable的第一行、第一列怎么写呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    43#
    发表于 2011-10-10 14:43:48 | 只看该作者
    不错,先收藏啦!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    42#
    发表于 2011-6-24 14:51:27 | 只看该作者
    学习了,谢谢分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    41#
    发表于 2011-5-9 13:39:05 | 只看该作者
    学习学习,以后用得着。
    回复 支持 反对

    使用道具 举报

    李志智 该用户已被删除
    40#
    发表于 2008-12-23 14:06:31 | 只看该作者
    up up!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39#
    发表于 2008-10-14 18:02:49 | 只看该作者
    非常棒!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2008-10-14 17:57:37 | 只看该作者
    太NB 了 学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2008-7-2 16:44:01 | 只看该作者
    还可以这样用! 轻松的遍历每个参数的每行的值,不需要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 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
    发表于 2008-7-2 15:59:05 | 只看该作者
    谢谢,又有了进一步的了解
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
    发表于 2008-6-4 22:55:04 | 只看该作者
    原来参数共享可以这样实现,受用了,THX
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
    发表于 2008-5-29 17:43:05 | 只看该作者

    太感谢楼主了!!

    正需要这个,收藏了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2008-4-15 16:24:52 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2008-3-21 10:42:02 | 只看该作者
    哈哈  好强大
    好灵活

      收藏
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2008-3-19 17:28:28 | 只看该作者

    回复 1# 的帖子

    谢谢! 一边动手操作,这样学习起来更快!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2008-2-21 10:18:18 | 只看该作者
    正在试验中。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2008-2-17 19:12:04 | 只看该作者

    回复 1# 的帖子

    klasjdfl
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-13 08:02 , Processed in 0.077498 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表