====== 그리드 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;
}