var gRef_MediFormView = "/root/main/medirec/medireccnts"; var gRef_ViewMediFormView = "/root/main/viewmedirec/medireccnts"; var IMGE_SZ = 500; var gExtnFuncFlag = true; var gReclistCnt = ""; var gFDGWidth = 573; var gFDGHeight = 357; /** * @desc : 초기 화면 설정 * @id : * @event : xforms-ready * @return : void * @authur : 박종훈 */ function fReadyForm() { grd_medirec.autoResize = true; if (isPopup()) { gExtnFuncFlag = false; var formnm = opener.window.javascript.getParameter("formnm"); if (formnm != "") { window.document.title = formnm + " - 미리보기"; var cont = new COMN_CONT_RECCNTS(); cont.pid = ""; cont.recfromdt = ""; cont.rectodt = ""; cont.formrecdeptcd = ""; cont.chosflag = ""; cont.formrecseq = "-1"; fAtrerRef(cont); } } //2011-05-26 진상찬: 기록 상세조회 그리드의 헤더 감추기 grd_medirec.rowHidden(0) = true; } /** * @desc : 그리드 Row형식 셋팅 * @id : * @event : * @return : void * @authur : 박종훈 */ function fSetRowStyle(rowidx, backColr, fontWei, fontSize, padLeft) { grd_medirec.rowStyle(rowidx, "data", "background-color") = backColr; grd_medirec.rowStyle(rowidx, "data", "font-weight") = fontWei; grd_medirec.rowStyle(rowidx, "data", "font-size") = fontSize; if (padLeft == "IMGE") { grd_medirec.rowStyle(rowidx, "data", "background-position") = "center"; } else { grd_medirec.rowStyle(rowidx, "data", "padding-left") = padLeft; grd_medirec.rowStyle(rowidx, "data", "background-image") = ""; } } /** * @desc : 기록내용 조회후 화면표시 형식 셋팅 로직 * @id : * @event : * @return : void * @authur : 박종훈 */ function fAtrerRef(comn_cont_reccnts) { var cnt = parseInt( getNodesetCount(gRef_MediFormView) ); if(cnt == 0){ fClear(); } // <, > 로 변환 doReplaceLtGt(gRef_MediFormView); var path_degnitemkind = gRef_MediFormView + "[#iIdx#]/degnitemkind"; var path_viewimge = gRef_MediFormView + "[#iIdx#]/viewimge"; var path_reccnts = gRef_MediFormView + "[#iIdx#]/reccnts"; var path_imgewid = gRef_MediFormView + "[#iIdx#]/imgewid"; var path_imgehei = gRef_MediFormView + "[#iIdx#]/imgehei"; var path_viewcnts = gRef_MediFormView + "[#iIdx#]/viewcnts"; var path_degnitemlevlcd = gRef_MediFormView + "[#iIdx#]/degnitemlevlcd"; var chpath_viewimge; var chpath_reccnts; for (var i = 1; i <= cnt; i++) { chpath_viewimge = path_viewimge.replace("#iIdx#", i); chpath_reccnts = path_reccnts.replace("#iIdx#", i); if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "IMG" && (model.getValue(chpath_viewimge) != "" || model.getValue(chpath_reccnts) != "") ) { var Localimg = ""; var degnitemlevlcd = ""; var IMGListNode = ""; var strXvgInfo = ""; degnitemlevlcd = model.getValue(path_degnitemlevlcd.replace("#iIdx#", i)); if(degnitemlevlcd != "") { IMGListNode = findNodeset(model, gRef_MediFormView+ "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemkind='MTX']"); } for(var idx = 0; idx < IMGListNode.length; idx++) { var imgNode = IMGListNode.item(idx); var Localimg = imgNode.selectSingleNode("viewcnts").text; } // XML 데이터 입력 시 width / height로 ocx 크기를 변경함. var reccntsValue = model.getValue(path_reccnts.replace("#iIdx#", i)); var strImgBase64 = model.getValue(path_viewimge.replace("#iIdx#", i)); var shapeinfo = reccntsValue; // caption 을 모두 CDATA 처리 reccntsValue = fSetCdata(reccntsValue); if(reccntsValue != "") { strXvgInfo = fGetMetaMode(reccntsValue); var tmpShape = removeXvgTag(reccntsValue); } } else if (model.getValue(path_degnitemkind.replace("#iIdx#", i)) == "FDG" && model.getValue(chpath_reccnts) != "") { var MetaData = model.getValue(path_reccnts.replace("#iIdx#", i)); setImageRefInstance(path_viewcnts.replace("#iIdx#", i)); } } //grd_medirec.attribute("ref")="/root/main/viewmedirec/medireccnts"; grd_medirec.nodeset = "/root/main/viewmedirec/medireccnts"; if (comn_cont_reccnts.formrecseq != null && comn_cont_reccnts.formrecseq != "") { copyNodeset(gRef_ViewMediFormView, gRef_MediFormView, "replace", model, model); fDrawGrid(); } else { fExeFilter(gFilterCond); } } /** * @desc : 그리드 그리기 로직 * @id : * @event : * @return : void * @authur : 박종훈 */ var gfontSz = 11; function fDrawGrid() { var fontsz = 11; if (fontsz != "") { gfontSz = fontsz; } grd_medirec.visible = false; grd_medirec.refresh(); grd_medirectmp.refresh(); var colref_viewflag = grd_medirec.colRef("viewflag"); var colref_imgehei = grd_medirec.colRef("imgehei"); var colref_degnitemlevlno = grd_medirec.colRef("degnitemlevlno"); var colref_degnitemkind = grd_medirec.colRef("degnitemkind"); var viewflag; var degnitemlevlno; //var ft_std = 11; var ft_std = 0; var ft_header = (ft_std + parseInt(gfontSz) + 1) + "pt"; var ft_cnts = (ft_std + parseInt(gfontSz)) + "pt"; var ft_tail = (ft_std + parseInt(gfontSz) - 1) + "pt"; var padng = 15; for (var i = 1; i <= grd_medirec.rows; i++) { viewflag = grd_medirec.valueMatrix(i, colref_viewflag); grd_medirec.rowStyle(i, "all", "color") = "#55435d"; if (viewflag == "data") { if (grd_medirec.valueMatrix(i, colref_imgehei) == "") { if (grd_medirec.valueMatrix(i, colref_degnitemkind) == "GSU") { fSetRowStyle(i, "transparent", "", ft_cnts, (padng * (parseInt(grd_medirec.valueMatrix(i, colref_degnitemlevlno))-1)) + ""); } else { fSetRowStyle(i, "transparent", "", ft_cnts, (padng * parseInt(grd_medirec.valueMatrix(i, colref_degnitemlevlno))) + ""); } } else { fSetRowStyle(i, "transparent", "", "11", "IMGE"); //grd_medirec.rowHeight(i) = parseInt(grd_medirec.valueMatrix(i, colRef_imgehei)) + 5; } } else if (viewflag == "fstlevl") { fSetRowStyle(i, "transparent", "bold", ft_cnts, "5"); } else if (viewflag == "formnm") { fSetRowStyle(i, "#cce8ff", "bold", ft_header, "5"); } else if (viewflag == "recinfo") { fSetRowStyle(i, "#cce8ff", "", ft_cnts, "5"); } else if (viewflag == "recuser") { fSetRowStyle(i, "transparent", "", "12", "5"); } } //grd_medirec.resizeCells(); 2011-05-24진상찬: 그리드의 autosize를 true로 변경 var colref_compflag = grd_medirec.colRef("compflag"); for (var i = 1; i <= grd_medirec.rows; i++) { viewflag = grd_medirec.valueMatrix(i, colref_viewflag); if (grd_medirec.valueMatrix(i, colref_imgehei) != "") { grd_medirec.rowHeight(i) = parseInt(grd_medirec.valueMatrix(i, colref_imgehei)) + 5; } else if (viewflag == "formnm") { if(grd_medirec.rowHeight(i) != "undefined" && grd_medirec.rowHeight(i) != null){ grd_medirec.rowHeight(i) = grd_medirec.rowHeight(i) + 5; } } else if (viewflag == "recinfo") { if(grd_medirec.rowHeight(i) != "undefined" && grd_medirec.rowHeight(i) != null){ grd_medirec.rowHeight(i) = grd_medirec.rowHeight(i) + 3; } } else if (viewflag == "recuser") { if(grd_medirec.rowHeight(i) != "undefined" && grd_medirec.rowHeight(i) != null){ grd_medirec.rowHeight(i) = 50; } } } grd_medirec.visible = true; } /** * @desc : 메뉴 취소버튼 클릭시 * @id : * @event : * @return : void * @authur : 박종훈 */ function fCncl() { grup_menu.visible = false; } /** * @desc : 초기 사이즈 설정 * @id : * @event : * @return : void * @authur : 박종훈 */ function fInitPage(wid, hei) { body.attribute("width") = wid; body.attribute("height") = hei; grd_medirec.attribute("width") = wid; grd_medirec.attribute("height") = hei; grd_medirec.colWidth(1) = wid - 21; grd_medirec.refresh(); grd_medirectmp.refresh(); } /** * @desc : 기록 미리보기 * @id : * @event : * @return : void * @authur : 박종훈 */ function fPreviewData(node) { model.removeNodeset("/root/main/medirec"); var node2 = instance1.selectSingleNode("/root/main"); node2.appendChild(node.cloneNode(true)); model.refresh(); var cont = new COMN_CONT_RECCNTS(); cont.pid = ""; cont.recfromdt = ""; cont.rectodt = ""; cont.formrecdeptcd = ""; cont.chosflag = ""; cont.formrecseq = "-1"; fAtrerRef(cont); } /** * @desc : 화면 Clear * @id : * @event : * @return : void * @authur : 박종훈 */ function fClear() { model.removeNodeset(gRef_MediFormView); model.removeNodeset(gRef_ViewMediFormView); model.refresh(); } /** * @desc : 기록내역 조회 * @id : * @event : * @return : void * @authur : 박종훈 */ function fRefRecView(condflag, pid, chosflag, fromdd, todd, stddd, srcformcd, deptcd, formrecseq, arrFormrecseq) { var path = "/root/send/reqcond/"; model.makeValue(path+"condflag", condflag); model.makeValue(path+"pid", pid ); model.makeValue(path+"chosflag", chosflag); model.makeValue(path+"fromdd", fromdd); model.makeValue(path+"todd", todd); model.makeValue(path+"stddd", stddd); model.makeValue(path+"attr", srcformcd); model.makeValue(path+"deptcd", deptcd); model.makeValue(path+"keyval", formrecseq); var submitLength = 1; if ( arrFormrecseq != null ) { submitLength = arrFormrecseq.length; } // 2010/01/04 hkjoo 수정 for ( var i=0; i]+>)', 'igm'); if (regexp.test(strXrw) == true) { var xvginfo = strXrw.match(regexp); var strRtn = ""; for(var idx =0; idx < xvginfo.length; idx++) { strRtn += xvginfo[idx]; } // ViewMode 얻기 strRtn = strRtn.setReplaceWord("<", ""); strRtn = strRtn.setReplaceWord(">", ""); strRtn = strRtn.setReplaceWord("'", ""); var arrAttrs = strRtn.split(" "); var viewMode = ""; var viewWidth = ""; var viewHeight = ""; var strXvgInfo = new Array(3); for(var i = 0; i < arrAttrs.length; i++) { var strSplit = arrAttrs[i].split("="); if(strSplit[0] == "viewMode") { viewMode = strSplit[1]; strXvgInfo[0] = viewMode; continue; } if(strSplit[0] == "width") { viewWidth = strSplit[1]; strXvgInfo[1] = viewWidth; continue; } if(strSplit[0] == "height") { viewHeight = strSplit[1]; strXvgInfo[2] = viewHeight; continue; } } return strXvgInfo; } else { return ""; } } /** * @desc : 기록내용 필터링 * @id : * @event : * @return : void * @authur : 박종훈 */ var gSrcFormCds = ""; var gItemBaseCds = ""; function fFiltering(pArrSrcFormCds, pArrItemBaseCds) { var stmtForm = ""; var stmtItem = ""; if (pArrSrcFormCds != null) { for (var i = 0; i < pArrSrcFormCds.length; i++) { if (stmtForm != "") stmtForm += " or "; stmtForm += "srcformcd='" +pArrSrcFormCds[i]+ "'"; } } if (pArrItemBaseCds != null) { for (var i = 0; i < pArrItemBaseCds.length; i++) { if (stmtItem != "") stmtItem += " or "; stmtItem += "fstlevlitembasecd='" +pArrItemBaseCds[i]+ "'"; } } var stmt = ""; if (stmtForm != "") { stmt = "(" + stmtForm + ")"; } if (stmt != "" && stmtItem != "") { stmt += " and "; } if (stmtItem != "") { stmt += "(" + stmtItem + " or fstlevlitembasecd='-1')"; } if (gFilterCond == stmt) { return false; } else { return fExeFilter(stmt); } } /** * @desc : 기록내용 필터 * @id : * @event : * @return : void * @authur : 박종훈 */ var gFilterCond = ""; function fExeFilter(stmt) { var cond = stmt; if (stmt == null || stmt == "") stmt = ""; else stmt = "[" +stmt+ "]"; var cnt = getNodesetCount(gRef_MediFormView + stmt); if (cnt == 0) { return false; } copyNodeset(gRef_ViewMediFormView, gRef_MediFormView + stmt, "replace", model, model); grd_medirec.rebuild(); grd_medirectmp.rebuild(); fDrawGrid(); gFilterCond = cond; return true; } /** * @desc : 메타데이터에서 caption을 CDATA로 감싼다. * @id : * @event : * @return : * @authur : 이경희 */ function fSetCdata(metadata) { var strMeta = metadata; // 1. CDATA로 감싸져 있는지 확인. if(isSearchString(strMeta, "CDATA") == false) { var strStCaptionOld = ""; var strEdCaptionOld = ""; var strStCaptionNew = ""; var strEdCaptionNew = ""; // 배열로 반환 strStCaptionOld = fGetXvgStCaption(strMeta); strEdCaptionOld = fGetXvgEdCaption(strMeta); // for문으로 반복 for(var idx = 0; idx < strStCaptionOld.length; idx++) { if(idx == 0) { // 모든 을 ]]> 으로 변경 strEdCaptionNew = "]]>" + strEdCaptionOld[idx]; strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew); } strStCaptionNew = strStCaptionOld[idx] + "]+>)', 'igm'); if(grpexpSt.test(strMeta) == true) { getStCaption = strMeta.match(grpexpSt); strMeta = strMeta.replace(grpexpSt, ""); } if(getStCaption.length > 0) return getStCaption; else return ""; } /** * @desc : 메타데이터에서 caption의 종료 태그를 반환한다. * @id : * @event : * @return : * @authur : 이경희 */ function fGetXvgEdCaption(metadata) { var strMeta = metadata; var getEdCaption = new Array(); var grpexpEd = new RegExp('()', 'igm'); if (grpexpEd.test(strMeta) == true) { getEdCaption = strMeta.match(grpexpEd); strMeta = strMeta.replace(grpexpEd, ""); } if(getEdCaption.length > 0) return getEdCaption; else return ""; } function fGetAdjustImgeSize(imgewid, imgehei) { if ( parseInt(imgewid) > parseInt(IMGE_SZ) && parseInt(imgehei) > parseInt(IMGE_SZ) ) // 이미지 사이즈의 가로 및 세로가 500보다 큼 { //alert("이미지 사이즈의 가로 및 세로가 500보다 큼: " + arrSz); if ( parseInt(imgewid) >= parseInt(imgehei) ) { var newHeight = ( imgehei * IMGE_SZ ) / imgewid; //obj_imge.SetControlSize(IMGE_SZ, newHeight); imgewid = IMGE_SZ; imgehei = newHeight; } else if ( parseInt(imgewid) <= parseInt(imgehei) ) { var newWidth = ( imgewid * IMGE_SZ ) / imgehei; //obj_imge.SetControlSize(newWidth, IMGE_SZ); imgewid = newWidth; imgehei = IMGE_SZ; } else { //obj_imge.SetControlSize(IMGE_SZ, IMGE_SZ); imgewid = IMGE_SZ; imgehei = IMGE_SZ; } } else if ( parseInt(imgewid) > parseInt(IMGE_SZ) ) { //alert("이미지 가로 사이즈가 500보다 큼: " + arrSz); var newheight = ( imgehei * IMGE_SZ ) / imgewid; imgewid = IMGE_SZ; imgehei = newheight; } else if ( parseInt(imgehei) > parseInt(IMGE_SZ) ) { //alert("이미지 세로 사이즈가 500보다 큼: " + arrSz); var newWidth = ( imgewid * IMGE_SZ ) / imgehei; imgewid = newWidth; imgehei = IMGE_SZ; } else if ( parseInt(imgewid) < parseInt(IMGE_SZ) && parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 가로 및 세로 사이즈가 500보다 작음 { //alert("이미지 가로 및 세로 사이즈가 500보다 작음: " + arrSz); if ( parseInt(imgewid) > parseInt(imgehei) ) { var newHeight = ( imgehei * IMGE_SZ ) / imgewid; imgewid = IMGE_SZ; imgehei = newHeight; } else if ( parseInt(imgewid) < parseInt(imgehei) ) { var newWidth = ( imgewid * IMGE_SZ ) / imgehei; imgewid = newWidth; imgehei = IMGE_SZ; } else { imgewid = IMGE_SZ; imgehei = IMGE_SZ; } } else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) // 이미지 가로 사이즈가 500보다 작음 { //alert("이미지 가로 사이즈가 500보다 작음: " + arrSz); if ( parseInt(imgehei) > parseInt(IMGE_SZ) ) { var newHeight = ( imgehei * IMGE_SZ ) / imgewid; imgewid = IMGE_SZ; imgehei = newHeight; } else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) { var newWidth = ( imgewid * IMGE_SZ ) / imgehei; imgewid = newWidth; imgehei = IMGE_SZ; } } else if ( parseInt(imgehei) < parseInt(IMGE_SZ) ) // 이미지 세로 사이즈가 500보다 작음 { //alert("이미지 세로 사이즈가 500보다 작음: " + arrSz); if ( parseInt(imgewid) > parseInt(IMGE_SZ) ) { var newHeight = ( imgehei * IMGE_SZ ) / imgewid; imgewid = IMGE_SZ; imgehei = newHeight; } else if ( parseInt(imgewid) < parseInt(IMGE_SZ) ) { var newWidth = ( imgewid * IMGE_SZ ) / imgehei; imgewid = newWidth; imgehei = IMGE_SZ; } } else { imgewid = IMGE_SZ; imgehei = IMGE_SZ; } return imgewid + "|" + imgehei; }