クエリーを実行する前に、少なくとも 1 つのフィールドを指定して、検索結果サマリに表示する必要があります。表示する各フィールドを指定するために、このメソッドを一度呼び出す必要があります。ResultSet オブジェクトは、フィールドを QueryDef オブジェクトに追加された順で、フィールドを左から右に表示します。つまり、このメソッドを呼び出すたびに、指定されたフィールドがリストの最後に追加されます。この順序は変更できません。
BuildQuery メソッドを呼び出すときに、QueryDef オブジェクトと EntityDef オブジェクトを関連付けるので、field_name パラメータにはその EntityDef オブジェクト内の有効なフィールドの名前が含まれている必要があります。field_name 引数に有効な値を取得するには、その GetFieldDefNames メソッドを呼び出して EntityDef オブジェクトをクエリーします。
' Create a query for defect where id = SAMPL00000001 Dim session Set session = CreateObject("CLEARQUEST.SESSION") session.UserLogon "admin", "", "SAMPL", AD_PRIVATE_SESSION, "" Set QueryDef = session.BuildQuery("defect") QueryDef.BuildField ("headline") QueryDef.BuildField ("id") Set filternode1 = QueryDef.BuildFilterOperator (AD_BOOL_OP_AND) filterNode1.BuildFilter "id", AD_COMP_OP_EQ, "SAMPL00000001" Set rsltset = session.BuildResultSet(QueryDef) rsltset.Execute Status = rsltset.MoveNext
$queryDef = $CQSession->BuildQuery("Defect"); @dbfields = ("ID","State","Headline"); foreach $field (@dbfields) { $queryDef->BuildField($field); }