본문 바로가기

Paul Work/Tool

[MiPlatform] Filter

Filter의 기본적인 사용법은 아래와 같다
여기서 "==" 와 "=" 는 방법이라고 하니 굳이 어떤걸 사용하여도 상관은 없다

구문은 아래와 같이
dataset.Filter("컬럼명 == '데이터' || ("컬럼명 == '데이터'" );

OR를 적용
 dataset.Filter("컬럼명 == '데이터' || ("컬럼명 == '데이터'" );

AND를 적용
 dataset.Filter("컬럼명 == '데이터' && ("컬럼명 == '데이터'" );

                    [그림 1]                                           [그림 2]                                [그림 3]

위와 같은 [그림 1]번을 선택하여 [그림 3번]의 데이터를 필터링 하고 [그림 2]의 데이터를 [그림 3]에서 나온 데이터 기준으로 다시 필터링을 하는 프로그램을 아래와 같이 구현을 할 수 있다.

quote     : 양쪽에 쌍따옴표를 찍어주는 함수
ds_list    : [그림 1] 데이터셋
ds_list_0 : [그림 3] 데이터셋
ds_list_1 : [그림 2] 데이터셋
sTempId : [그림 3]에서 추출된 [그림 2]의 기준값을 담는 변수

sCodeCd = ds_list.GetColumn(nNewRow, "INF_CODE");        //[그림 1]에서 선택된 데이터로 변수에 담는다
ds_list_0.Filter("FT=" + quote(sCodeCd));                             //[그림 1]에서 나온 데이터로 [그림 3]을 필터링 함
        
sTempId ="";
for(var i=0; i< ds_list_0.count; i++)                                       //[그림 3] 데이터 기준으로 LOOF를 돌림
{
   sTempId = sTempId + "ORG_CODE == \""+ds_list_0.getColumn(i,"FT2")+"\"";
            
      if(i+1 != ds_list_0.count)
         sTempId = sTempId +" || ";
}

ds_list_1.Filter(sTempId);

Filter 초기화
ds_list_1.UNFilter();

위와같이 실행하면  Filter이 초기 조회된 데이터로 조회가 된다.