このメソッドによって作成されるオペランドは、フィールド名、比較演算子、および値から構成されます。 クエリーが実行されると、フィールド内の値が、指定された比較演算子を使用して、指定された値と比較されます。比較により Boolean 値が生成されます。この値がノードによって、それ自体の Boolean 比較で使用されます。
@dateRange = ("2007-12-01", "2007-12-15"); $node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, ¥@dateRange);
$operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NOT_NULL, [""]); $operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NULL, [""]);
QueryDef オブジェクトの BuildFilterOperator メソッドに説明されている例も参照してください。
クエリー式はバイナリ ツリーだけではありません。所定の QueryFilterNode オブジェクトに対してこのメソッドを必要な回数だけ呼び出すことができます。
field_name 引数に有効な値を取得するには、クエリーの基本となっていた EntityDef オブジェクトの GetFieldDefNames メソッドを呼び出します。
VBScript
node.BuildFilter field_name, comparison_operator, value
Perl
$node->BuildFilter(field_name, comparison_operator, value);
VBScript
Dim dateRange ReDim dateRange(1) ' This sets up a two element array dateRange(0) = "2007-12-01" dateRange(1) = "2007-12-15" node.BuildFilter "submit_date", AD_COMP_OP_BETWEEN, dateRange
Perl
#Example1 @dateRange = ("2007-12-01", "2007-12-15"); $node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, ¥@dateRange); #Example2 @owner = ("jsmith"); @state = ("closed"); $queryDef = $CQsession->BuildQuery("defect"); @dbfields = ("ID","State","Headline"); foreach $field (@dbfields) { $queryDef->BuildField($field); } $operator=$queryDef->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); $operator->BuildFilter("Owner", $CQPerlExt::CQ_COMP_OP_EQ,¥@owner); $operator->BuildFilter("State", $CQPerlExt::CQ_COMP_OP_NOT_IN, ¥@state);