BuildFilterOperator

Description

Crea l'oggetto QueryFilterNode di livello superiore per l'interrogazione.

Questo metodo QueryDef rappresenta il punto di partenza per la creazione di un'espressione dell'interrogazione. È necessario richiamare questo metodo per ottenere il primo filtro nell'espressione dell'interrogazione. Da questo filtro, è possibile costruire ulteriori filtri per specificare i criteri desiderati. L'espressione dell'interrogazione 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.

Sintassi

VBScript

querydef.BuildFilterOperator bool_operator
Perl
$querydef->BuildFilterOperator(bool_operator);
Identificativo
Description
querydef
Un oggetto QueryDef.
bool_operator
Un valore Long il cui valore è uno delle costanti BoolOp.
Valore di ritorno
L'oggetto QueryFilterNode appena creato.

Esempio

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 dell'interrogazione, 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 l'argomento Oggetto QueryFilterNode.

Se un nodo contiene solo una condizione, il valore del parametro bool_operator è insufficiente. Ad esempio, se l'intera espressione dell'interrogazione è 'submitter = jjones', è possibile costruire l'espressione dell'interrogazione 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"
Nota: è perfettamente possibile creare un oggetto QueryDef che non dispone di alcun filtro (in altre parole, nessuna espressione dell'interrogazione). In questo caso, vengono richiamati tutti i record nel database.

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


Feedback