퀀텀그리드(cxGrid)의 Filter를 코딩으로 하는 방법

cxGrid의 내용을 필터를 걸때 사용하는 방법입니다.

일반적인 방법과 다중 조건을 거는 방법 2개를 올립니다.

단일 조건의 경우

OR 조건을 이용하여 필터를 거는 방법입니다.

( 컬럼1 like ‘%는값%’ ) or ( 컬럼2 like ‘%찾는값%’ )

위와 같은 경우 아래와 같이 코딩합니다.

그리드TV.DataController.Filter.Clear;
그리드TV.DataController.Filter.Root.BoolOperatorKind := fboOr;
그리드TV.DataController.Filter.Root.AddItem(첫번째 그리드 컬, foLike, ‘%’ + 찾을값 + ‘%’, 필터내용을 화면에표시할내용 );
그리드TV.DataController.Filter.Root.AddItem(두번째 그리드 컬, foLike, ‘%’ + 찾을값 + ‘%’, 필터내용을 화면에표시할내용 );
그리드TV.DataController.Filter.Active := true;

다중 조건을 거는 방법

상위는 And이고 하위는 OR 조건을 이용하여 필터를 거는 방법입니다.

( ( 컬럼1 =는값’ ) or ( 컬럼2 = ‘찾는값’ ) )

AND

( ( 컬럼3 =는값’ ) or ( 컬럼4 = ‘찾는값’ ) )

 

위와 같은 경우 아래와 같이 코딩합니다.

그리드TV.DataController.Filter.BeginUpdate;
그리드TV.DataController.Filter.Active := False;
그리드TV.DataController.Filter.Clear;
그리드TV.DataController.Filter.Root.BoolOperatorKind := fboAnd;

첫번째Filter := 그리드_증상tv.DataController.Filter.Root.AddItemList( fboOr );
첫번째Filter.AddItem( 첫번째 그리드 컬, foEqual , ‘찾을값’, 필터내용을 화면에표시할내용 );
첫번째Filter.AddItem( 두번째 그리드 컬, foEqual , ‘찾을값’, 필터내용을 화면에표시할내용 );

두번째Filter:= 그리드_증상tv.DataController.Filter.Root.AddItemList( fboOr );
두번째Filter.AddItem( 세번째 그리드 컬, foEqual , ‘찾을값’, 필터내용을 화면에표시할내용 );
두번째Filter.AddItem( 네번째 그리드 컬, foEqual , ‘찾을값’, 필터내용을 화면에표시할내용 );

그리드TV.DataController.Filter.Active := True;
그리드TV.DataController.Filter.EndUpdate;

제발 제글을 자신이 한것처럼 하지는 맙시다.

그리고 그런짓을해서 돈 벌었으면 알려주기라도 하시오.

누구 때문에 내가 막대한 피해를 입었단 말이오.

정말 걸리면 법적 제제가 가할겁니다.

Author: yyjksw