- 데이테셋 EXPR 사용시 함수 찾기
this.ds_list.findRow("dataset.parent.gfn_isNull(COL_ID)");
- 그리드 EXPR인경우 함수 찾기
comp.parent.(그리드위치에따라parent계속붙임).gfn_isNull(COL_ID)
- 참고 EXPR
- 데이터셋 데이터 수정 여부 확인
this.ds_List.findRowExprNF("(dataset.getRowType(currow)==4)||(dataset.getRowType(currow)==2)");
- 데이터셋 특정 COL_ID로 DISTINCT하기 (고정값이 아닌 현재로우의 값과 비교하기)
var colId = 'IF_COL';
var sExpr= 'rowidx==dataset.findRowExpr("'+colId+'==\'\" + '+colId+' \+ "\'" )' ;
this.ds_list.filter(sExpr); //해당 컬럼 ID로 중복 제거해준다.
// rowidx는 Dataset의 row index를 의미합니다.
// filter에 'rowidx==dataset.findRowExpr("IF_COL=='"+IF_COL+"'") ' 이렇게 넣는 방식.
// IF_COL이 고정값 비교가 아님 현재로우의 IF_COL 값과 비교하는 방법이다.
// 컬럼은 &&로 붙여서 여러개 같이 비교할수 있다.
// 컬럼값이 필수가 아닌경우 null이 있으면 해당 row들은 그냥 제거된다.
==>> 값이 null 일때는 비교가 안되서 필터에서 제거되는 현상이 있으니 nvl함수를 생성해서
아래와 같이 처리하면 된다.
var sExpr = 'rowidx==dataset.findRowExpr( "dataset.parent.gfn_nvl(' +colid4+',\'x!x\')==\'\" + dataset.parent.gfn_nvl('+colid4+',\'x!x\') \+ "\'")';
===>> 컬럼이 여러개일때 예제.
this.Button00_onclick = function(obj:Button, e:nexacro.ClickEventInfo)
{
this.gf_distincDsFilter(this.Dataset00, "code,name");
}
this.gf_distincDsFilter = function(objDs, sColID)
{
var arrArgs = this.gf_Trim(sColID).split(",");
var sFilterExpr = "";
var sFindRowExpr = "";
for (var i=0; i<arrArgs.length; i++)
{
if (objDs.getColumnInfo(arrArgs[i]) == null) continue;
sFindRowExpr += (this.gf_IsNull(sFindRowExpr) == false) ? " && " : "";
sFindRowExpr += "" + arrArgs[i] + "=='\" + " + arrArgs[i] + " + \"'";
}
if (this.gf_IsNull(sFindRowExpr) == false) {
sFilterExpr = "rowidx==dataset.findRowExpr(\"" + sFindRowExpr + "\")";
}
objDs.filter(sFilterExpr);
}
'IT > nexacro' 카테고리의 다른 글
nexacro 소수점 계산시 값이 틀리게 나오느경우. (4) | 2024.10.08 |
---|---|
Nexacro 화면 (작업 페이지)새로 고침 (0) | 2024.08.22 |
NEXACRO 기본문법 (N기준 작성) (0) | 2023.03.02 |
javascript *.js파일을 넥사에서 include하기(화면 캡쳐) (0) | 2022.10.17 |
nexacro showcase (0) | 2022.07.20 |
댓글