조회에 대한 최상위 레벨 QueryFilterNode 오브젝트를 작성합니다.
이 QueryDef 메소드는 조회 표현식 빌드의 시작점입니다. 조회 표현식의 첫 번째 필터를 얻으려면 이 메소드를 호출해야 합니다. 이 필터에서 원하는 조건을 지정할 추가적인 필터를 생성할 수 있습니다. 조회 표현식은 부울 연산자의 트리로 생성됩니다. 트리가 꼭 2진일 필요는 없습니다. 필터 노드에 3개 이상의 조건을 추가할 수 있습니다.
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)
이 표현식에서 최상위 레벨 부울 연산자는 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"
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);