51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3561|回复: 14
打印 上一主题 下一主题

[原创] 关于datatable的列

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-22 08:50:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在datatable中有两列A和B,都在同一sheet中,结构如下:
   A         B
1  some       may
2      thing          too
3        try          catch
4      excep      
5
想取得B列共有多少行,如何取?谢谢各位解达!

[ 本帖最后由 workstudy 于 2008-5-22 08:52 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-22 08:57:03 | 只看该作者
最直接的办法自己写个方法,判断下.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-5-22 09:00:49 | 只看该作者
那怎么写?QTP没有自带的函数吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-5-22 14:55:27 | 只看该作者
顶起来!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-22 15:07:35 | 只看该作者
The following example uses the GetParameterCount method to find the total number of parameters (columns) in the run-time Data Table sheet (MySheet) and writes it to the report.

paramcount = DataTable.GetSheet("MySheet").GetParameterCount

Reporter.ReportEvent 2, "There are " &paramcount, "columns in the data sheet."
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-5-22 15:21:55 | 只看该作者
此函数得出的是runtime-table 里有多少列,没有得出我想看其中某列有多少行的结果啊
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-5-22 15:34:14 | 只看该作者
rowcount = DataTable.GetSheet("MySheet").GetRowCount
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-5-22 15:38:43 | 只看该作者
看错了,还是自己写个好了
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-5-22 15:45:21 | 只看该作者
如果B的行数大于A,那直接datatable.GetSheet("Action1").GetRowCount就可以得出B的行数
如果B的行数小于A,那么:
Dim i ,Brow
Brow = 0
Arow= datatable.GetSheet("Action1").GetRowCount
For i = 1 to Arow
        datatable.GetSheet("Action1").SetCurrentRow(i)
        Bvalue = datatable.RawValue("B" , "Action1")

        If Bvalue <> "" Then
                Brow=Brow+1
                elseif Bvalue = "" then
                        reporter.ReportEvent micDone , "B行数" , Brow
                        Exit for
        End If
        datatable.GetSheet("Action1").SetNextRow
Next
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-5-22 16:13:32 | 只看该作者
如果出现B行前两行有字符,第三行和第四行没有,而第五行又有字符,那就会漏掉啊!
要怎么判断呢?
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-5-22 16:36:39 | 只看该作者
LZ自己应该多想想,其实稍微改下就好了
Dim i ,Brow
Brow = 0
Arow= datatable.GetSheet("Action1").GetRowCount
For i = 1 to Arow
        datatable.GetSheet("Action1").SetCurrentRow(i)
        Bvalue = datatable.RawValue("B" , "Action1")

        If Bvalue <> "" Then
                Brow=Brow+1
                elseif Bvalue = "" then
                        'msgbox Brow
                        Brow=Brow
        End If
        datatable.GetSheet("Action1").SetNextRow
Next
reporter.ReportEvent micDone , "B行数" , Brow
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2008-5-22 17:05:19 | 只看该作者
非常感谢zte_boy的回复!
我在想如何中间的两行空数据也是测试数据呢?再这样想的话就没完了
哈哈,有点叫劲了。。。
datatable.GetSheet("Action1").SetNextRow 这句好像多余了,呵呵

[ 本帖最后由 workstudy 于 2008-5-22 17:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-5-22 17:07:00 | 只看该作者
中间两行是空行也没问题啊,这段代码也是可以实现的啊
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2008-5-22 17:12:12 | 只看该作者
恩,代码我已经试过了。
我是说中间两行的空内容假如也是要计算在行数内的,这样的话就没法算了吧,呵呵,因为B列
没有A列长,B列少于A列的行数按我说的那样也会计算在内。说明这个“需求”是有问题的吧
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-7-16 10:47:35 | 只看该作者
'======================想读哪行就哪行,如果测出bug跟我留言
Dim i ,Brow
Brow = 0
Arow= datatable.GetSheet("Action1").GetRowCount
For i = 1 to Arow

        datatable.GetSheet("Action1").SetCurrentRow(i)
        Bvalue = datatable.RawValue("B" , "Action1")
      if Bvalue <>  "" and i<Arow then
                       ' msgbox "Brow:"&Brow&"ROW:"&Arow&"i:"&i
                        Brow=i
   Elseif Bvalue <>  "" and i=Arow then

                Brow=Arow
     End If
        datatable.GetSheet("Action1").SetNextRow
Next
msgbox  "B行数:" &Brow
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 20:22 , Processed in 0.075344 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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