51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

[原创] 帮我看个自定义函数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-13 12:59:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. public function LogonName(dptName)
  2.         dim i,j
  3.         Dim Res,Cmd,sql
  4.         Dim a,b
  5.         Dim c,d

  6.         datatable.addsheet("funLogonName")
  7.         datatable.GetSheet("funLogonName").addparameter "DptName","0"
  8.         datatable.GetSheet("funLogonName").addparameter "DptID","0"

  9.         datatable.AddSheet("relativeUser")
  10.         datatable.GetSheet("relativeUser").addparameter "LogonName","0"
  11.        
  12.         i=replace(dptName,"--","")
  13.         datatable("DptName","funLogonName")=i
  14.        
  15.         Set Res=createobject("adodb.recordset")
  16.         Set Cmd=createobject("adodb.command")
  17.         Cmd.activeconnection="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=fbm_jlmcc;Data Source=192.168.0.44"
  18.         Cmd.CommandType = 1
  19.         d=datatable("DptName","成功添加通知信息")
  20.         sql="select DptID from CTM_DptList where DptName='"&i&"'"
  21.         Cmd.CommandText = sql
  22.         Set res = Cmd.Execute()
  23.         j=res("DptID")
  24.         datatable("DptID","funLogonName")=j
  25.         Set res = nothing
  26.         Set cmd.ActiveConnection = nothing
  27.         Set Cmd= nothing  '获取与选项匹配的DptID

  28.         Set Res=createobject("adodb.recordset")
  29.         Set Cmd=createobject("adodb.command")
  30.         Cmd.activeconnection="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=fbm_jlmcc;Data Source=192.168.0.44"
  31.         Cmd.CommandType = 1
  32.         sql="select  LogonNme,PWD  from ctm_userinfo where dptid in (select dptid from ctm_dptlist where vieworder like (select vieworder + '%' from ctm_dptlist where dptid='"&j&"')) "
  33.         Cmd.CommandText = sql
  34.         Set res = Cmd.Execute()
  35.         a=0
  36.         Do
  37.                 a=a+1
  38.                 datatable.GetSheet("relativeUser").SetCurrentRow(a)
  39.                 b=res("LogonName")
  40.                 res.movenext
  41.                 datatable("LogonName","ralativeUser")=b
  42.                 If a>30 Then
  43.                         Exit do
  44.                 End If
  45.         loop While not res.eof
  46.         Set res = nothing
  47.         Set cmd.ActiveConnection = nothing
  48.         Set Cmd= nothing        '选取与DptID匹配的LogonName

  49.         c=datatable.GetSheet("relativeUser").GetRowCount
  50.         d=randomnumber.Value(1,c)
  51.         datatable.GetSheet("relativeUser").SetCurrentRow(d)

  52.         LogonName=datatable("LogonName","relativeUser")

  53.         datatable.DeleteSheet("funLogonName")
  54.         datatable.DeleteSheet("relativeUser")
  55. End Function

  56. Dim m,n
  57. n=browser("通知管理").Page("通知管理").Frame("frmMain").WebList("SelectBGTDpt1_ddlDpt").GetROProperty("value")
  58. msgbox(n)
  59. m=funLogonName(n)
  60. msgbox(m)
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-9-13 13:01:17 | 只看该作者
运行后报错
类型不匹配 “funLogonName”
但是如果我不用函数的话
是可以正常实现的
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2006-9-13 13:23:49 | 只看该作者
    你在   i=replace(dptName,"--","") 前面增加一句  dptName = Cstr(dptName) 试试看. 对了,运行脚本结束后,在 Test Report里面有关于调用 funLogonName 这个函数的结果的信息,如传递给它的是什么数值,要求的是什么数值等.你可以根据这些信息去修改你的代码呀.

    如果还不行, 你就在i = replace(dptName,"--","")  前面增加一句 Msgbox(Typename(dptName)) 看看传递给funLogonName 这个函数的类型与 replace 这个函数的第一个参数要求的类型是否一致. 你还可以在msgbox(n) 后增加一行  Msgbox(Typename(n)) ,看看n 的实际类型.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2006-9-13 15:02:01 | 只看该作者
    版主
    不好意思,我调用函数错了
    我定义的是LogonName
    下面调用的是funLogonName
    但是通过版主的回答
    我又明白了一个函数TypeName
    PS:版主,这些函数你都是在哪儿发现的呢?vbscript里面好像是没有的。
    难道版主是把help看了一遍
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2006-9-13 15:03:18 | 只看该作者
    Walker :
    好像不能删除自己发的帖子
    是头衔不够高么?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2006-9-13 15:26:56 | 只看该作者
    原帖由 yn303 于 2006-9-13 15:02 发表
    版主
    不好意思,我调用函数错了
    我定义的是LogonName
    下面调用的是funLogonName
    但是通过版主的回答
    我又明白了一个函数TypeName
    PS:版主,这些函数你都是在哪儿发现的呢?vbscript里面好像是没有的。
    难 ...

    自带的help可以查到.有时间也可以上上国外的论坛.这些经常会用到!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-9-13 15:28:28 | 只看该作者
    原帖由 yn303 于 2006-9-13 15:03 发表
    Walker :
    好像不能删除自己发的帖子
    是头衔不够高么?

    可以删除的!
    看看下面的一些功能!

    [ 本帖最后由 QA_BAY 于 2006-9-13 15:35 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2006-9-13 15:45:05 | 只看该作者

    to yn303

    原帖由 yn303 于 2006-9-13 15:02 发表
    版主
    不好意思,我调用函数错了
    我定义的是LogonName
    下面调用的是funLogonName
    但是通过版主的回答
    我又明白了一个函数TypeName
    PS:版主,这些函数你都是在哪儿发现的呢?vbscript里面好像是没有的。
    难 ...


    第一,谁说VBScript里面没有这些函数?! 你看 VBScript 里面查找过这些函数吗? 我猜测,你肯定是没有认真看过VBScript语言参考那个文档。即使看过了, 也没有看完整。强烈建议你把 VBScript的教程从头到尾完整地看了一遍。你只要记住函数的名字就可以了。遇到问题时,你知道需要调用哪个函数就可以了。具体用法可以在 QTP的帮助里面查。 同一个函数用上几次后,你就根据不需要再去看帮助了。这也是边用边学吧。

    第二,我也不够细心,怎么没有发现你这个错误呢? 连函数名都写错了,也够 马虎的了。呵呵!sdlkfj5

    [ 本帖最后由 walker1020 于 2006-9-13 15:56 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2006-9-13 15:50:15 | 只看该作者
    原帖由 yn303 于 2006-9-13 15:03 发表
    Walker :
    好像不能删除自己发的帖子
    是头衔不够高么?


    你在你发的帖子的右下角会看到了一个名字是“编辑”的图标了吗?点击那个就可以编辑你的帖子了。当然就可以把你的帖子删除了。不过,你为什么要删除帖子?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2006-9-13 16:11:33 | 只看该作者
    我看得是翻译过的VBscript,而且是从目录里面看得。
    英文的里面是有的
    我发的一些帖子感觉没有什么技术含量,而且跟其他的帖子都是重复的,所以想删掉
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2006-9-13 16:34:47 | 只看该作者
    原帖由 yn303 于 2006-9-13 16:11 发表
    我看得是翻译过的VBscript,而且是从目录里面看得。
    英文的里面是有的
    我发的一些帖子感觉没有什么技术含量,而且跟其他的帖子都是重复的,所以想删掉


    意识到自己的不足就是好事情。每个新人都要经过这个磨练的过程。你可以通过学习别人的经验来尽快提高自己的能力,缩短这个摸索的过程。但有些事情必须亲身经历后才会有体验的。“书到用时方恨少,事非经过不知难。” 我相信,半年或一年后,你的水平也能达到甚至超过我的水平的。

    如果要删除帖子,那么QuickTest Pro这个板块会有许多帖子需要删除,实在是没有必要把这些帖子删除吧。放心,如果帖子确实需要删除,QuickTest Pro这个板块上的7位斑竹中的任何一位早就给你删除了。sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2006-9-13 16:39:50 | 只看该作者
    walker1020 说得非常好!
    其实你yn303 是不是完美主义呢?
    给自己留下一点痕迹不是更好,以后回头看看,不是觉得自己进步很多吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
     楼主| 发表于 2006-9-13 17:43:41 | 只看该作者
    呵呵
    谢谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-10-8 06:29 , Processed in 0.202026 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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