Crea l'oggetto QueryFilterNode di livello superiore per la query.
Questo metodo QueryDef rappresenta il punto di partenza per la creazione di un'espressione della query. È necessario richiamare questo metodo per ottenere il primo filtro nell'espressione della query. Da questo filtro, è possibile costruire ulteriori filtri per specificare i criteri desiderati. L'espressione della query viene costruita come struttura ad albero degli operatori booleani. La struttura ad albero non è necessariamente binaria; è possibile aggiungere più di due condizioni a un nodo filtro.
VBScript
querydef.BuildFilterOperator bool_operator
Perl
$querydef->BuildFilterOperator(bool_operator);
VBScript
submit_date < 01/03/2001 AND (submitter = jjones OR submitter = clopez OR submitter = kwong)
In questa espressione, l'operatore booleano di livello superiore è l'operatore AND. Per avviare la costruzione di questa espressione della query, utilizzare questo metodo per creare il filtro che dispone dell'operatore di livello superiore:
set myQueryDef = sessionObj.BuildQuery("Defect") myQueryDef.BuildField("id") myQueryDef.BuildField("headline") set filterNode1 = myQueryDef.BuildFilterOperator(AD_BOOL_OP_AND)
Utilizzare questo metodo solo una volta per costruire la root della struttura ad albero. Per continuare ad aggiungere i filtri, richiamare i metodi degli oggetti QueryFilterNode restituiti. Ad esempio, per completare l'espressione precedente, è necessario scrivere il seguente codice:
filterNode1.BuildFilter "submit_date", AD_COMP_OP_LT, "2001-01-03" set filterNode2 = filterNode1.BuildFilterOperator(AD_BOOL_OP_OR) filterNode2.BuildFilter "submitter", AD_COMP_OP_EQ, "jjones" filterNode2.BuildFilter "submitter", AD_COMP_OP_EQ, "clopez" filterNode2.BuildFilter "submitter", AD_COMP_OP_EQ, "kwong"
Espressioni più complicate vengono create allegando in modo ricorsivo più nodi, se necessario. Per ulteriori informazioni, consultare Oggetto QueryFilterNode.
Se un nodo contiene solo una condizione, il valore del parametro bool_operator è insufficiente. Ad esempio, se l'intera espressione della query è 'submitter = jjones', è possibile costruire l'espressione della query nel seguente modo:
' You could use either AD_BOOL_OP_AND or AD_BOOL_OP_OR for this ' expression since there is only one condition. set filterNode = myQueryDef.BuildFilterOperator(AD_BOOL_OP_AND) filterNode.BuildFilter 'submitter', AD_COMP_OP_EQ, "jjones"
Perl
@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);