데이터셋에 행(row)을 추가할 때 특정 셀의 속성값을 조건에 따라 세팅하는 방법 두 가지를 소개한다.
1. decode() 사용
행을 하나 만들고 원하는 셀에 decode를 걸어준다.
SetCellProp의 두번째 파라미터가 셀의 인덱스다.
function addRow() {
// 데이터셋에 행 추가
dsApple.AddRow();
// 신규 추가된 행의 특정 셀에만 팝업 버튼 표시
var strExpr = "expr:decode(rowtype, 'insert', 'True', 'False')";
grdApple.SetCellProp("Body", 2, "ExpandShow", strExpr);
}
(+추가+) decode()는 위처럼 코드로 적어줘도 되지만 Design탭에서 해당 컬럼의 ExpandShow (E)를 마우스 우클릭으로 더블클릭하여 내용을 수정해 쓸 수도 있다.
2. 데이터셋 이벤트 사용
행을 추가할 데이터셋의 이벤트를 이용한다.
먼저 데이터셋 탭에서 OnRowPosChanged 이벤트를 생성한다.
이벤트명을 적고 엔터를 쳐도 되고, 해당 컬럼 옆의 빈 칸을 더블클릭하면 자동생성된다.
함수의 내용은 아래와 같다.
function insertOrNot(obj,nOldRow,nRow) {
// 해당 Row의 Type이 INSERT일 경우 팝업버튼 표시
if (ToUpper(obj.GetRowType(nRow)) == "INSERT") {
grdApple.SetCellProp("body", 1, "ExpandShow", "True");
// 해당 Row의 Type이 INSERT가 아닐 경우 팝업버튼 비표시
} else {
grdApple.SetCellProp("body", 2, "ExpandShow", "False");
}
}
1, 2번 방법 중에는 1번 방법이 코드도 짧고 행 추가 시에만 발동하기 때문에 더 좋다고 판단된다.
'개발툴 > MiPlatform' 카테고리의 다른 글
[MiPlatform] Expression Syntax에 오류가 발생하였습니다 해결 (0) | 2020.06.30 |
---|---|
[MiPlatform] 데이터셋에 신규 추가한 행만 수정 가능하게 하기 (0) | 2020.06.19 |
[MiPlatform] 특정 컬럼에 특정 값이 있는 로우(행) 찾기 (0) | 2020.02.26 |
[MiPlatform] 마이플랫폼 엑셀 특정 자리까지 소수점 출력 (0) | 2020.02.26 |
[MiPlatform] 마이플랫폼 오류 '인덱스 n이 범위를 벗어났습니다' (0) | 2020.02.25 |
댓글