====== 스크립트 디버깅 가이드 ====== 이 화면은 스크립트 디버깅에 대한 샘플 화면이다. ===== 예시 ===== 템플릿 위치: /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); }