XDataSet » Api

multisort

Description

데이터셋 데이터에 대해서 다중 정렬을 처리하는 API이다.

Parameters

Parameters Type Description
strSortOption STRING 정렬옵션
strCallback STRING [옵션] 정렬 완료 콜백 함수 이름
nStartRow long [옵션] 정렬 범위 시작 행 인덱스
nEndRow long [옵션] 정렬 범위 시작 행 인덱스

Return Value

Type Description
BOOL 정상 처리 여부

Remark

strSortOption 파라미터 형식은 아래와 같다.
- 컬럼 정렬 정보 구분자 : ","
- 단위 컬럼 정렬 정보 형식 : 컬럼인덱스:정령방식:데이터형식:정렬함수이름
- 정렬방식: ASC(오름차순)/DESC(내림차순)
- 데이터형식: 0(숫자)/1(문자)
- 정렬함수이름: 사용자 정의 정렬 처리 함수 이름을 지정한다. 
                (함수 형식은 샘플 소스를 참조한다.)
  
예) "0:ASC:0:,1:DESC:2:"    
    -> 0번째컬럼은 숫자형으로 오름차순 정렬, 1번째 컬럼은 문자형으로 내림차순 정렬

nStartRow 파라미터 값이 -1, 유효하지 않은 값, 값 미정시 데이터셋 첫번째 행으로 처리된다.

nEndRow 파라미터 값이 -1, 유효하지 않은 값, 값 미정시 데이터셋 마지막 행으로 처리된다.

Example

function btn_on_mouseup() { // 사용자 정의 정렬 함수 미지정 DS_DATA.multisort("0:ASC:0:,1:DESC:1:"); // 사용자 정의 정렬 함수 지정 DS_DATA.multisort("0:ASC:0:,1:DESC:1:XDatasetSortFunc"); // 컬럼 이름을 기준으로 정렬 DS_DATA.multisortbyname("COL_NUM:ASC:1:,COL_ENG:DESC:1:XDatasetSortFunc"); // 정렬 완료 콜백 함수 지정 DS_DATA.multisortbyname("COL_NUM:ASC:1:,COL_ENG:DESC:1:XDatasetSortFunc", "XDatasetSortCallback"); // 정렬 범위 지정 DS_DATA.multisortbyname("COL_NUM:ASC:1:,COL_ENG:DESC:1:XDatasetSortFunc", "XDatasetSortCallback", 0, 10); } /** * XDataset multisort API에서 콜백 함수 지정시 * @param objInst XDataset 오브젝트 */ function XDatasetSortCallback(objInst, nSortStartTime) { var objEndDate, nSortEndTime, nElapseSecond; objEndDate = new Date(); nSortEndTime = objEndDate.getTime(); nElapseSecond = (nSortEndTime - nSortStartTime) / 1000; factory.consoleprint("XDatasetSortCallback> ID = " + objInst.getid() + ", SortTime = " + nElapseSecond); } /** * 데이터셋 사용자 정의 정렬 함수 * @param objInst XDataset 오브젝트 * @param nColumn 데이터셋 칼럼 인덱스 (Zero-Based) * @param nSortOrder 정렬 순서 (1(ASC)/2(DESC)) * @param nDataType 데이터 형식 (0(NUMBER)/1(STRING)) * @param strValueA 비교 대상 값 A * @param strValueB 비교 대상 값 B * @return 정렬 순서가 1(ASC)인 경우, 아래의 기준에 따름, 0: strValueA와 strValueB 값이 같은 경우, 1: strValueA와 strValueB 보다 값이 큰 경우 -1: strValueA와 strValueB 보다 값이 작은 경우 정렬 순서가 2(DESC)인 경우, 1(ASC)와 반대 값 */ function XDatasetSortFunc(objInst, nColumn, nSortOrder, nDataType, strValueA, strValueB) { var nValue1, nValueB; factory.consoleprint("XDatasetSortFunc> " + nColumn + ", " + nSortOrder + ", " + nDataType); factory.consoleprint("XDatasetSortFunc> strValueA = " + strValueA + ", strValueB = " + strValueB); if (nDataType == 0) { nValueA = parseFloat(strValueA); nValueB = parseFloat(strValueB); if (nSortOrder == 1) { return nValueA - nValueB; } else if (nSortOrder == 2) { return nValueB - nValueA; } else { return 0; } } else { if (strValueA == strValueB) { return 0; } if (nSortOrder == 1) { return strValueA > strValueB ? 1 : -1; } else if (nSortOrder == 2) { return strValueA > strValueB ? -1 : 1; } else { return 0; } } return 0; }

See Also

multisortbyname

Viewer Ver.

9.1.1.1

Update Date

20210415