그리드 » Api

setcolumnexprfunc

Description

칼럼 아이템 표시시 호출될 함수 이름 속성인 expr_func 속성값을 지정한다.

Parameters

Parameters Type Description
nColumn short 열 인덱스(Zero-Based, -1 지정시 전체 컬럼)
strFuncName STRING 함수 이름
strMidStatFuncName STRING 소계행 처리 함수 이름
strStatRowFuncName STRING 통계행 처리 함수 이름
bRefresh BOOL [옵션] 그리드 리프레쉬 여부(기본값 true)

Return Value

Type Description
BOOL 정상 처리 여부

Remark

함수의 리턴 오브젝트내 itemtext는 그리드에 표시하기 위한 용도로만 사용된다. setvalue를 지정하지 않은면, 그리드에 값이 저장되지 않기 때문에 getitemtext API를 통해서 구해지지 않는다.

strFuncName, strMidStatFuncName, strStatRowFuncName 파라미터 값을 공백 문자열로 지정시 기존에 지정된 함수를 취소한다.

strFuncName, strMidStatFuncName, strStatRowFuncName 파라미터 값을 null로 지정시, 기존에 지정된 함수를 변경하지 않는다.

함수 이름에 해당하는 파라미터에 글로벌 모듈의 함수 이름을 지정하기 위해서는 "글로벌모듈이름.함수이름" 형식으로 지정한다.

지정한 함수 내에서 setitem 관련 API 호출시 bRefresh 옵션 파라미터를 반드시 false로 지정해서 호출해야 한다.

bRefresh 값이 false인 경우, 변경된 내용을 표시하기 위해서는 refresh 함수를 호출해야 한다.

만약 많은 수의 칼럼에 대해서 루핑 돌면서 호출하는 경우라면, 해당 파라미터를 false로 주고, 루핑처리 끝난 이후에 그리드 refresh 함수를 호출하는 것이 속도면에서 훨씬 빠릅니다.

예시는 솔루션 설치 디렉토리 하위 템플릿 화면(template/HTML5/COMPONENT/GRID/grid_expr_func)을 참조한다.

Example

function btn_on_mouseup(objInst) { // grid no refresh grd.setcolumnexprfunc(0, "ExprFuncData", null, null, false); // grid no refresh, global function grd.setcolumnexprfunc(1, "SYSUtil.ExprFuncData", null, null, false); // grid refresh grd.setcolumnexprfunc(2, "ExprFuncData", null, null, true); screen.alert("func name = " + grd.getcolumnexprfunc(2)); } /** * 데이터행 사용자 정의 표현 함수 * @param nRow 행 인덱스 (Zero-Based) * @param nColumn 열 인덱스 (Zero-Based) * @param strItemText 아이템 텍스트 * @param objGrid 그리드 오브젝트 * @param nFileType 파일 유형 (0: GRID, 1: CSV, 2: EXCEL, 3: TEXT, 4: XML, 5: JSON) * @returns 오브젝트 또는 undefined */ function ExprFuncData(nRow, nColumn, strItemText, objGrid, nFileType) { // 반환값 오브젝트 정의 var retInfo = { css : "", // css 문자열 itemtext: undefined, // 아이템 텍스트(setvalue 미지정시 값이 그리드에 저장되지 않음) setvalue: undefined, // 값이 true인 경우, itemtext에 지정된 값으로 그리드에 저장 // 값이 문자열/숫자인 경우, setvalue에 지정된 값으로 그리드에 저장 formatted: false, // 패턴 처리 여부 (true로 설정된 경우, 칼럼 패턴이 적용되지 않음) hidden: false, // 숨김 처리 여부 (true로 설정된 경우, 값이 표현되지 않음) pattern_front_symbol: undefined, // 패턴 front symbol pattern_rear_symbol: undefined // 패턴 rear symbol }; // 주의 !!! // 아이템 변경 처리 API 호출시에는 bRefresh 파라미터를 반드시 false로 지정해야 한다. if (objGrid === undefined) { // objGrid 파라미터가 undefined인 경우에는 솔루션 패치 이전 상태이며, // expr_func, midstat_expr_func, statrow_expr_func 속성에 // 글로벌 모듈 함수로 지정할 수 없다. factory.consoleprint("objGrid is undefined"); // objGrid 변수를 아래 라인처럼, 화면내 그리드 이름이 "grdList"인 경우에 // 화면내 실제 그리드 이름으로 지정하여 사용한다. // objGiid = this.grdList;; } // 패턴 심볼 설정 if (nRow == 0 && nColumn == 2) { // retInfo 값 지정 방식 // retInfo.pattern_front_symbol = "$"; // retInfo.pattern_rear_symbol = "%"; // API 호출 방식 (bRefresh 파라미터를 false로 지정) if (objGrid) { objGrid.setitempatternfrontsymbol(nRow, nColumn, "$", false); objGrid.setitempatternrearsymbol(nRow, nColumn, "%", false); } } // 전경색 및 배경색 변경 if (nRow == 1 && nColumn == 2) { // retInfo 값 지정 방식 // retInfo.css = "color: rgb(255,255,255); background-color: rgb(0,0,255);"; // API 호출 방식 (bRefresh 파라미터를 false로 지정) if (objGrid) { objGrid.setitemforecolor(nRow, nColumn, factory.rgb(255,255,255), false); objGrid.setitembackcolor(nRow, nColumn, factory.rgb(0,0,255), false); } } // 데이터 변경 및 포맷팅 처리 값 지정 if (nRow == 2 && nColumn == 2) { retInfo.itemtext = "DataRow(" + nRow + ":" + nColumn + ") " + strItemText; retInfo.formatted = true; } // 숨김 지정 if (nRow == 3 && nColumn == 2) { retInfo.hidden = true; } // return; // 값 없이 리턴시, 콜백 함수의 리턴값을 사용하지 않음 return retInfo; }

See Also

getcolumnexprfunc

Viewer Ver.

9.1.1.1

Update Date

20241224