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 operador_booleano Perl $querydef->BuildFilterOperator(operador_booleano);
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 objeto QueryFilterNode.
Si un nodo sólo contiene una condición, el valor del parámetro operador_booleano 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:
' Puede utilizar AD_BOOL_OP_AND o AD_BOOL_OP_OR para esta ' expresión, puesto que sólo existe una condición. 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);