BuildFilter

Descripción

Añade un operando de comparación al nodo.

El operando que crea este método consta de un nombre de campo, un operador de comparación y un valor. Cuando se ejecuta la consulta, el valor del campo se compara con el valor especificado utilizando el operador de comparación dado. La comparación produce un valor Boolean, y el nodo lo utiliza en su propia comparación Boolean.

El argumento de valor es un Variant de Visual Basic o una referencia de Perl a una matriz de series que le permiten especificar una matriz de valores cuando sea necesario. Por ejemplo, si deseara buscar los defectos enviados entre el 1 y el 15 de diciembre de 2000, podría construir el filtro siguiente:

@dateRange = ("2000-12-01", "2000-12-15"); $node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, \@dateRange);

Consulte también el ejemplo que se proporciona para el método BuildFilterOperator de QueryDef.

Las expresiones de consulta no se limitan a ser árboles binarios; puede llamar a este método tantas veces como desee para un objeto QueryFilterNode determinado.

Para obtener valores válidos para el argumento nombre_campo, llame al método GetFieldDefNames del objeto EntityDef en el que se basa la consulta.

Sintaxis

VBScript

node.BuildFilter
nombre_campo,
operador_comparación, valor 

Perl

$node->BuildFilter(nombre_campo,
operador_comparación, valor); 
Identificador
Descripción
node
Un objeto QueryFilterNode que representa un nodo en la expresión de consulta.
nombre_campo
Un valor String que contiene el nombre de un campo válido en el objeto EntityDef en el que se basa el objeto QueryDef actual.
operador_comparación
Un Long cuyo valor es una de las constantes de enumeración de CompOp.
valor
El valor que se desea buscar en el campo especificado.

En Visual Basic, especifique el valor como un Variant o matriz Variant.

En Perl, especifique el valor como una referencia a una serie o una matriz de series.

Valor de retorno
Ninguno.

Ejemplos

VBScript

Dim dateRange
ReDim dateRange(1) ' Establece un matriz de dos elementos
dateRange(0) = "2000-12-01" 
dateRange(1) = "2000-12-15" 
node.BuildFilter "submit_date", AD_COMP_OP_BETWEEN, dateRange 

Perl

#Ejemplo 1

@dateRange = ("2000-12-01", "2000-12-15"); 
$node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN,
       \@dateRange); 
#Ejemplo 2

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


Comentarios