====== 스크립트 디버깅 가이드 ======
이 화면은 스크립트 디버깅에 대한 샘플 화면이다.
===== 예시 =====
템플릿 위치: /STUDIO/SCRIPT/script_debug
템플릿 파일
* [[xf5projecthome>template/screen/STUDIO/SCRIPT/script_debug.xml|script_debug.xml]]
* [[xf5projecthome>template/screen/STUDIO/SCRIPT/script_debug.js|script_debug.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/STUDIO/SCRIPT/script_debug|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
function screen_on_load()
{
cbo_datalog.setselectedcode(factory.getxtrandatalog());
cbo_datalogshowtype.setselectedcode(factory.getxtrandatalogshowtype());
}
// "라인 디버깅 시작" 버튼 이벤트
function btnLineDebug_on_mouseup(objInst)
{
var ret;
// 전용브라우저 및 범용 브라우저의 개발자 도구창이 표시되어 있는 상태에서
// 라인디버깅을 지정하기 위한 예약어 지정
debugger;
factory.consoleprint("Call TR_SELECT Transaction");
// 직원나이 필드값 콘솔에 표시
factory.consoleprint("직원나이 = " + fldAge.gettext());
// ASYNC 처리, 처리 완료시 "on_submitcomplete" 이벤트가 발생함
ret = screen.requestsubmit("TR_SELECT", true);
factory.consoleprint("requestsubmit() Return Value = " + ret);
}
// requestsubmit 처리 완료 이벤트
function screen_on_submitcomplete(mapid, result, recv_userheader, recv_code, recv_msg)
{
factory.consoleprint("mapid = " + mapid + ", result = " + result);
}
// "데이터 통신 로그 콘솔 표시 옵션 설정" 버튼 이벤트
function btn_setxtrandatalog_on_mouseup(objInst)
{
// xFrame5 콘솔창에 송수신 데이터 로깅 옵션 설정
factory.setxtrandatalog(cbo_datalog.getselectedcode());
}
function btn_setxtrandatashowtype_on_mouseup(objInst)
{
factory.setxtrandatalogshowtype(cbo_datalogshowtype.getselectedcode());
}
// "전용 브라우저 개발자 도구 표시" 버튼 이벤트
function btnShowDevTools_on_mouseup(objInst)
{
// 전용브라우저 환경에서 전용브라우저 개발자 콘솔 표시 처리
factory.showdevtools(true);
// 전용브라우저 및 범용 브라우저의 개발자 콘솔에 메시지 표시
console.log("write log message to browser devtool console");
}
// "전용 브라우저 개발자 도구 숨김" 버튼 이벤트
function btnHideDevTools_on_mouseup(objInst)
{
// 전용브라우저 환경에서 전용브라우저 개발자 콘솔 숨김 처리
factory.showdevtools(false);
}
// "xFrame5 콘솔창 표시" 버튼 이벤트
function btnShowConsole_on_mouseup(objInst)
{
// xFrame5 콘솔 트레이스 표시
factory.showconsoletrace(true);
factory.consoleprint("xFrame5 콘솔창에 메시지 표시");
}
// "xFrame5 JSONView 팝업창 표시" 버튼 이벤트
function btnShowJsonViewPopup_on_mouseup(objInst)
{
// xFrame5 콘솔 트레이스 표시
factory.showjsonviewpopup();
}
// "xFrame5 콘솔창 숨김" 버튼 이벤트
function btnHideConsole_on_mouseup(objInst)
{
// xFrame5 콘솔 트레이스 숨김
factory.showconsoletrace(false);
}
// "데이터셋 로그(DS_EMP_AGE)" 버튼 이벤트
function btnXDataSetLog0_on_mouseup(objInst)
{
// xFrame5 콘솔창의 "xdataset0" 영역에 데이터 셋 내용 출력
factory.consoleprintxdataset(DS_EMP_AGE, 0);
}
// "데이터셋 로그(DS_EMP_LIST)" 버튼 이벤트
function btnXDataSetLog1_on_mouseup(objInst)
{
// xFrame5 콘솔창의 "xdataset1" 영역에 데이터 셋 내용 출력
factory.consoleprintxdataset(DS_EMP_LIST, 1);
}
// "타임 로그" 버튼 이벤트
function btnTimeLog_on_mouseup(objInst)
{
var row, col;
var row_count, col_count;
var arrRowData;
// 처리 시각 로깅 시작 위치 지정
factory.consoletimestart("GRID_LOOP");
row_count = grdList.getrowcount();
col_count = grdList.getcolumncount();
for (row = 0; row < row_count; row++) {
arrRowData = [];
for (col = 0; col < col_count; col++) {
arrRowData.push(grdList.getitemtext(row, col));
}
factory.consoleprint("ROW[" + row + "] Data = " + arrRowData.join(","));
}
// 처리 시각 로깅 끝 위치 지정 및 "time" 로그 영역에 경과 시각 로깅 출력
factory.consoletimeend("GRID_LOOP");
}
// "xFrame5 콘솔 메시지 출력" 버튼 이벤트
function btnPrintConsoleMsg_on_mouseup(objInst)
{
// xFrame5 콘솔창이 표시된 상태에서만 동작한다.
// xFrame5 콘솔창이 표시 처리는 factory.showconsoletrace API를 통해서 수행한다.
factory.consoleprint("xFrame5 콘솔창 출력 메시지");
}
// "브라우저 콘솔 메시지 출력" 버튼 이벤트
function btnPrintBrowserConsoleMsg_on_mouseup(objInst)
{
// 범용/전용 브라우저의 개발자 도구창에 표시된 상태에서만 동작한다.
// 전용 브라우저의 개발자 도구창 표시 처리는 factory.showdevtools API를 통해서 수행한다.
console.log("브라우저 콘솔 출력 메시지");
console.error("브라우저 콘솔 출력 메시지");
}
// "서비스 호출 처리 시간 로깅" 버튼 이벤트
function btnTranTimeLog_on_mouseup(objInst)
{
// 처리 시각 로깅 끝 위치 지정 및 "time" 로그 영역에 경과 시각 로깅 출력
factory.consoleprinttran(screen, "TR_SELECT");
}
function screen_on_destroy()
{
alert("1");
return 1;
}
function btnShowXTranLogPopup_on_mouseup(objInst)
{
var bModal = false;
factory.loadpopup("XTRANLOG", "/SYS/UTIL/XTranLog", "XTRANLOG", false, XFD_BORDER_RESIZE, 0, 0, true, bModal, screen);
}