Aggiunge un operando di confronto al nodo.
L'operando creato da questo metodo è composto da un nome campo, un operatore di confronto e da un valore. Quando l'interrogazione viene eseguita, il valore nel campo viene confrontato con il valore specificato utilizzando il determinato operatore di confronto. Il confronto restituisce un valore Boolean, che il nodo utilizza nel proprio confronto Boolean.
L'argomento del valore è un riferimento Perl o Variant Visual Basic a un vettore di stringhe per consentire di specificare un vettore di valori se appropriato. Ad esempio, se si desiderava trovare i difetti inoltrati tra il 1 dicembre e il 15 dicembre 2000, era necessario costruire il seguente filtro:
@dateRange = ("2000-12-01", "2000-12-15"); $node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, \@dateRange);
Consultare anche l'esempio specificato per il metodo BuildFilterOperator di QueryDef.
Le espressioni dell'interrogazione non sono limitate per essere strutture ad albero binarie; è possibile richiamare questo metodo tutte le volte che si desidera per un determinato oggetto QueryFilterNode.
Per ottenere valori validi per l'argomento field_name, richiamare il metodo GetFieldDefNames dell'oggetto EntityDef su cui l'interrogazione è stata basata.
VBScript
node.BuildFilter field_name, comparison_operator, value
Perl
$node->BuildFilter(field_name, comparison_operator, value);
In Visual Basic, specificare il valore come Variant o vettore Variant.
In Perl, specificare il valore come riferimento a una stringa o un vettore di stringhe.
VBScript
Dim dateRange ReDim dateRange(1) ' This sets up a two element array dateRange(0) = "2000-12-01" dateRange(1) = "2000-12-15" node.BuildFilter "submit_date", AD_COMP_OP_BETWEEN, dateRange
Perl
#Example1
@dateRange = ("2000-12-01", "2000-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);