그리드 » Api

applymultifilter

Description

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

Parameters

Parameters Type Description
strFilterOption STRING 다중필터 적용 Option (설명참조)
bShowFilterBtn BOOL [옵션] 필터 버튼을 보일지 여부(기본값: true)
bRefresh BOOL [옵션] 그리드 리프레쉬 여부(기본값 true)

Return Value

Type Description
void

Remark

applyfilter, applyfilterex와 다른 점은 여러 칼럼에 대해서 한번에 필터링 조건을 지정할 수 있다는 점과, 필터링 기준 데이터를 SQL의 LIKE 문과 같이 지정할 수 있다는 점이다.

strFilterOption 파라미터는 필터링 기준을 지정하며, 필터링 문자열 또는 필터 옵션 오브젝트 배열값을 가진다.

* 필터 옵션 오브젝트 정보

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(); } } // 멀티 필터 적용 테스트 버튼 클릭 이벤트 처리 function btnMultiFilter2_on_mouseup() { var arrFilterOpt = []; // 1번 컬럼은 데이터가 2인 조건 arrFilterOpt.push({ sub_row_index: 0, // 그리드 서브로우 인덱스 column_index: 1, // 그리드 컬럼 인덱스 compare_type: "=", // 필터 조건 : =,<>,>,>=,<,<= 중 하나 compare_value: "2", // 필더 텍스트, 필터 텍스트 규악/예시 참조 compare_and: true, // AND/OR 조건 (true/false) is_ignore_case: false // 대소문자 구분 비교 여부 (true/false) }); // 2번 컬럼은 데이터가 ab로 시작하는 조건 arrFilterOpt.push({ sub_row_index: 0, // 그리드 서브로우 인덱스 column_index: 2, // 그리드 컬럼 인덱스 compare_type: "=", // 필터 조건 : =,<>,>,>=,<,<= 중 하나 compare_value: "ab*", // 필더 텍스트, 필터 텍스트 규악/예시 참조 compare_and: true, // AND/OR 조건 (true/false) is_ignore_case: false // 대소문자 구분 비교 여부 (true/false) }); // 필터 버튼을 보이면서, 필터 적용 grdNoraml.applymultifilter(arrFilterOpt, true); } /** * 전체 레코드중에서 숨김 처리된 로우수를 구함 * @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