51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4389|回复: 9
打印 上一主题 下一主题

[原创] 请问QTP如何判断下一个DataTable里空的?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-2-15 11:09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注意,我是横着取的,也就是说,先取A列的值,再取B列的值,以此类推。
我做了个循环,会一直往下一列取数据。
由于我不确定数据有多少,所以要做个判断,如果下一列是空的话,就退出循环。
我用的是这个循环:

Do While b <> ""
……
b = DataTable(x, dtGlobalSheet)

其中,“DataTable(x, dtGlobalSheet)”就是取下一列数据,如果b不等于空的话就一直循环下去,如果等于空就退出While循环。理论上应该没错。
但现在的问题是,一取到空列时,就直接报错,根本来不及做判断。
怎么办呀??
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-2-15 11:59:12 | 只看该作者
没有看到过这种用法
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-2-15 12:25:05 | 只看该作者
很多情况会用到这种情况啊……
比如一个多选框,要选择多个内容,而且选择的内容不固定,选择的数量也不固定,你怎么弄??
你只能每列输入一个,而不是每行输入一个……
如果每行输入一个的话,这个脚本只能执行一次……
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-2-15 13:08:36 | 只看该作者
如果空会报错的话,那就在结束列的单元格里用个特定字符表示空或结束。还有,在有用列的后面的一个空的表示结束的列名最好改名。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-2-15 13:22:29 | 只看该作者
我现在在最后一列里打上“End”标示这一行结束,然后代码改成Do While b <> "End",那么碰到End就能结束了……
我是不太喜欢这个方法,不过看起来也只有这样了……
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-2-16 15:41:27 | 只看该作者
1.dataTable没有提供对列的操作,没有实现如getNextCols这样的方法。
2.dataTable中要取某一列的值,必须提供一个列名,就像数据库一样
3.一个解决方法:将列名用数字按顺序排列,如第一列:data1,第2列:data2......第n列:datan....
dim b,i
for i=1 to n
   b=dataTable("data"&i,dtLocalSheet)
  if b="" Then
    Exit For
  end if
Next
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-2-17 10:49:29 | 只看该作者
楼上的,你想的也太简单了……
1,DataTable里一共可以到IV列,难道你一个个换名字??显然不可能……
2,而且你根本不知道参数有多少个,所以这个N不好办吧??
3,如果第一行有5个参数,第二行有10个参数,那你怎么办??
4,   “b=dataTable("data"&i,dtLocalSheet)
  if b="" Then”
如果如果b是空的话,b=dataTable("data"&i,dtLocalSheet)这句话就会报错,根本不会执行到下面的if语句……如果这段话能行的话,我就不用发这个帖子了~~



我就用他本来的名字(A、B……AA、AB……IU、IV)也可以做,不用自己一个个改列名,写一段代码就行了(以后我贴上来)



另外,我知道怎么取空了,现在不用结束符就能自动判断下一列是不是空值了,哈哈哈~~~~

[ 本帖最后由 Horus_Ra 于 2006-2-17 10:55 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2006-2-17 11:02:30 | 只看该作者
我知道怎么取空了,现在不用结束符就能自动判断下一列是不是空值了,哈哈哈~~~~


这样做不厚道啊,说明一下撒
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-2-17 11:06:50 | 只看该作者
其实很简单,代码不变,仍然用Do While b <> ""或者if b="" Then,只要在DataTable里改一下就行了,你把DataTable拉到最右边,选中IU和IV列,然后在IV列上点右键,选择Edit->Fill Right,就行了,哈哈哈~~

[ 本帖最后由 Horus_Ra 于 2006-2-17 11:09 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-2-17 11:20:46 | 只看该作者
厄地神呀,这个技巧有点意思。收藏先
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-13 04:13 , Processed in 0.077809 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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