51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2389|回复: 12
打印 上一主题 下一主题

[原创] 请教一个函数问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-8-10 15:25:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:每次取得数据库中的第一个数据,最为变量填入到编辑框中,但是实际并没有提出数据,麻烦问一下我的代码那里写错了。

代码如下建立一个Action,并该名为StockSerial
Function StockSerial(OutStr)
   Dim TestName
   Dim Con,Sql
   TestName = Environment ("TestName")
   Set Con=CreateObject("Adodb.Connection")
   Con.Open "Description=QTP_ODBC;DRIVER=SQL Server;SERVER=lbzhong;UID=sa;PWD=sa;DATABASE=Test"
   Set Record=CreateObject("Adodb.Recordset")
   CountFile = 0
   Have_Attach = 0
   sql="select top 1 Serial from scm_serial_stock Order By Serial "
   Record.Open Sql,Con
   Set OutStr=Record("Serial").Value
End Function

建立另外一个Action并调用StockSerial
RunAction "Copy of StockSerial", oneIteration
Browser("XXXXXXX").Page("XXXXXX").Frame("XXXX").WebEdit("XXXX").Set StockSerial
可是在实际运行的时候没有数据写入,即没有数据返回
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-8-10 15:45:24 | 只看该作者
用msgbox看看是不是数据集没取到值
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-8-11 09:19:20 | 只看该作者
Set OutStr=Record("Serial").Value
改成:
StockSerial=Record("Serial").Value

可以看看function的用法。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-8-11 12:05:52 | 只看该作者
感谢楼上的,但是现在还有一个问题
我将函数改为
Function StockSerial()
   其余部分
   StockSerial=Record("Serial").Value
End Function
调用改为
Browser("XXXXXXX").Page("XXXXXX").Frame("XXXX").WebEdit("XXXX").Set StockSerial()
系统提示类型不匹配,运行出错

这里的类型应该是一个字符串,但是在Function似乎并不能定义函数的类型,在DELPHI中可以写为
Function StockSerial(): String

那在qtp中如何进行定义?麻烦了

[ 本帖最后由 lbzhong 于 2006-8-14 11:32 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-8-11 12:19:10 | 只看该作者
在使用之前强制转换一下数据类型.string  用 cstr来转换
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2006-8-11 12:40:43 | 只看该作者
是写为
Browser("XXXXXXX").Page("XXXXXX").Frame("XXXX").WebEdit("XXXX").Set Cstr(StockSerial())
吗?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-8-11 13:41:39 | 只看该作者
恩吧.写代码时,一句代码不要太复杂,这样出错了不容易找.所以你先可以把Cstr(StockSerial())附给一个变量,然后再set这个变量更好些
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-8-11 15:53:49 | 只看该作者
楼上的我再请教一个问题
我在同一个Action中调用函数是没有问题的可以得到返回数据

但是我在不同的Action中调用函数确得不道返回数据,这是为何?在不同的Action中调用数据该如何处理?
如在Action中编写一个函数
function aa()
内容
end function
set aa
没有任何问题
但是在Action1中
set aa
却没有数据返回。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2006-8-11 17:48:48 | 只看该作者
action之间数据传递是要设置output ,input参数的
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2006-8-14 11:30:29 | 只看该作者
麻烦能否说的更详细一点?
我在StockSerial的Active属性中增加了一个output数据StockSerial string类型
然后在Action的Active属性中增加了一个input数据StockSerial string类型
但是在运行Action还是没有获得数据

我在qtp方面还比较菜,麻烦解答

[ 本帖最后由 lbzhong 于 2006-8-14 11:31 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-8-14 12:26:38 | 只看该作者
你可以搜一下action之间变量传递的帖子,很多都讲到过怎么设置output,input参数了
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2006-8-15 12:02:17 | 只看该作者
已经OK了,谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-8-15 15:28:40 | 只看该作者
小nan斑竹总是这么负责
赞一个
呵呵
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 11:59 , Processed in 0.070224 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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