BuildFilterOperator

Descrizione

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.

Sintassi

VBScript

querydef.BuildFilterOperator bool_operator

Perl

$querydef->BuildFilterOperator(bool_operator);
Identificativo
Descrizione
querydef
Un oggetto QueryDef.
bool_operator
Un valore Long il cui valore è una 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 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"
Nota: È possibile creare un oggetto QueryDef senza filtri (in altre parole, senza espressione della query). In questo caso, vengono richiamati tutti i record del tipo di record fornito nel database. Se è presente un numero elevato di record (diverse migliaia), è necessario utilizzare i filtri per ridurre il numero di record restituiti. La restituzione di un numero elevato di record influisce in modo negativo sulle prestazioni e può determinare un consumo eccessivo di memoria sulle macchine server.

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