그리드 » Api

applyfilterbyoption

Description

그리드의 다수의 칼럼 값을 기준으로 필터를 적용한다.

Parameters

Parameters Type Description
arrFilterOption Array 필터 Option 배열 (설명참조)
bShowFilterBtn BOOL [옵션] 필터 버튼을 보일지 여부(기본값: true)
bRefresh BOOL [옵션] 그리드 리프레쉬 여부(기본값 true)

Return Value

Type Description
void

Remark

* 필터 텍스트 규약

* 필터 텍스트 예시

arrFilterOption 파라미터는 아래의 필터 옵션 오브젝트의 배열이다.

* 필터 옵션 오브젝트 정보

filter_option = {
	sub_row_index: 0, // 그리드 서브로우 인덱스
	column_index: 0,  // 그리드 컬럼 인덱스
	compare_type: "=", // 필터 조건 : =,<>,>,>=,<,<= 중 하나
	compare_value: "", // 필더 텍스트, 필터 텍스트 규악/예시 참조
	compare_and: true, // AND/OR 조건 (true/false)
	is_ignore_case: false // 대소문자 구분 비교 여부 (true/false)
};

두번째 파라미터 bShowFilterBtn은 필터 버튼을 보여줄지 여부를 지정하며, 옵션 파라미터로 값을 안주면 true(필터 버튼을 보여줌)이다.

만약 그리드에 대해 많은 작업을 수행하는 경우라면, 해당 파라미터를 false로 주고, 작업 완료시 그리드 refresh 함수를 호출하는 것이 속도면에서 훨씬 빠릅니다.

Example

// 그리드(이름:grdNomal)의 3개의 칼럼으로 구성되어 있다. // 멀티 필터 적용 테스트 버튼 클릭 이벤트 처리 function btnMultiFilter_on_mouseup() { var strFilterOpt = ""; // 1번 컬럼은 데이터가 2 이고 strFilterOpt += "1:=:\"2\":&" + ","; // 2번 컬럼은 데이터가 ab로 시작하는 데이터 필터링 strFilterOpt += "2:=:\"ab*\":&"; // 필터 버튼을 보이면서, 필터 적용 grdNoraml.applymultifilter(strFilterOpt, true); // 표시되는 레코드 갯수를 구함 var nShowRowCount = getDisplayRowCount(grdNormal); // 필터가 적용된 데이터가 존재한다는 의미이기 때문에 리턴 if(nShowRowCount > 0) { return; } // 필터가 적용된 데이터가 존재하지 않는다는 의미 // 필터 해제 확인 창 표시후, 사용자 선택에 따라 필터 해제 var bRet = screen.confirm("필터를 해제하시겠습니까?"); if(bRet == true) { // 필터 해제 grdNormal.releasefilter(); } } /** * 전체 레코드중에서 숨김 처리된 로우수를 구함 * @param objGrid 그리드 오브젝트 * @return 숨김 처리된 로우 카운트 */ function getDisplayRowCount(objGrid) { var i; var nRowCount = objGrid.getrowcount(); var nDisplayRowCount = 0; for(i = 0; i < nRowCount; i++) { // 필터링된 레코드인지 판단 if(objGrid.ishiddenrow(i) == false) { nDisplayRowCount++; } } return nDisplayRowCount; }

See Also

applyfilter
isshowfilter
showfilter
releasefilter

Viewer Ver.

9.1.1.1

Update Date

20231221