본문 바로가기
Nexacro

[Nexacro] 데이터셋 검색 예제

by bjgu97 2021. 11. 23.
반응형

1. 단일조건 검색(칼럼 하나 대상으로 검색)

ex) 사원번호가 KR120인 사원 구하기

var nRow = this.dataset.findRow("EMPL_ID", "KR120"); // 찾고자하는 칼럼, 값 -> 인덱스
var sVal = this.dataset.getColumn(nRow, "FULL_NAME"); // 인덱스, 칼럼 -> 해당 값

 

2. 복합조건 검색(칼럼 여러 개일때)

ex) 부서코드가 K10이고 급여가 5000 이하인 사원 구하기

var nRow = this.dataset.findRowExpr("DEPT_CODE == 'K10' && SALARY <= 5000");
var sVal = this.dataset.getcolumn(nRow, "FULL_NAME");

 

3. 여러건 구하기

(단일조건, 복합조건 -> 한건)

ex) 부서가 K10인 사원 목록 구하기

var sVal = this.dataset.lookup("EMPL_ID", "KR120", "FULL_NAME");

 

4. 기타

ex) 남성과 여성의 평균 급여 계산

var nAvgM = this.dataset.getCaseAvg("GENDER=='M'", "SALARY");
var nAvgW = this.dataset.getCaseAvg("GENDER=='W'", "SALARY"); // default
var nAvgW = this.dataset.getCaseAvg("GENDER=='W'", "SALARY", 0, -1, false); //start위치, end위치, NULL값제외여부

 

ex) 급여와 보너스를 합친 금액의 평균 금액 계산

var nAvg = this.dataset.getAvg("SALARY+BONUS"); // 바로 칼럼간 연산 가능

 

ex) 입사일 기준 내림차순 정렬

this.dataset.set_keystring("S:-HIRE_DATE"); // S:정렬, -:내림차순

 

ex) 남성이고 미혼인 데이터만 필터 (결과내 재검색)

this.dataset.filter("GENDER=='M' && MARRID=='0'");

 

ex) Like 필터 : 성명에 영문 'e'가 포함되어있는 데이터만 필터

var eText = "e";

// 안좋은 예시; eText에 ' 들어가면 에러남.
this.dataset.filter("FULL_NAME.toUpperCase().indexOf('" + sText.toUpperCase() + "') >= 0");

// 좋은 예시
this.dataset.filter("String(FULL_NAME).toUpperCase().indexOf('" + nexacro.replaceAll(sText, "'", "\\'").toUpperCase() + "') >= 0");

 

ex) 원본 레코드 개수와 필터해서 보이는 레코드 개수 비교

var nCnt = this.dataset1.getRowCount(); // 필터된 상태에서 row 건수
var nCntNF = this.dataset1.getRowCountNF(); // 필터되기 전 row 건수

* NF = Not Filter

 

cf) 'set_' 붙어있으면 -> 속성에 대한 값 변경했다는 뜻.!

댓글