파일 경로: /extention/portal/customscript.jsp
해당 파일에 fnCustomReportOpen, searchReportInfo 함수가 있는지 확인 후, 없으면 아래 내용 참고하여 사용하시기 바랍니다.
추가) 2023.09.20 기준, fnCustomReportOpen 함수 내 변경된 부분이 있습니다. 첨부파일 참고 바랍니다.
1. fnCustomReportOpen 함수 파라미터 정의
A보고서에서 B보고서를 호출한다고 가정했을 때,
1) reportCode
- 새로 열고자 하는 보고서 코드 (B보고서 코드)
2) isRecycle
- 현재 탭을 재사용하여 보고서를 열 것인지 여부 (탭 사용하지 않는 경우 무시됨)
- true: 탭 재사용 모드로 열림, false: 현재 PORTAL설정에 설정된 탭 모드로 열림
3) isParentReportClose
- 기존에 열었던 보고서 탭을 닫을 것인지 여부 (A보고서 탭을 닫을 것인지, 탭 사용하지 않는 경우 무시됨)
2. 사용 방법
1) i-AUD 보고서에서 window.top.fnCustomReportOpen("보고서 코드", false, false); 와 같이 호출
- 첨부된 샘플 보고서 참고
※ i-AUD 보고서 간 파라미터는 전달 불가합니다.
3. 소스 코드
예제 코드
/** * tab 사용일 경우에 전달하는 보고서만 해당 탭을 재사용하여 오픈될 수 있도록 하는 보고서 오픈 함수 **/ var fnCustomReportOpen = function (reportCode, isRecycle, isParentReportClose) { var parentReportCode = curr_reportCode; var info = searchReportInfo(reportCode); if (info.code == null || info.code.length <= 0) { gfn_alert('Please check reportCode'); return; } var _closeType; var currTab; if (GFN_OPTION.OP04_TAB_FLAG == "Y" && isRecycle && !this.ispopupView) { if (this.parent.gvTabContainer == undefined) { // 직접 div를 그린 경우 (미니 포탈 등) currTab = this.parent.gvTab; } else { currTab = this.parent.gvTabContainer.gvTab; // iframe 적용 } _closeType = currTab.CloseType; currTab.CloseType = "iportalClose"; } if (this.ispopupView) { gvCode = info.code; gvName = info.name; gvModule = info.module; gvPath = info.path; gvAuthNo = info.option.AuthNo; gvFolderCode = info.option.FolderCode; gvModifyDate = info.option.ModifyDate; reportOnLoad(); } else { ReportOpenByTree(info.code, info.name, info.desc, info.module, info.path, "" , { 'FolderCode': info.option.FolderCode, 'AuthNo': info.option.AuthNo, 'ModifyDate': info.option.ModifyDate, 'isRecycle': isRecycle, 'parentReportCode' : parentReportCode }, params); } if (_closeType != 'undefined' && _closeType != null) { // 기존에 적용한 closeType으로 재 적용 시킨다. currTab.CloseType = _closeType; } if (isParentReportClose && (GFN_OPTION.OP04_TAB_FLAG == "Y" && !this.ispopupView)) { for (var i = 0; i < currTab.Items.length; i++) { if ((currTab.Items[i].Code == parentReportCode) && currTab.Items[i].Active == false) { currTab.CloseTab(currTab.Items[i]); return; } } } }; /** * 보고서 코드에 해당하는 정보 조회하는 api * @param id * @returns {{path: string, code: string, module: string, name: string, desc: string, option: {FolderCode: string, ModifyDate: string, FolderPath: string, AuthNo: string}}} */ var searchReportInfo = function (id) { var info = { code: '', name: '', desc: '', module: '', path: '', option: { AuthNo: '', FolderCode: '', FolderPath: '', ModifyDate: '' } } //보고서 정보 조회 $.biMatrix.callAjax({ type: 'POST', async: false, // 동기 url: gvWebRootName + '/portal/service/content_action.jsp', data: { 'actionKey': 'searchReportAuthInfo', 'reportCode': id }, dataType: 'json', success: function (ret) { if (typeof ret == 'undefined' || ret == null || ret.length <= 0) return; info.code = id; info.name = ret.REPORT_NAME; info.desc = ret.REPORT_DESC; info.module = ret.MODULE_CODE; info.path = ret.REPORT_PATH; info.option.AuthNo = ret.AUTHORITY_NO; info.option.FolderCode = ret.FOLDER_CODE; info.option.FolderPath = ""; info.option.ModifyDate = ret.MODIFY_DATE; }, noData: null }); return info; };