====== 그리드 expr_func ====== 그리드 헤더행, 데이터행, 소계행, 통계행에 대한 표현 함수 관련 예시 화면이다. 관련 컬럼 헤더부 속성으로 expr_func이 있다. 관련 컬럼 데이터부 속성으로 expr_func, midstat_expr_func, statrow_expr_func이 있다. 관련 헤더부 API로 getheaderexprfunc, setheaderexprfunc가 있다. 관련 데이터부 API로 getcolumnexprfunc, getcolumnmidstatexprfunc, getcolumnstatrowexprfunc, setcolumnexprfunc가 있다. ===== 예시 ===== 템플릿 위치: /HTML5/COMPONENT/GRID/grid_expr_func 템플릿 파일 * [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_expr_func.xml|grid_expr_func.xml]] * [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_expr_func.js|grid_expr_func.js]] * [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/GRID/grid_expr_func|새창으로 실행]] echo ''; echo ''; echo ''; ==== 화면 스크립트 ==== /** * 헤더행 사용자 정의 표현 함수 * @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 ExprFuncHeader(nRow, nColumn, strItemText, objGrid, nFileType) { // 반환값 오브젝트 정의 var retInfo = { css : "", // css 문자열 itemtext: undefined, // 아이템 텍스트(setvalue 미지정시 값이 그리드에 저장되지 않음) setvalue: undefined, // 값이 true인 경우, itemtext에 지정된 값으로 그리드에 저장 // 값이 문자열/숫자인 경우, setvalue에 지정된 값으로 그리드에 저장 formatted: false // 패턴 처리 여부 (true로 설정된 경우, 칼럼 패턴이 적용되지 않음) }; // 주의 !!! // 헤더 아이템 변경 처리 API 호출시에는 bRefresh 파라미터를 반드시 false로 지정해야 한다. factory.consoleprint("ExprFuncHeader> nFileType = " + nFileType); if (objGrid === undefined) { // objGrid 파라미터가 undefined인 경우에는 솔루션 패치 이전 상태이며, // expr_func, midstat_expr_func, statrow_expr_func 속성에 // 글로벌 모듈 함수로 지정할 수 없다. factory.consoleprint("objGrid is undefined"); } retInfo.formatted = true; retInfo.itemtext = "Header(" + nRow + ":" + nColumn + ") " + strItemText; // return; // 값 없이 리턴시, 콜백 함수의 리턴값을 사용하지 않음 return retInfo; } /** * 데이터행 사용자 정의 표현 함수 * @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로 지정해야 한다. factory.consoleprint("ExprFuncData> nFileType = " + nFileType); 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; } /** * 소계행 사용자 정의 표현 함수 * @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 ExprFuncMidStat(nRow, nColumn, strItemText, objGrid, nFileType) { // 반환값 오브젝트 정의 var retInfo = { css : "", // css 문자열 itemtext: undefined, // 아이템 텍스트(setvalue 미지정시 값이 그리드에 저장되지 않음) setvalue: undefined, // 값이 true인 경우, itemtext에 지정된 값으로 그리드에 저장, // 값이 문자열/숫자인 경우, setvalue에 지정된 값으로 그리드에 저장 formatted: false, // 패턴 처리 여부 (true로 설정된 경우, 칼럼 패턴이 적용되지 않음) hidden: false, // 숨김 처리 여부 pattern_front_symbol: undefined, // 패턴 front symbol pattern_rear_symbol: undefined // 패턴 rear symbol }; // 주의 !!! // 아이템 변경 처리 API 호출시에는 bRefresh 파라미터를 반드시 false로 지정해야 한다. factory.consoleprint("ExprFuncMidStat> nFileType = " + nFileType); if (objGrid === undefined) { // objGrid 파라미터가 undefined인 경우에는 솔루션 패치 이전 상태이며, // 글로벌 모듈 함수로 지정할 수 없다. factory.consoleprint("objGrid is undefined"); } // retInfo.formatted = true; // retInfo.itemtext = "MidStat(" + nRow + ":" + nColumn + ") " + strItemText; retInfo.pattern_front_symbol = "MidStat(" + nRow + ":" + nColumn + ") "; // return; // 값 없이 리턴시, 콜백 함수의 리턴값을 사용하지 않음 return retInfo; } /** * 통계행 사용자 정의 표현 함수 * @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 ExprFuncStatRow(nRow, nColumn, strItemText, objGrid, nFileType) { // 반환값 오브젝트 정의 var retInfo = { css : "", // css 문자열 itemtext: undefined, // 아이템 텍스트(setvalue 미지정시 값이 그리드에 저장되지 않음) setvalue: undefined, // 값이 true인 경우, itemtext에 지정된 값으로 그리드에 저장, // 값이 문자열/숫자인 경우, setvalue에 지정된 값으로 그리드에 저장 formatted: false, // 패턴 처리 여부 (true로 설정된 경우, 칼럼 패턴이 적용되지 않음) hidden: false, // 숨김 처리 여부 pattern_front_symbol: undefined, // 패턴 front symbol pattern_rear_symbol: undefined // 패턴 rear symbol }; // 주의 !!! // 아이템 변경 처리 API 호출시에는 bRefresh 파라미터를 반드시 false로 지정해야 한다. factory.consoleprint("ExprFuncStatRow> nFileType = " + nFileType); // retInfo.formatted = true; // retInfo.itemtext = "StatRow(" + nRow + ":" + nColumn + ") " + strItemText; retInfo.pattern_front_symbol = "StatRow(" + nRow + ":" + nColumn + ") "; // return; // 값 없이 리턴시, 콜백 함수의 리턴값을 사용하지 않음 return retInfo; }