Crea el objeto QueryFilterNode de nivel superior para la consulta.
Este método QueryDef es el punto de partida para compilar una expresión de consulta. Debe llamar a este método para obtener el primer filtro de la expresión de consulta. A partir de dicho filtro, puede construir otros filtros para especificar los criterios que desea. La expresión de consulta se construye como un árbol de operadores booleanos. El árbol no tiene que ser, necesariamente, binario; puede añadir más de dos condiciones a un nodo de 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)
En esta expresión, el operador booleano de nivel superior es el operador AND. Para iniciar la construcción de esta expresión de consulta, se debe utilizar este método para crear el filtro que tiene el operador de nivel superior:
set myQueryDef = sessionObj.BuildQuery("Defect")
myQueryDef.BuildField("id")
myQueryDef.BuildField("headline")
set filterNode1 = myQueryDef.BuildFilterOperator(AD_BOOL_OP_AND)
Este método sólo se utiliza una vez para construir la raíz del árbol. Para continuar añadiendo filtros, debe llamar a los métodos de los objetos QueryFilterNode devueltos. Por ejemplo, para completar la expresión anterior, debería escribir el código siguiente:
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"
Las expresiones más complicadas se crean adjuntando más nodos de modo recursivo, según se requiera. Para obtener más información, consulte el apartado Objeto QueryFilterNode.
Si un nodo sólo contiene una condición, el valor del parámetro bool_operator es irrelevante. Por ejemplo, si la expresión de consulta completa es 'submitter = jjones', puede construir la expresión de consulta tal como se indica a continuación:
' 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);