【问题标题】:Using VB interfaces in VB script在 VB 脚本中使用 VB 接口
【发布时间】:2013-02-14 08:39:32
【问题描述】:

我从事 HPQC 的工作流脚本,并希望将示例中给出的一些 VB 代码移植到 VB 脚本中。我无法让接口在 VB 脚本中工作。

VB 代码:

 Dim iscp           As ISupportCopyPaste 
 Dim clipboard      As String

 clipboard = iscp.CopyToClipBoard(sourceFolder.NodeID, 0, sourceFolderPath)

我无法在 VB 脚本中将 iscp 声明为 ISupportCopyPaste。

我尝试了一些网络参考,但无法了解它在 VB 脚本中的工作原理。

请分享你的想法..可能会指出我正确的方向..

【问题讨论】:

  • 我认为没有键入 VBScript。将其定义为 Object 是否有预期的结果?
  • 没有输入 VbScript,但这意味着一切都是 Variant,而不是 Object。 VbScript 语法不支持 As 关键字,因此 Dim iscp 应该是 OP 正在寻找的内容。
  • 总有一些奇怪的地方。它看起来像一个类而不是一个接口。可能只是命名不正确。不知道这个类是从哪里来的,它不是任何标准的东西,而且一个 VB6 程序已经有一个 ClipBoard 对象。必须是某个 3rd 方专用剪贴板类。
  • @Deanna 也试过了..
  • @BobRodes Dim iscp 通过编译但没有给出任何输出,从某种意义上说,复制功能没有被执行。

标签: vbscript vb6 hp-quality-center


【解决方案1】:

我在http://go-gaga-over-testing.blogspot.com/2011/04/code-to-copy-test-set-from-one-folder.html 找到了下面的代码示例,它演示了 iSupportCopyPaste 的使用,所以也许你可以适应它。

  1. 在 excel vba 编辑器中添加以下代码。
  2. 在工具 -> 来自 excel 的引用下添加“OTA COM 类型库”作为引用。
  3. 奔跑并享受魔法 :-) 3.

解决方案:

Public Function CopyPasteTestSetFolder(sourceFolderPath, destFolderPath)

    strServer = "http://xyz/qcbin"
    strDomain = ""
    strProject = ""
    strUser = ""
    strPassword = ""

    Set objTDConnection = CreateObject("tdapiole80.TDCONNECTION")
    objTDConnection.InitConnection strServer, strDomain
    objTDConnection.ConnectProject strProject, strUser, strPassword

    Set objTreeManager = objTDConnection.TestSetTreeManager
    Set sourceFolder = objTreeManager.NodeByPath(sourceFolderPath)
    Set destFolder = objTreeManager.NodeByPath(destFolderPath)

    Dim iscp As ISupportCopyPaste

    Set iscp = sourceFolder

    clipboard = iscp.CopyToClipBoard(sourceFolder.NodeID, 0, sourceFolderPath)

    Set iscp = destFolder
    iscp.PasteFromClipBoard clipboard, destFolder.NodeID, 0, -1

    Set treeMng = Nothing
    Set sourceFolder = Nothing
    Set destFolder = Nothing
    Set iscp = Nothing

End Function

【讨论】:

  • 谢谢.. 我之前也检查过.. 但这里Dim iscp As ISupp... 也是用As 关键字给出的。因此问题..
【解决方案2】:

enterSearchContent = Inputbox("输入搜索内容") entersearchterm = Inputbox("输入搜索词")

调用funcSearchContentMatchCount(enterSearchContent,entersearchterm)

函数 funcSearchContentMatchCount(strsearchcontent,strsearchterm)

If Typename(enterSearchContent) = "String"  Then
    If len(enterSearchContent) >0 Then
        strsearchcontent = Lcase(cstr(enterSearchContent))
    else
        msgbox "Content is blank"
    End If
Else
    msgbox "Not a valid string"
End If

If Typename(entersearchterm) = "String"  Then
    If len(entersearchterm) >0  and len(enterSearchContent)>len(entersearchterm) Then
        strsearchterm = Lcase(cstr(entersearchterm))
    else
        msgbox "Search Term is blank or Search Term Length is greater than Search Content"
    End If
Else
    msgbox "Not a valid string"
End If


arrstrsearchcontent = split(strsearchcontent," ")
intsearchterm = 0
intsearchtermExactMatch = 0
For i = 0 To Ubound(arrstrsearchcontent) Step 1
    If instr(arrstrsearchcontent(i),strsearchterm)<>0 Then
        intsearchterm = intsearchterm+1
        If strcomp(arrstrsearchcontent(i),strsearchterm,0) = 0 Then
            intsearchtermExactMatch = intsearchtermExactMatch+1
        End If
    End If
Next
TotalMatchCount = intsearchterm
TotalExactMatchCount = intsearchtermExactMatch
Msgbox "Total Number of occurences of Search Term is "&TotalMatchCount
Msgbox "Total Number of Exact occurences of Search Term is "&TotalExactMatchCount

结束函数

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多