Public Const SUCCESS = 1
Public Const AD_BOOL_OP_AND = 1
Public Const AD_COMP_OP_EQ = 1
Public Const AD_COMP_OP_BETWEEN = 9
Dim xlsApp
Dim Book
Dim Sheet
Dim session
Dim qryObj
Dim filterObj
Dim resultset
dim BugCol
dim BugStr
dim node
on error resume next
err.clear
' Login to the destination database
Set session = CreateObject("CLEARQUEST.SESSION")
session.UserLogon "user", "password", "CQ", AD_PRIVATE_SESSION, "CQlink"
' Build Query On defect
Set qryObj = session.BuildQuery("变更单")
Set xlsApp = CreateObject("Excel.Application")
set wBook = xlsApp.Workbooks.Open("c:\testvbs.xls")
Set Sheet = wBook.Worksheets("故障单表")
Sheet.Activate
Sheet.Visible = True
'找到标题为故障单号的列,记录列号BugCol,计算sheet的总列号ColumnsCount,从CQ库中获取的信息新增到后续列中.
ColumnsCount = Sheet.UsedRange.Columns.Count
RowsCount = Sheet.UsedRange.rows.Count
For j = 1 To ColumnsCount
If Sheet.Cells(1, j) = "故障单号" Then
BugCol= j
Exit For
End If
Next
If BugCol= 0 Then
msgbox("no find 故障单号列")
WScript.Quit
end if
'以BugStr为关键字从CQ库中获取需要的字段
for i=2 to RowsCount
BugStr = Sheet.Cells(i,BugCol).Value
qryObj.BuildField("id")
qryObj.BuildField("变更主题")
qryObj.BuildField("State")
Set node = qryObj.BuildFilterOperator(AD_BOOL_OP_AND)
node.BuildFilter "id", AD_COMP_OP_EQ , BugStr
Set resultset = session.BuildResultSet(qryObj)
resultset.Execute
' set values for destination cells
Sheet.Cells(i,ColumnsCount+1).Value = resultset.GetColumnValue(2)
Sheet.Cells(i,ColumnsCount+2).Value = resultset.GetColumnValue(3)
next
if err.Number <> 0 then
msgbox err.Description
end if
msgbox("end")
Sheet.Columns.AutoFit
Book.Save
Book.Close
Set Book = Nothing
xlsApp.Quit
Set xlsApp = Nothing
Set resultset = Nothing
Set session = Nothing