BuildFilter

Descrizione

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 la query viene eseguita, il valore nel campo viene confrontato con il valore specificato utilizzando il determinato operatore di confronto. Il confronto restituisce un valore booleano, che il nodo utilizza nel proprio confronto booleano.

L'argomento value è un riferimento Perl o Variant VBScript ad un array di stringhe per consentire di specificare, quando possibile, un array di valori. Ad esempio, se si desiderava trovare i difetti inoltrati tra il giorno 1 ed il giorno 15 dicembre 2008, era necessario costruire il seguente filtro:
@dateRange = ("2007-12-01", "2007-12-15");
$node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, \@dateRange);
Il metodo BuildFilter richiede un terzo argomento per tutti gli operatori di confronto, inclusi OP_IS_NULL e OP_IS_NOT_NULL. Ad esempio,
$operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NOT_NULL, [""]);
$operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NULL, [""]);

Vedere anche l'esempio relativo al metodo BuildFilterOperator dell'oggetto QueryDef.

Le espressioni della query 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 era basata la query.

Sintassi

VBScript

node.BuildFilter field_name,comparison_operator,value 

Perl

$node->BuildFilter(field_name, comparison_operator, value); 
Identificativo
Descrizione
node
Un oggetto QueryFilterNode, che rappresenta un nodo nell'espressione della query.
field_name
Una stringa che contiene il nome di un campo valido nell'Oggetto EntityDef su cui è basato l'QueryDef Object corrente.
comparison_operator
Un valore Long il cui valore è una delle costanti di enumerazione CompOp.
value
Il valore che si desidera trovare nel campo specificato.

Per VBScript, specificare il valore come array Variant.

Per Perl, specificare il valore come riferimento ad una stringa o ad un array di stringhe.

Valore di ritorno
Nessuno.

Esempi

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); 

Feedback