BuildFilterOperator

설명

조회에 대한 최상위 레벨 QueryFilterNode 오브젝트를 작성합니다.

이 QueryDef 메소드는 조회 표현식 빌드의 시작점입니다. 조회 표현식의 첫 번째 필터를 얻으려면 이 메소드를 호출해야 합니다. 이 필터에서 원하는 조건을 지정할 추가적인 필터를 생성할 수 있습니다. 조회 표현식은 부울 연산자의 트리로 생성됩니다. 트리가 꼭 2진일 필요는 없습니다. 필터 노드에 3개 이상의 조건을 추가할 수 있습니다.

구문

VBScript

querydef.BuildFilterOperator bool_operator
Perl
$querydef->BuildFilterOperator(bool_operator);
ID
설명
querydef
QueryDef 오브젝트입니다.
bool_operator
값이 BoolOp 상수 중 하나인 Long입니다.
Return value
새로 작성된 QueryFilterNode 오브젝트입니다.

예제

VBScript

submit_date < 01/03/2001 AND
(submitter = jjones OR submitter = clopez OR submitter = kwong)

이 표현식에서 최상위 레벨 부울 연산자는 AND 연산자입니다. 이 조회 표현식의 생성을 시작하려면, 이 메소드를 사용하여 최상위 레벨 연산자가 있는 필터를 작성합니다.

set myQueryDef = sessionObj.BuildQuery("Defect")
myQueryDef.BuildField("id")
myQueryDef.BuildField("headline")
set filterNode1 = myQueryDef.BuildFilterOperator(AD_BOOL_OP_AND)

이 메소드를 한 번 사용하여 트리의 루트를 생성합니다. 필터를 계속 추가하려면 리턴된 QueryFilterNode 오브젝트의 메소드를 호출합니다. 예를 들어, 이전 표현식을 완료하려면 다음 코드를 작성합니다.

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" 

더 복잡한 표현식은 필요에 따라 노드를 더 추가하여 작성합니다. 자세한 정보는 QueryFilterNode 오브젝트를 참조하십시오.

노드에 하나의 조건만 포함된 경우에는 bool_operator 매개변수의 값이 관계가 없습니다. 예를 들어, 전체 조회 표현식이 'submitter = jjones'인 경우 다음과 같은 조회 표현식을 작성할 수 있습니다.

' 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"
주: 필터링이 없는(다른 말로, 조회 표현식이 없는) QueryDef 오브젝트를 작성할 수 있습니다. 이 경우 데이터베이스의 모든 레코드가 검색됩니다.

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


피드백