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 VBScript o una referencia de Perl a una matriz de series que permite 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 2007, podría construir el filtro siguiente:
@dateRange = ("2007-12-01", "2007-12-15");
$node->BuildFilter("submit_date", $CQPerlExt::CQ_COMP_OP_BETWEEN, \@dateRange);
El método BuildFilter requiere un tercer argumento para todos los operadores de comparación, incluidos OP_IS_NULL y OP_IS_NOT_NULL. Por ejemplo,
$operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NOT_NULL, [""]);
$operator->BuildFilter("customer_priority", $CQPerlExt::CQ_COMP_OP_IS_NULL, [""]);

Consulte también el ejemplo que se proporciona para el método BuildFilterOperator del objeto tQueryDef.

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 field_name, llame al método GetFieldDefNames del objeto EntityDef en el que se basa la consulta.

Sintaxis

VBScript

node.BuildFilter
field_name,comparison_operator,value 

Perl

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

En VBScript, se debe especificar el valor como una matriz Variant.

En Perl, se debe especificar el valor como una referencia a una serie o una matriz de series.

Valor de retorno
Ninguno.

Ejemplos

VBScript

Dim dateRange
ReDim dateRange(1) ' This sets up a two element array
dateRange(0) = "2007-12-01" 
dateRange(1) = "2007-12-15" 
node.BuildFilter "submit_date", AD_COMP_OP_BETWEEN, dateRange 

Perl

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

#Example2
@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