var STATUS_SELECT = 0; var STATUS_INSERT = 1; var STATUS_UPDATE = 2; var STATUS_DELETE = 3; var isOpenPE = false; var isNext = false; //****************************************************************************** //* net //****************************************************************************** var net=new Object(); net.READY_STATE_UNINITIALIZED = 0; net.READY_STATE_LOADING = 1; net.READY_STATE_LOADED = 2; net.READY_STATE_INTERACTIVE = 3; net.READY_STATE_COMPLETE = 4; net.ContentLoader = function(url, onload, onerror, method, params, contentType, synchronize) { //alert(url); debug("Start net.ContentLoader..."); this.request = null; net.currentLoader = this; this.onload = onload; this.onerror = (onerror) ? onerror : this.defaultError; this.loadXMLDoc(url,method,params,contentType, synchronize); } net.ContentLoader.prototype.loadXMLDoc = function(url, method, params, contentType, synchronize) { debug("Start net.ContentLoader.loadXMLDoc..."); if (!method) { method = "GET"; } if (!contentType && method == "POST") { contentType = "application/x-www-form-urlencoded; charset=UTF-8"; } if (window.XMLHttpRequest) { this.request = new XMLHttpRequest(); } else if (window.ActiveXObject) { this.request = new ActiveXObject("Microsoft.XMLHTTP"); } method = "POST"; if (this.request) { try { var loader=this; this.request.onreadystatechange = function(){ net.ContentLoader.onReadyState.call(loader, params); } if (synchronize == null || synchronize == undefined) synchronize = true; this.request.open(method,url,synchronize); if (contentType){ this.request.setRequestHeader("Content-Type", contentType); } this.request.send(params); }catch (err){ this.onerror.call(this); } } } net.ContentLoader.onReadyState = function(params) { var req = this.request; var ready = req.readyState; if (ready == net.READY_STATE_COMPLETE) { var httpStatus = req.status; blockOff(); if(httpStatus==200 || httpStatus==0){ this.onload.call(this, params); }else{ this.onerror.call(this); } } } net.ContentLoader.prototype.defaultError = function(){ alert( "error fetching data!" + "\n\nreadyState:" + this.request.readyState + "\nstatus: " + this.request.status + "\nheaders: " + this.request.getAllResponseHeaders()); } //****************************************************************************** //* Xml //****************************************************************************** var Xml=new Object(); // Ajax에서 받은 request.xml의 값을 xml String형태로 return Xml.getReqXmlStr=function(obj){ if(obj.request.responseXML){ return obj.request.responseXML.xml; }else{ alert('(getReqXmlStr) No data'); } } // Ajax에서 받은 request.xml의 값을 DOM 형태 그대로 Xml.getReqXmlObj=function(obj){ if(obj.request.responseXML){ return obj.request.responseXML; }else{ alert('(getReqXmlObj) No data'); } } Xml.getNodeValues=function(obj,name){ var el = obj.documentElement; var returnList; if(el){ var list = el.selectNodes(name);//el.getElementsByTagName(name); if(list.length > 0){ returnList = new Array(); for(i=0;i 0){ returnValue = list.item(row).cloneNode(deep); } } return returnValue; } Xml.getNodeAttributes=function(obj,nodeName,attName){ var el = obj.documentElement; var returnList; if(el){ var list = el.selectNodes(nodeName); if(list.length > 0){ returnList = new Array(); for(i=0;i"); xDocTmp.load(document.getElementById(xmlId)); xDoc.documentElement.appendChild(xDocTmp.documentElement); return xDoc; } //****************************************************************************** //* Log Console //****************************************************************************** /* function Console(el) { this.el = document.getElementById(el); this.el.className = "console"; this.el.consoleMode = this; this.subEl = document.getElementById("consoleView"); this.clear(); } Console.prototype.debug = function(obj, style) { this.subEl.innerText += "\n\n[" + new Date().toString().replace("UTC+0900 ", "") + "] LOGGER DEBUG\n" + obj.toString(); } Console.prototype.clear = function() { } var styling = new Object(); styling.toDOMElement = function(obj) { var result = null; if (! obj instanceof String) { result = obj; } else { var wrapper = document.createElement("DIV"); wrapper.style.width = "1024px"; wrapper.appendChild(document.createTextNode(String(obj))); result = wrapper; } return result; } */ //****************************************************************************** //* WiseView Controller //****************************************************************************** var AJAX_URL = CONTEXT_ROOT + "service"; //* Ajax Loader function getContentLoader(url, callbackFuncName, xml, synchronize) { debug("call getContentLoader\n" + "url : " + url + "\n" + "callback function name : " + callbackFuncName); //net.ContentLoader = function(url, onload, onerror, method, params, contentType, synchronize) return new net.ContentLoader(url, callbackFuncName, null, "POST", xml, null, synchronize); } //* command 에 따라 DS 를 추출하여 xml 을 만들고 Ajax Loader 를 호출 function sendDataStructure(sCommand, sCallBack, hasAll, synchronize) { var sUrl = CONTEXT_ROOT + "service"; var sXml = buildXml(sCommand, hasAll); //var debug_win = window.open(); //debug_win.document.write(sXml); if (sXml == null) return false; var callBack = eval((null == sCallBack ? "return" + sCommand : sCallBack)); getContentLoader(sUrl, callBack, sXml, synchronize); //alert(rs_call); //blockOff(); } //* sendDataStructure 확장한 조회용 함수 function doSelect(sCommand, sCallBack, hasAll, synchronize) { sendDataStructure(sCommand, sCallBack, hasAll, synchronize); } //* sendDataStructure 확장한 수정용 함수 function doModify(sCommand, sCallBack, synchronize) { if (0 == Page.enable) { //COMMON/M0023 alert(getMessage("COMMON", "M0023")); blockOff(); return false; } var isSaved = ("SAVE" == sCommand ? true : false); //COMMON/M0024/M0026 var msg = isSaved ? getMessage("COMMON", "M0024") : getMessage("COMMON", "M0026"); //if (! confirm(msg)){ // blockOff(-1); // return false; //} blockOn(1); Page.status = (isSaved ? (1 == Page.status ? 1 : 2) : 3); sendDataStructure(sCommand, sCallBack, synchronize); } function doSave(dsName, sCallBack, synchronize) { sendDataStructure(dsName, sCallBack, synchronize); } /** * Action Command에 해당하는 DataStructure를 생성한다. */ function buildXml(sCommand, hasAll) { hasAll = (null == hasAll) ? false : hasAll; var dsXml = new ActiveXObject("Msxml.DOMDocument"); var repXml = new ActiveXObject("Msxml.DOMDocument"); var rowXml = new ActiveXObject("Msxml.DOMDocument"); var orgDsXml = document.getElementById(sCommand); dsXml.async = false; if (orgDsXml == null) { alert("XML id[" + sCommand + "] 을(를) 찻을 수 없습니다."); return null; } dsXml.load(orgDsXml); //root = xmlDoc.documentElement; if (PROG_ID != "COMMON") { var progIdParam = dsXml.createElement("P"); progIdParam.text = "PROG_ID↑" + PROG_ID; dsXml.documentElement.appendChild(progIdParam); } var dList = dsXml.getElementsByTagName("D"); //Dataset만큼 루프 for (var i = 0; i < dList.length; i++) { //ioType var dIO = dList.item(i).getAttribute("IO"); //dataset name var dName = dList.item(i).getAttribute("N" ); //send all : "Y" 이면 그리드의 모든 레코드를 XML로 만든다. var sandAll = dList.item(i).getAttribute("ALL" ); //filter SQL : SQL문장에 해당되는 레코드를 XML로 만든다. var filterSQL = dList.item(i).getAttribute("F" ); var srcNode = dList.item(i); //dataset xml var orgRepXml = document.getElementById(dName); if (orgRepXml == null) { alert("XML id[" + dName + "] 을(를) 찾을 수 없습니다."); return null; } repXml.async = false; repXml.load(orgRepXml); var repNode = repXml.documentElement; //ioType == "I" if ("I" == dIO) { //viewType == "WiseView FORM" if ("1" == repNode.getAttribute("T")) { //column list var columnList = repNode.getElementsByTagName("C"); var sRowXml = ""; //row list for (var j = 0; j < columnList.length; j++) { var viewCtlId = columnList.item(j).getAttribute("V"); var viewCtlObj = WiseView.GetControlById(viewCtlId); sRowXml += viewCtlObj.value + ROW_DELIMITER; } if (sRowXml.length > 0) { var rowNode = repXml.createElement("R"); var rowTextNode = repXml.createCDATASection(sRowXml.substring(0, sRowXml.length - 1)); var rowAttr = repXml.createAttribute("S"); rowAttr.nodeValue = Page.status; rowNode.setAttributeNode(rowAttr); rowNode.appendChild(rowTextNode); repNode.appendChild(rowNode); } } //viewType == "ViewView LIST" else if ("2" == repNode.getAttribute("T")) { rowXml.async = false; if (repNode.getAttribute("V") == null) { alert("DataSet[" + sCommand + "] 에 V='GridID'값이 존재하지 않습니다."); return false; } var grid = WiseView.GetControlById(repNode.getAttribute("V")); if (hasAll) { var gridXml = Datasets[dName]; var gridRowList = gridXml.documentElement.getElementsByTagName("R"); var sGridRowXml = ""; for (var i = 0; i < gridRowList.length; i++) { sGridRowXml += gridRowList[i].xml; } rowXml.loadXML("" + sGridRowXml + ""); } else if (filterSQL != null && filterSQL.trim() != "") { // SQL에 해당하는 레코드를 XML로 만든다. add KDO 2008.07.09 var rNodesString = grid.GetFilteredData(filterSQL); rowXml.loadXML("" + rNodesString + ""); }else if (sandAll == "Y") { // 그리드의 모든 레코드를 XML로 만든다. var rNodesString = ""; for (var j = 1; j <= grid.RowCount; j++) { var attS = grid.GetRowStatus(j); var attN = grid.GetRowID(j); var rNode = ""; rNodesString += rNode; } rowXml.loadXML("" + rNodesString + ""); } else if (grid.SelectionColVisible) { rowXml.loadXML("" + grid.GetSelectedRows() + ""); } else { //rowXml.loadXML("" + WiseView.GetControlById(repNode.getAttribute("V")).GetChangedRows() + ""); rowXml.loadXML("" + grid.GetChangedRows() + ""); //* add BB007 - 2007.02.27 //* 데이터가 없는 빈 로우는 삭제한다. (모든 그리드에 적용) var cRowList = rowXml.documentElement.getElementsByTagName("R"); for (var j = cRowList.length - 1; j >= 0 ; j--) { var hasValues = false; var rowValues = cRowList[j].text.split(ROW_DELIMITER); for (var k = 0; k < rowValues.length; k++) { if ("" != rowValues[k].trim()) { hasValues = true; break; } } if (! hasValues) rowXml.documentElement.removeChild(cRowList[j]); } } var rowList = rowXml.documentElement.getElementsByTagName("R"); for (var j = 0; j < rowList.length; j++) repNode.appendChild(rowList[j]); } //viewType == "HTML FORM" else if ("3" == repNode.getAttribute("T")) { //column list var columnList = repNode.getElementsByTagName("C"); var sRowXml = ""; //row list for (var j = 0; j < columnList.length; j++) { var oId = columnList.item(j).getAttribute("V"); if (oId) { var obj = document.getElementById(oId); var oV = null; if (obj.tagName.toUpperCase() == "INPUT" || obj.tagName.toUpperCase() == "SELECT") { oV = obj.value; } sRowXml += oV + ROW_DELIMITER; } } if (sRowXml.length > 0) { var rowNode = repXml.createElement("R"); var rowTextNode = repXml.createCDATASection(sRowXml.substring(0, sRowXml.length - 1)); var rowAttr = repXml.createAttribute("S"); rowAttr.nodeValue = "0";//Page.status; rowNode.setAttributeNode(rowAttr); rowNode.appendChild(rowTextNode); repNode.appendChild(rowNode); } } //Range else if ("4" == repNode.getAttribute("T")) { var columnList = repNode.getElementsByTagName("C"); var sRowXml = ""; for (var j = 0; j < columnList.length; j++) { var rangeObj = WiseView.GetControlById(columnList.item(j).getAttribute("V")).MultiSelValues; if(rangeObj.count > 0) { for(k = 0; k < rangeObj.count; k++) { sRowXml += rangeObj.ItemAt(k).IE + "^" + rangeObj.ItemAt(k).Operator + "^" + rangeObj.ItemAt(k).Min + "^" + rangeObj.ItemAt(k).Max + "↓"; } sRowXml = sRowXml.substr(0, sRowXml.length - 1); } sRowXml += "↑"; } if (sRowXml.length > 0) { var rowNode = repXml.createElement("R"); var rowTextNode = repXml.createCDATASection(sRowXml.substring(0, sRowXml.length - 1)); var rowAttr = repXml.createAttribute("S"); rowAttr.nodeValue = "0";//Page.status; rowNode.setAttributeNode(rowAttr); rowNode.appendChild(rowTextNode); repNode.appendChild(rowNode); } } //viewType == "ViewView Tree" else if ("5" == repNode.getAttribute("T")) { rowXml.async = false; if (repNode.getAttribute("V") == null) { alert("DataSet[" + sCommand + "] 에 V='TreeID'값이 존재하지 않습니다."); return false; } var tree = WiseView.GetControlById(repNode.getAttribute("V")); rowXml.loadXML("" + tree.GetAllDataRows() + ""); var rowList = rowXml.documentElement.getElementsByTagName("R"); for (var j = 0; j < rowList.length; j++) repNode.appendChild(rowList[j]); } } repXml.createAttribute("IO"); repNode.setAttribute("IO") = dIO; dsXml.documentElement.removeChild(srcNode); dsXml.documentElement.appendChild(repNode); } // alert("Server Request XML :\n" + dsXml.xml); return dsXml.xml; } function setTotalCount(dNode){ gridId = dNode.getAttribute("CT"); var grid = WiseView.GetControlById(gridId); if(grid==null){ alert("TotalCount를 대입할 Grid Id[" + gridId + "]가 없습니다."); return; } var value = dNode.selectSingleNode("R").text; grid.TotalCount = value; //setModify(Page.enable); } //* xml 를 폼 객체에 바인드 하는 함수 function bindForm(rXml) { var dList = rXml.getElementsByTagName("D"); //modify neptune - 2007.03.20 //var disabledList = document.getElementById("EDITABLE").getElementsByTagName("DATASET"); //dataset list for (var i = 0; i < dList.length; i++) { var dNode = dList.item(i); var dName = dNode.getAttribute("N"); var dFormType = dNode.getAttribute("T"); var dFormName = dNode.getAttribute("V"); if(dFormType =="1" && dFormName =="TotalCount" && dNode.getAttribute("CT")!=null){ setTotalCount(dNode); continue; } if (dFormType == "2" && dFormName != null) { var gridDoc = new ActiveXObject("Msxml.DOMDocument"); gridDoc.loadXML("" + dNode.xml + ""); //넥스트버튼을 눌렀을경우 로우값을 수정하고 Append시킴. if(isNext){ var cnt = WiseView.GetControlById(dFormName).RowCount var j = gridDoc.getElementsByTagName("R"); for(i=0;i" + dNode.xml + ""); WiseView.GetControlById(dFormName).SourceXMLDomDocument = treeDoc; continue; } var rowNode = dNode.selectSingleNode("R"); var columns = document.getElementById(dName).getElementsByTagName("C"); //* modify BB007 - 2007.02.02 var values = (null == rowNode) ? new Array(columns.length) : rowNode.text.split(ROW_DELIMITER); var isDisabled = false; var disabledFields = new Array(); /* * modify neptune - 2007.03.20 for (var j = 0; j < disabledList.length; j++) { var disabledNode = disabledList.item(j); if (dName == disabledNode.getAttribute("name")) { isDisabled = true; disabledFields = disabledNode.selectSingleNode("NOT").text.split(","); debug("disabledFields : " + disabledFields); break; } } */ debug("bind values : " + values); for (var j = 0; j < columns.length; j++) { debug("bind control : " + columns[j].getAttribute("V")); var controlId = columns[j].getAttribute("V"); var control = WiseView.GetControlById(controlId); var controlType = WiseView.GetControlTypeById(controlId); if (control == null) { alert(columns[j].getAttribute("V") + " 에 해당되는 컨트롤이 존재하지 않습니다."); return false; } //* add BB007 - 2007.02.02 if (null == rowNode) control.Value = ""; //alert(columns[j].getAttribute("V") + ":" + controlType); /* modify oksama 콤보 기능추가로 삭제 - 2007.07.20 if (controlType == "Combo") { rElements = document.getElementById(controlId).getElementsByTagName("R"); for (var x = 0; x < rElements.length; x++) { var temp = rElements[x].text; if (values[j] == temp.substring(0, values[j].length)) { control.index = x; break; } } } if (controlType != "Combo" && values[j] != null && values[j] != "null") { control.Value = values[j]; } */ if (values[j] != null && values[j] != "null") { control.Value = values[j]; } if (isDisabled) { var isFound = false; for (var k = 0; k < disabledFields.length; k++) { if (columns[j].text == disabledFields[k]) { isFound = true; break; } } /* try { control.editable = (isFound ? 0 : Page.enable); } catch (exception) { debug(exception); } */ } } } //setModify(Page.enable); } /* controlObj를 배열로 넣을경우 여러개의 값을 린턴받을수 있음. * * EX) var objs = new Array(); * objs[0] = WiseView.getControlById("inTrunty"); * objs[1] = WiseView.getControlById("inMeasky"); * * openPossibleEntry("SHTUTMA", objs, null, null); */ function openPossibleEntry(peId, controlObj, paramNames, paramVals, pCnt) { if (!isOpenPE) { isOpenPE = true; var p_cnt = 0; if (pCnt != undefined) p_cnt = pCnt; p_cnt++; //var dw = 440; //var dh = 410; var dw = 650; var dh = 940; var sw = screen.availWidth; var sh = screen.availHeight; var as = p_cnt * 20; var dx = ((sw - dw) / 2) + as; var dy = ((sh - dh) / 2) + as; var t = "dialogHeight: " + dw + "px;" + "dialogWidth: " + dh + "px;" + "dialogLeft: " + dx + ";" + "dialogTop: " + dy + ";" + "resizable: yes;" + "help : no;" + "status: no;" + "scroll: no;"; var parent = getParent(self); if (arguments.length > 2 && paramNames && paramVals) { var params = ""; for(var i = 0; i < paramNames.length; i++) { params += "&" + paramNames[i] + "=" + paramVals[i]; } var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + params + "&CNT=" + p_cnt, parent, t); } else { var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + "&CNT=" + p_cnt, parent, t); } if(typeof (retObj) != "undefined") { var x = new Array(); // type 비교 if(controlObj.constructor != x.constructor){ if(controlObj.editable) { controlObj.SetFocus(); controlObj.value = retObj.indexOf("↑") == -1 ? retObj : retObj.split("↑")[0]; } // return column이 2개이상 올수 있기때문에 추가된 로직. } else { retObj = retObj.split("↑"); if(controlObj.length != retObj.length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n controlObj.length:" + controlObj.length + "\n retObj:" + retObj.length); } for(var i = 0; i < controlObj.length; i++){ controlObj[i].value = retObj[i]; if (i == 0) controlObj[i].SetFocus(); } } } // controlObj.SetFocus(); isOpenPE = false; } } function openPossibleEntryForFRange(peId, controlObj, paramNames, paramVals, pCnt) { _openPossibleEntryForRange(peId, controlObj, "F", paramNames, paramVals, pCnt); } function openPossibleEntryForTRange(peId, controlObj, paramNames, paramVals, pCnt) { _openPossibleEntryForRange(peId, controlObj, "T", paramNames, paramVals, pCnt); } function _openPossibleEntryForRange(peId, controlObj, controlLoc, paramNames, paramVals, pCnt) { if (!isOpenPE) { isOpenPE = true; var p_cnt = 0; if (pCnt != undefined) p_cnt = pCnt; p_cnt++; //var dw = 430; //var dh = 400; var dw = 650; var dh = 940; var sw = screen.availWidth; var sh = screen.availHeight; var as = p_cnt * 20; var dx = ((sw - dw) / 2) + as; var dy = ((sh - dh) / 2) + as; var t = "dialogHeight: " + dw + "px;" + "dialogWidth: " + dh + "px;" + "dialogLeft: " + dx + ";" + "dialogTop: " + dy + ";" + "resizable: yes;" + "help : no;" + "status: no;" + "scroll: no;"; var parent = getParent(self); if (arguments.length > 2 && paramNames && paramVals) { var params = ""; for(var i = 0; i < paramNames.length; i++) { params += "&" + paramNames[i] + "=" + paramVals[i]; } var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + params + "&CNT=" + p_cnt + "&CTRL_TYPE=RANGE", parent, t); } else { var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + "&CNT=" + p_cnt + "&CTRL_TYPE=RANGE", parent, t); } if(typeof (retObj) != "undefined") { var x = new Array(); // type 비교 if(controlObj.constructor != x.constructor){ if(controlObj.editable) { var rowValues = retObj.split("↓"); if (rowValues.length <= 1) { if(retObj.indexOf("↑") != -1) retObj = retObj.split("↑")[0]; if ("F" == controlLoc) controlObj.MinValue = retObj; else controlObj.MaxValue = retObj; } else { for (var i = 0; i < rowValues.length; i++) { var rValue = rowValues[i]; var aValue = rValue.split("↑"); //if(aValue.indexOf("↑") != -1) aValue = aValue.split("↑")[0]; if ("F" == controlLoc) controlObj.Append("signIn|EQ|" + aValue[0] + "|"); else controlObj.Append("signIn|EQ||" + aValue[0]); } } } controlObj.SetFocus(); // return column이 2개이상 올수 있기때문에 추가된 로직. } else if(controlObj[0].editable) { var rowValues = retObj.split("↓"); if (rowValues.length <= 1) { retObj = retObj.split("↑"); if(controlObj.length != retObj.length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n controlObj.length:" + controlObj.length + "\n retObj:" + retObj.length); } for(var i = 0; i < controlObj.length; i++){ if ("F" == controlLoc) controlObj[i].MinValue = retObj[i]; else controlObj[i].MaxValue = retObj[i]; //if (i == 0) controlObj[i].SetFocus(); } } else { for (var i = 0; i < rowValues.length; i++) { var rValue = rowValues[i]; var aValue = rValue.split("↑"); if(controlObj.length != aValue.length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n controlObj.length:" + controlObj.length + "\n aValue:" + aValue.length); } for(var j = 0; j < controlObj.length; j++){ if ("F" == controlLoc) controlObj[j].Append("signIn|EQ|" + aValue[j] + "|"); else controlObj[j].controlObj[j].Append("signIn|EQ||" + aValue[j]); //if (i == 0) controlObj[i].SetFocus(); } } } } } isOpenPE = false; } } /* colId을 배열로 넣을경우 여러개의 값을 린턴받을수 있음. * * EX) var colArray = new Array(); * colArray[0] = "inTrunty"; * colArray[1] = "inMeasky"; * openPossibleEntryForGridDuplexData("SHTUTMA", gridObj, colArray, RowID, null, null); */ function openPossibleEntryForGridDuplexData(peId, gridObj, colId, rowInx, paramNames, paramVals, pCnt) { var isRetObj = false; var retObj; if (!isOpenPE) { isOpenPE = true; alert(2); var p_cnt = 0; if (pCnt != undefined) p_cnt = pCnt; p_cnt++; alert(7); var dw = 650; var dh = 940; var sw = screen.avilWidth; var sh = screen.avilHeight; var as = p_cnt * 10; var dx = ((sw - dw) / 2) + as; var dy = ((sh - dh) / 2) + as; alert(3); var t = "dialogHeight: " + dw + "px;" + "dialogWidth: " + dh + "px;" + "dialogLeft: " + dx + ";" + "dialogTop: " + dy + ";" + "resizable: yes;" + "help : no;" + "status: no;" + "scroll: no;"; var parent = getParent(self); //var paramMap = new HashMap(); // paramMap.put("parent", parent); //paramMap.put("duplexGrid", 1); // paramMap.put("_CNT", p_cnt); alert(4); if (arguments.length > 2 && paramNames && paramVals) { alert(5); var params = ""; for(var i = 0; i < paramNames.length; i++) { params += "&" + paramNames[i] + "=" + paramVals[i]; } var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + params + "&CNT=" + p_cnt + "&CTRL_TYPE=GRID", parent, t); } else { alert(6); var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + "&CNT=" + p_cnt + "&CTRL_TYPE=GRID", parent, t); } gridObj.Spread.row = rowInx; gridObj.Spread.col = gridObj.ConvertToColPos(colId); alert("Util.isNotEmpty(retObj) : "+Util.isNotEmpty(retObj)); alert("gridObj.Spread.Lock : "+gridObj.Spread.Lock); alert("gridObj.Editable : "+gridObj.Editable); //if(typeof (retObj) != "undefined" && !gridObj.Spread.Lock && gridObj.Editable) { //alert("gridObj.Spread.Lock : " +gridObj.Spread.Lock +", gridObj.Editable : " + gridObj.Editable); if(Util.isNotEmpty(retObj)&& !gridObj.Spread.Lock && gridObj.Editable) { alert(8); isRetObj = true; if(typeof (colId) == "string"){ retObj = retObj.indexOf("^") == -1 ? retObj : retObj.split("^")[0] gridObj.SetFocusCell(rowInx, gridObj.ConvertToColPos(colId)); gridObj.SetCellValueByID(gridObj.getRowID(rowInx), colId, retObj); alert(9); // return column이 2개이상 올수 있기때문에 추가된 로직. } else if (typeof (colId) == "object") { alert(10); for(var j = 0; j < retObj.length; j++) { retObj[j] = retObj[j].split("^"); if(colId.length != retObj[j].length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n colId:" + colId + "\n retObj:" + retObj[j]); } for(var i = 0; i < colId.length; i++){ try{ gridObj.SetCellValueByID(gridObj.getRowID(rowInx), colId[i], retObj[j][i]); gridObj.SetFocusCell(rowInx, gridObj.ConvertToColPos(colId[i])); } catch (e) { alert("[error]" + e.message + "\n colId:" + colId + "\n retObj:" + retObj[j]); } } if(j < retObj.length - 1) { gridObj.NewRow(); rowInx = gridObj.GetRelativeRow(4); } } } } alert(11); //gridObj.setFocus(); isOpenPE = false; } alert(12); if(isRetObj) return retObj; } /* colId을 배열로 넣을경우 여러개의 값을 린턴받을수 있음. * * EX) var colArray = new Array(); * colArray[0] = "inTrunty"; * colArray[1] = "inMeasky"; * openPossibleEntryForGrid("SHTUTMA", gridObj, colArray, RowID, null, null); */ function openPossibleEntryForGrid(peId, gridObj, colId, rowInx, paramNames, paramVals, pCnt) { if (!isOpenPE) { isOpenPE = true; var p_cnt = 0; if (pCnt != undefined) p_cnt = pCnt; p_cnt++; //var dw = 430; //var dh = 400; var dw = 650; var dh = 940; var sw = screen.avilWidth; var sh = screen.avilHeight; var as = p_cnt * 10; var dx = ((sw - dw) / 2) + as; var dy = ((sh - dh) / 2) + as; var t = "dialogHeight: " + dw + "px;" + "dialogWidth: " + dh + "px;" + "dialogLeft: " + dx + ";" + "dialogTop: " + dy + ";" + "resizable: yes;" + "help : no;" + "status: no;" + "scroll: no;"; var parent = getParent(self); if (arguments.length > 2 && paramNames && paramVals) { var params = ""; for(var i = 0; i < paramNames.length; i++) { params += "&" + paramNames[i] + "=" + paramVals[i]; } var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + params + "&CNT=" + p_cnt + "&CTRL_TYPE=GRID", parent, t); } else { var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PossibleEntry.jsp?P_SHLPKY=" + peId + "&CNT=" + p_cnt + "&CTRL_TYPE=GRID", parent, t); } gridObj.Spread.row = rowInx; gridObj.Spread.col = gridObj.ConvertToColPos(colId); if(typeof (retObj) != "undefined" && !gridObj.Spread.Lock && gridObj.Editable) { if(typeof (colId) == "string"){ var rowValues = retObj.split("↓"); if (rowValues.length <= 1) { retObj = retObj.indexOf("↑") == -1 ? retObj : retObj.split("↑")[0] //gridObj.SetCellValueByID(rowInx, colId, retObj); gridObj.SetCellValue(rowInx, gridObj.Spread.col, retObj); gridObj.Spread.SetActiveCell(gridObj.ConvertToColPos(colId), rowInx); } else { for (var i = 0; i < rowValues.length; i++) { var rValue = rowValues[i]; var aValue = rValue.split("↑"); gridObj.NewRow(); gridObj.SetCellValue(gridObj.RowCount, gridObj.ConvertToColPos(colId), aValue[0]); } } // return column이 2개이상 올수 있기때문에 추가된 로직. } else if (typeof (colId) == "object") { var rowValues = retObj.split("↓"); if (rowValues.length <= 1) { retObj = retObj.split("↑"); if(colId.length != retObj.length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n colId:" + colId + "\n retObj:" + retObj); } for(var i = 0; i < colId.length; i++){ try{ //gridObj.SetCellValueByID(rowInx, colId[i], retObj[i]); gridObj.SetCellValue(rowInx, gridObj.ConvertToColPos(colId[i]), retObj[i]); gridObj.Spread.SetActiveCell(gridObj.ConvertToColPos(colId[i]), rowInx); } catch (e) { alert("[error]" + e.message + "\n colId:" + colId + "\n retObj:" + retObj); } } } else { for (var i = 0; i < rowValues.length; i++) { var rValue = rowValues[i]; var aValue = rValue.split("↑"); if(colId.length != aValue.length){ alert("[error]컬럼과 리턴값의 수가 다릅니다.\n colId:" + colId + "\n aValue:" + aValue); } gridObj.NewRow(); for(var j = 0; j < colId.length; j++){ try{ gridObj.SetCellValue(gridObj.RowCount, gridObj.ConvertToColPos(colId[j]), aValue[j]); //gridObj.Spread.SetActiveCell(gridObj.ConvertToColPos(colId[i]), gridObj.RowCount); } catch (e) { alert("[error]" + e.message + "\n colId:" + colId + "\n retObj:" + aValue); } } } } } } gridObj.setFocus(); isOpenPE = false; } } //제약조건 팝업창 function openRestrictions() { var dw = 500; var dh = 800; var sw = screen.availWidth; var sh = screen.availHeight; var as = 0 * 20; var dx = ((sw - dw) / 2) + as; var dy = ((sh - dh) / 2) + as; var t = "dialogHeight: " + dw + "px;" + "dialogWidth: " + dh + "px;" + "dialogLeft: " + dx + ";" + "dialogTop: " + dy + ";" + "resizable: yes;" + "help : no;" + "status: no;" + "scroll: no;"; var parent = getParent(self); var retObj = window.showModalDialog(CONTEXT_ROOT + "common/PopupRestrictions.jsp", parent, t); return typeof (retObj) != "undefined" ? retObj : null; } //* EDITABLE xml 을 읽어서 폼객체의 활성여부를 체크하는 함수(Modify On/Off) function setEnabled() { Page.enable = (0 == Page.enable ? 1 : 0); var disabledList = document.getElementById("EDITABLE").getElementsByTagName("DATASET"); for (var i = 0; i < disabledList.length; i++) { var disabledNode = disabledList.item(i); var disabledFields = disabledNode.selectSingleNode("NOT").text.split(","); var dName = disabledNode.getAttribute("name"); var colList = document.getElementById(dName).getElementsByTagName("C"); debug("disabledFields : " + disabledFields); for (var j = 0; j < colList.length; j++) { debug("colList[" + new String(j) + "] : " + colList[j].text); var isFound = false; for (var k = 0; k < disabledFields.length; k++) { if (colList[j].text == disabledFields[k]) { isFound = true; break; } } WiseView.getControlById(colList[j].getAttribute("V")).enabled = (isFound ? 0 : Page.enable); } } } function doModifyOnOff() { doSelect("_MODIFY_ON_OFF", "resultModifyOnOff", null, false); } function resultModifyOnOff() { var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alert(rsNode.text.split("↑")[1]); return false; } else { setModify(); } } var modiify_control_list; var modiify_button_list; var not_modify_list = new Array("SCPONO", "SCODRNO", "SCCBSPLY","SCCBRCV", "SCCBDATE", "SCDATE1","SCDATE2", "SCMTCODE", "SCGRP", "SCMSIZE", "SCMTYPE", "SCBR", "SCPONO1", "SCPONO2", "SCCHALL", "SCCHCA", "SCCHMX", "SCCHPR", "SCCHUS", "SCCHJP", "SCCHETC", "SCMCODE", "SCGROUP", "SCSIZE", "SCTYPE", "SCBRAND", "SCBUYCODE", "SCPR", "SCLOADIDX", "SCLBPRCR", "SCCBDATE1", "SCCBDATE2", "SCDATE11", "SCDATE12", "SCDATE21", "SCDATE22", "SCCUSTOM", "SCSALEGRP", "SCCHCK", "SCCHUNCK"); //* EDITABLE xml 을 읽어서 폼객체의 활성여부를 체크하는 함수(Modify On/Off) function setModify(enable_type) { if(enable_type != null) Page.enable = enable_type; else Page.enable = (0 == Page.enable ? 1 : 0); if(modiify_control_list == null) setModifyControl(); var modi, modo; for(var i=0;i 1) modiify_control_list = tmp_control.substring(1,tmp_control.length-1).split("^"); else modiify_control_list = new Array(); if(tmp_button.length > 1) modiify_button_list = tmp_button.substring(1,tmp_button.length-1).split("^"); else modiify_button_list = new Array(); //modiify_control_list.pop(); }else if(modify_type == "NOT"){ //alert(modify_type); var tag_name_list = new Array("E","R","CB","C","GRID","TEXT"); var uiXml = document.getElementById("viewXml"); var tmp_count = 0; for(var j=0;j" + ""; var uiHtml = "
" + "" + "
"; var bodys = document.getElementsByTagName("body"); bodys[0].insertAdjacentHTML("afterBegin", srcHtml); bodys[0].insertAdjacentHTML("afterBegin", uiHtml); if(document.getElementById("viewXml") != null && document.getElementById("viewXml").documentElement != null) { var rootNode = document.getElementById("viewXml").documentElement; var addDoc = new ActiveXObject("Msxml2.DOMDocument.3.0"); addDoc.async = false; var gkeyStr = "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "\n"; addDoc.loadXML(gkeyStr); rootNode.appendChild(addDoc.selectSingleNode("GKEY")); var deleteMsg = ""; try{ deleteMsg = getMessage("COMMON", "M0032"); } catch(e){ deleteMsg = e.message; } var deleteMsgStr = "\n" + " \n" + " \n" + ""; addDoc.loadXML(deleteMsgStr); rootNode.appendChild(addDoc.selectSingleNode("PROPERTIES")); WiseView.attachEvent("ClickMenuSaveAsDefaultOnGrid", ClickMenuSaveAsDefaultOnGridHandler); WiseView.attachEvent("ClickMenuLoadLayoutOnGrid", ClickMenuLoadLayoutOnGridHandler); WiseView.attachEvent("ClickMenuSaveLayoutOnGrid", ClickMenuSaveLayoutOnGridHandler); WiseView.attachEvent("ClickMenuDeleteLayoutOnGrid", ClickMenuDeleteLayoutOnGridHandler); WiseView.attachEvent("DeleteGridLayoutData", DeleteGridLayoutDataOnGridHandler); //onload event. WiseView.attachEvent("Onload", loadUserLayout); } main(); } //<--------- User layout start -------------------->// function loadUserLayout() { ClickMenuLoadLayoutOnGridHandler(PROG_ID, null); } /** * grid defalut layout save event hanlder */ function ClickMenuSaveAsDefaultOnGridHandler(progId, compId, layoutData) { ClickMenuSaveLayoutOnGridHandler(progId, compId, null, layoutData); } /** * grid load layout event handler */ function ClickMenuLoadLayoutOnGridHandler(progId, compId) { if (progId != null && progId != "COMMON") { var xml = "\n" + "COMMON.LOAD_USER_LAYOUT\n" + "

PROG_ID↑" + PROG_ID + "

\n"; if (compId != null) xml += "

COMP_ID↑" + compId + "

\n"; xml += "
"; blockOn(1); getContentLoader(CONTEXT_ROOT + "service", eval("loadUserLayoutResult"), xml, false); } } /** * grid layout save event hanlder */ function ClickMenuSaveLayoutOnGridHandler(progId, compId, layoutId, layoutData) { if (progId != null && progId != "COMMON" && compId != null && layoutData != null) { var xml = "\n" + "COMMON.SAVE_USER_LAYOUT\n" + "

PROG_ID↑" + progId + "

\n" + "

COMP_ID↑" + compId + "

\n"; if (layoutId != null) xml += "

LAYOUT_ID↑" + layoutId + "

\n"; xml += "

LAYOUT↑" + layoutData + "

\n" + "
"; blockOn(1); getContentLoader(CONTEXT_ROOT + "service", eval("saveUserLayoutResult"), xml, false); } } /** * grid layout delete event hanlder */ function ClickMenuDeleteLayoutOnGridHandler(progId, compId) { if (progId != null && progId != "COMMON") { var xml = "\n" + "COMMON.LOAD_USER_LAYOUT\n" + "

PROG_ID↑" + progId + "

\n"; if (compId != null) xml += "

COMP_ID↑" + compId + "

\n"; xml += "
"; blockOn(1); getContentLoader(CONTEXT_ROOT + "service", eval("deleteUserLayoutResult"), xml, false); } } function DeleteGridLayoutDataOnGridHandler(progId, compId, layoutId) { if (progId != null && progId != "COMMON") { var xml = "\n" + "COMMON.DELETE_USER_LAYOUT\n" + "

PROG_ID↑" + progId + "

\n" + "

COMP_ID↑" + compId + "

\n"; if (layoutId != null) xml += "

LAYOUT_ID↑" + layoutId + "

\n"; xml += "
"; blockOn(1); getContentLoader(CONTEXT_ROOT + "service", eval("DeleteGridLayoutDataResult"), xml, false); } } function loadUserLayoutResult() { var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alertMsg(rsNode.text.split("↑")[1]); return false; } var progid, compid, layoutdata; var msgNodes = resultXml.getElementsByTagName("MSG"); for(var i = 0; i < msgNodes.length; i++) { var msg = msgNodes[i].text; if (msg && msg.indexOf(ROW_DELIMITER)) { var msgKey = msg.substring(0, msg.indexOf(ROW_DELIMITER)); var msgValue = msg.substring(msg.indexOf(ROW_DELIMITER) + 1); if (msgKey == "PROG_ID") { progid = msgValue; } else if (msgKey == "COMP_ID"){ compid = msgValue; } else if (msgKey == "LAYOUT_DATA"){ layoutdata = msgValue; } } } if(compid != null && compid.trim() != "null"){ WiseView.SetLoadLayoutDataOnGrid(progid, compid, layoutdata) } else { WiseView.SetDefaultLayoutDataOnGrid(progid, layoutdata); } } function saveUserLayoutResult() { var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alertMsg(rsNode.text.split("↑")[1]); return false; } } function deleteUserLayoutResult() { var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alertMsg(rsNode.text.split("↑")[1]); return false; } var progid, compid, layoutdata; var msgNodes = resultXml.getElementsByTagName("MSG"); for(var i = 0; i < msgNodes.length; i++) { var msg = msgNodes[i].text; if (msg && msg.indexOf(ROW_DELIMITER)) { var msgKey = msg.substring(0, msg.indexOf(ROW_DELIMITER)); var msgValue = msg.substring(msg.indexOf(ROW_DELIMITER) + 1); if (msgKey == "PROG_ID") { progid = msgValue; } else if (msgKey == "COMP_ID"){ compid = msgValue; } else if (msgKey == "LAYOUT_DATA"){ layoutdata = msgValue; } } } if(compid != null && compid.trim() != "null"){ WiseView.SetDeleteLayoutDataOnGrid(progid, compid, layoutdata); } else { WiseView.SetDefaultLayoutDataOnGrid(progid, layoutdata); } } function DeleteGridLayoutDataResult() { var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alertMsg(rsNode.text.split("↑")[1]); return false; } } //<--------- User layout end -------------------->// String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/gi, ""); } String.prototype.replaceAll = function(srcStr, repStr) { var temp = ""; if (this.trim() != "" && srcStr != repStr) { temp = this.trim(); while (temp.indexOf(srcStr) > -1) { temp = temp.replace(srcStr, repStr); } } return temp; } function __WS__(__NSID__) { document.write( __NSID__.innerHTML ); __NSID__.id = ""; } function getCondition (rangeXmlId) { var ie = ""; var operator = ""; var min = ""; var max = ""; var condition = ""; var rangeXml = document.getElementById(rangeXmlId); var rangeNode = rangeXml.documentElement; var rangeList = rangeNode.getElementsByTagName("C"); for(j = 0; j < rangeList.length; j++) { rangeObj = WiseView.GetControlById(rangeList.item(j).getAttribute("V")).MultiSelValues; if(rangeObj.count > 0) { ie = rangeObj.ItemAt(0).IE; if(ie == "signIn") { } else if(ie == "signEx") { } if(condition == "") condition += " ("; else condition += "\n AND ("; for(i = 0; i < rangeObj.count; i++) { operator = rangeObj.ItemAt(i).Operator; min = rangeObj.ItemAt(i).Min; max = rangeObj.ItemAt(i).Max; switch(operator) { case "EQ" : condition += rangeList.item(j).getAttribute("M") + " = '" + min + "'"; break; case "GE" : condition += rangeList.item(j).getAttribute("M") + " >= '" + min + "'"; break; case "LE" : condition += rangeList.item(j).getAttribute("M") + " <= '" + min + "'"; break; case "GT" : condition += rangeList.item(j).getAttribute("M") + " > '" + min + "'"; break; case "LT" : condition += rangeList.item(j).getAttribute("M") + " < '" + min + "'"; break; case "NE" : condition += rangeList.item(j).getAttribute("M") + " != '" + min + "'"; break; case "LK" : condition += rangeList.item(j).getAttribute("M") + " LIKE '" + min + "'"; break; case "NL" : condition += rangeList.item(j).getAttribute("M") + " NOT LIKE '" + min + "'"; break; case "BW" : condition += rangeList.item(j).getAttribute("M") + " BETWEEN '" + min + "' AND '" + max + "'"; break; case "NB" : condition += rangeList.item(j).getAttribute("M") + " NOT BETWEEN '" + min + "' AND '" + max + "'"; break; } if(i == rangeObj.count -1) condition += ")"; else condition += "\n OR "; } } } return condition; } function hasButtonAuthority (progId, actionType) { var top_frame; if(window.dialogArguments != null){ top_frame = dialogArguments.top; }else if(window.opener){ top_frame = opener.top; }else{ top_frame = top; } if (!top_frame.PgmAuthority) return false; var pgmAuth = top_frame.PgmAuthority; if (!pgmAuth[progId]) return false; if (!pgmAuth[progId][actionType]) return false; var actAuth = pgmAuth[progId][actionType]; return actAuth == "V"; } function getMessage (msgGroup, msgKey, args) { var top_frame; top_frame = getTopFrame(this); var msgObj = top_frame.Message; var msg = msgObj[msgGroup][msgKey]; if (args && msg) { var temp = msg; if (msg.indexOf("{0}") < 0) return msg; for (var i = 0; i < args.length; i++) { re = eval("/\\{" + i + "\\}/g;"); temp = temp.replace(re, args[i]); } return temp; } return msg; } function lpad(stringToPad, padder, size) { if (padder.length == 0) { return stringToPad; } while(size > stringToPad.length) { stringToPad = padder + stringToPad; } return stringToPad; } function isNotNullUnique(gridObj, colId) { for(var i = 1; i <= gridObj.RowCount; i++) { var cellValue = gridObj.getCellValueByID(i, colId); if(cellValue.trim().length == 0) continue; for(var j = gridObj.RowCount ; i != j; j--) { if(gridObj.GetRowStatus(j) != "3" && !Util.isEmpty(gridObj.getCellValueByID(j, colId)) && cellValue == gridObj.getCellValueByID(j, colId)) { var colIndex = gridObj.ConvertToColPos(colId); gridObj.Spread.SetActiveCell(colIndex, j); gridObj.SetCellValueByID(j, colId, ""); gridObj.showAlertAtCell(j, colIndex, getMessage("COMMON", "M0025", [colId])); return false; } } } return true; } var Util = { isEmpty : function(obj) { return ("undefined" != typeof(obj) && "null" != typeof(obj) && ("object" == typeof(obj) || 0 < obj.length)) ? false : true; }, alert : function(argArray, title) { var sMessage = "[Object to String]\n" + " - arguments.length : " + argArray.length + "\n\n" + " - title : " + title + "\n\n"; for (var i = 0; i < argArray.length; i++) { var argument = argArray[i]; sMessage += "[" + i + "] name : " + argument.name + " , value : " + argument.value + "\n\n"; } alert(sMessage); }, toArray : function(str, delimiter) { str = str.replaceAll(" ", ""); return str.split(delimiter); } } /** * arguments 에 대하여 alert 창을 띄우기 위한 함수. * Usage - $A([title : 함수내 유일한 문자열], argument1, argument2, ...) * ex : $A(1, grid.rowCount, grid.ActiveRow, ...); */ var $A = function() { var callFunc = $A.caller; var sCaller = callFunc.toString(); var aArgs = new Array(); var fnIndex = 0; var stDelim = "$A"; while ((fnIndex = sCaller.indexOf(stDelim)) > -1) { sCaller = sCaller.substring(fnIndex + stDelim.length); var stIndex = sCaller.indexOf("("); sCaller = sCaller.substring(stIndex + 1); var edIndex = sCaller.indexOf(";"); sCaller = sCaller.substring(0, edIndex); edIndex = sCaller.lastIndexOf(")"); var tmpArgs = Util.toArray(sCaller.substring(0, edIndex), ","); if (arguments[0] == tmpArgs[0].replaceAll("\"", "")) { for (var i = 1; i < tmpArgs.length; i++) { var aIndex = aArgs.length; aArgs[aIndex] = {name : tmpArgs[i], value : arguments[i]}; } break; } } if (0 < aArgs.length) Util.alert(aArgs, arguments[0]); } //****************************************************************************** //* Logger //****************************************************************************** var ROW_DELIMITER = "↑"; var GRID_LOCK_COLOR = 0xCCCCCC; var logger = false; function setLogger() { if (top.Logger != null && top.Logger.closed == false) logger = top.Logger; else logger = false; } function debug(msg) { setLogger(); if (logger) logger.debug(msg); } function warn(msg) { setLogger(); if (logger) logger.warn(msg); } function info(msg) { setLogger(); if (logger) logger.info(msg); } function error(msg) { setLogger(); if (logger) logger.error(msg); } //****************************************************************************** //* Validator //****************************************************************************** function hasEmptyCellOnGrid(gridId, rowList, colNames) { var grid = WiseView.getControlById(gridId); var hasEmptyCell = false; for (var i = 0; i < rowList.length; i++) { if ("3" != rowList[i].getAttribute("S")) { var rowNum = new Number(rowList[i].getAttribute("N")); for (var j = 0; j < colNames.length; j++) { var colValue = grid.getCellValueByID(rowNum, colNames[j]).trim(); if ("" == colValue || "0" == colValue) { var colIndex = grid.ConvertToColPos(colNames[j]); grid.Spread.SetActiveCell(colIndex, rowNum); grid.showAlertAtCell(rowNum, colIndex, getMessage("COMMON", "M0009", new Array(colNames[j]))); hasEmptyCell = true; break; } } } if (hasEmptyCell) break; } return hasEmptyCell; } var block_count = 1; function blockOn(block_count_tmp){ top.block_status = -1; if(block_count_tmp == null) block_count = 1; else block_count = block_count_tmp; var wise_view = document.getElementById("WiseView"); if(wise_view != null) wise_view.ShowBlockFrame(true); /* var block_div = document.getElementById("block_div"); if(block_div == null){ loadBlockDiv(); block_div = document.getElementById("block_div"); } //alert(block_div.id); block_div.style.display = "inline"; */ } function blockOff(block_count_tmp){ if(block_count_tmp == null){ block_count_tmp = 1; }else if(block_count_tmp == -1){ block_count_tmp = block_count; } block_count -= block_count_tmp; if(block_count > 0) return; var wise_view = document.getElementById("WiseView"); if(wise_view != null) wise_view.ShowBlockFrame(false); /* var block_div = document.getElementById("block_div"); if(block_div == null) return; block_div.style.display = "none"; */ top.block_status = 1; } function loadBlockDiv(){ var tmp_html = ""; //tmp_html += "
\n" tmp_html += "
\n" tmp_html += "COMMON.COMBO.R1\n" + "

CMCDV↑" + cmcdv + "

\n" + "

COMBOCTRLID↑" + sComboName + "

\n" + "

COMBONAME↑" + cmcdv + "

\n" + "\n" + "Value\n" + "Text\n" + "\n" + ""; var dsXML = new ActiveXObject("Msxml.DOMDocument"); dsXML.loadXML(sComboDs); getContentLoader(CONTEXT_ROOT + "service", eval("returnSetComboBox"), sComboDs, synchronize); } function returnSetComboBox() { var resultXml = Xml.getReqXmlObj(this); var comboCtrlId = Xml.getMsg(resultXml, "COMBOCTRLID"); var comboName = Xml.getMsg(resultXml, "COMBONAME"); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alert(rsNode.text.split("↑")[1]); return false; } //var srcDs = document.getElementById(comboCtrlId); //var ds = resultXml.selectSingleNode("/DS/D[@N='" + comboName + "']"); //srcDs.loadXML(ds.xml); //alert(srcDs.xml); var comboXML = new ActiveXObject("Msxml.DOMDocument"); comboXML.loadXML(resultXml.xml); WiseView.getControlById(comboCtrlId).SourceXMLDomDocument = comboXML; } function setComboBoxForGrid(gridId, colId, cmcdv, synchronize) { var sComboDs = "\n" + "COMMON.COMBO.R1\n" + "

CMCDV↑" + cmcdv + "

\n" + "

GRIDID↑" + gridId + "

\n" + "

COLUMNID↑" + colId + "

\n" + "\n" + "Value\n" + "Text\n" + "\n" + "
"; var dsXML = new ActiveXObject("Msxml.DOMDocument"); dsXML.loadXML(sComboDs); getContentLoader(CONTEXT_ROOT + "service", eval("returnSetComboBoxForGrid"), sComboDs, synchronize); } function setMultiComboBoxForGrid(gridId, colId, cmcdv, synchronize) { var cmcdvs = cmcdv.split(","); var gridIds = gridId.split(","); var colIds = colId.split(","); var sComboDs = "\n" + "COMMON.COMBO.R2\n" + "

CMCDV↑" + cmcdv + "

\n" + "

GRIDID↑" + gridId + "

\n" + "

COLUMNID↑" + colId + "

\n"; for(var i=0, max=cmcdvs.length;i\n" + "Value\n" + "Text\n" + "\n" } sComboDs += "
"; var dsXML = new ActiveXObject("Msxml.DOMDocument"); dsXML.loadXML(sComboDs); getContentLoader(CONTEXT_ROOT + "service", eval("returnSetMultiComboBoxForGrid"), sComboDs, synchronize); } function returnSetMultiComboBoxForGrid() { var resultXml = Xml.getReqXmlObj(this); var gridIds = Xml.getMsg(resultXml, "GRIDID").split(","); var colIds = Xml.getMsg(resultXml, "COLUMNID").split(","); var comboNames = Xml.getMsg(resultXml, "CMCDV").split(","); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alert(rsNode.text.split("↑")[1]); return false; } for(var i=0,max=gridIds.length;i
'); } function alertMsg(m) { var topFrame; topFrame = getTopFrame(this); topFrame.setMsgHistory(m); alert(m); } function getTopFrame(windowObject){ if(windowObject.dialogArguments != null) { return windowObject.dialogArguments.top; } else if(windowObject.opener != null){ return getTopFrame(windowObject.opener); } else { return windowObject.top; } } function getParent(windowObject){ if(windowObject.dialogArguments != null) { return windowObject.dialogArguments; } else if(windowObject.opener != null){ return getParent(windowObject.opener); } else { return windowObject; } } function setAllParam(xmlId){ var notFound = true; var xml = new ActiveXObject("Msxml.DOMDocument"); xml = document.getElementById(xmlId); var root = xml.documentElement; var paramNodes = root.getElementsByTagName("P"); for(var i = 0; i < paramNodes.length; i++) { var p = paramNodes[i].text; if (p && p.indexOf(ROW_DELIMITER)) { var entry = p.split(ROW_DELIMITER); var Name = entry[0]; if(Name!="COMMAND" && Name !="ACT_STATUS") { var value = WiseView.GetControlById(Name).value; paramNodes[i].text = (Name + ROW_DELIMITER + value); notFound = false; } } } } function setXmlParam(xmlId, id, value){ var xml = new ActiveXObject("Msxml.DOMDocument"); xml = document.getElementById(xmlId); var root = xml.documentElement; var paramNodes = root.getElementsByTagName("P"); for(var i = 0; i < paramNodes.length; i++) { var p = paramNodes[i].text; if (p && p.indexOf(ROW_DELIMITER)) { var entry = p.split(ROW_DELIMITER); var Name = entry[0]; if(Name==id.toUpperCase()) { paramNodes[i].text = (Name + ROW_DELIMITER + value); notFound = false; } } } } function setParam(gridId, xmlId, id){ var notFound = true; var gridObj = WiseView.GetControlById(gridId); var value = gridObj.GetCellValueByID(gridObj.getRowId(gridObj.Spread.ActiveRow), id); var xml = new ActiveXObject("Msxml.DOMDocument"); xml = document.getElementById(xmlId); var root = xml.documentElement; var paramNodes = root.getElementsByTagName("P"); for(var i = 0; i < paramNodes.length; i++) { var p = paramNodes[i].text; if (p && p.indexOf(ROW_DELIMITER)) { var entry = p.split(ROW_DELIMITER); var Name = entry[0]; if(Name==id.toUpperCase()) { paramNodes[i].text = (Name + ROW_DELIMITER + value); notFound = false; } } } } function getParam(xmlId, id) { var xml = new ActiveXObject("Msxml.DOMDocument"); xml.load(document.getElementById(xmlId)); var root = xml.documentElement; var paramNodes = root.getElementsByTagName("P"); var returnValue = ""; for(var i = 0; i < paramNodes.length; i++) { var p = paramNodes[i].text; if (p && p.indexOf(ROW_DELIMITER)) { var entry = p.split(ROW_DELIMITER); if (entry[0] == id) { returnValue = entry[1]; break; } } } return returnValue; } function getXmlData(resultXml, id) { var xml = new ActiveXObject("Msxml.DOMDocument"); if(resultXml.xml==undefined){ xml = document.getElementById(resultXml); } else{ xml.load(resultXml.xml); } var root = xml.documentElement; var paramNodes = root.getElementsByTagName("P"); var returnValue = ""; for(var i = 0; i < paramNodes.length; i++) { var p = paramNodes[i].text; if (p && p.indexOf(ROW_DELIMITER)) { var entry = p.split(ROW_DELIMITER); if (entry[0] == id.toUpperCase()) { returnValue = entry[1]; break; } } } return returnValue; } function setData(id, value){ WiseView.GetControlById(id).value = value; } function getData(id){ return WiseView.GetControlById(id).value; } function getCodeName(str){ var customerName=""; if("0" == str){ customerName = "전체"; } else if("1100" == str){ customerName = "물류운영팀"; } else if("300038CD" == str){ customerName = "한국 기획"; } else if("300039CD" == str){ customerName = "대명 인쇄"; } else if("300040CD" == str){ customerName = "BMS프린텍"; } else if("300041CD" == str){ customerName = "동부 ENG"; } else if("1120" == str){ customerName = "대전"; } else if("1130" == str){ customerName = "금산"; } else if("1140" == str){ customerName = "부산"; } else{ cunstomerName = "미지정"; } return customerName; } function setMsg(resultXml, msg){ var rsNode = resultXml.selectSingleNode("/DS/RS"); var flag=true; if ("0" == rsNode.getAttribute("S")) { if(rsNode.text.split("↑")[1]==null){ alertMsg(rsNode.text.split("↑")[1]); } else if(msg!=null){ alertMsg(msg); } else{ alert("Fail"); } } return flag; } function setPage(rowCount, GridId, pageNum){ var maxCount = 0; var PAGEVAL1 = 0; if (pageNum==undefined) pageNum = 5000; var PAGEVAL2 = pageNum; WiseView.GetControlById("PAGEVAL1").value = PAGEVAL1; WiseView.GetControlById("PAGEVAL2").value = PAGEVAL2; if(rowCount != undefined && rowCount != null){ PAGEVAL1 = rowCount; if(GridId!=undefined && GridId != null){ maxCount = WiseView.GetControlById(GridId).TotalCount; if (maxCount<=PAGEVAL1){ alertMsg("더이상 목록이 없습니다."); isNext = false; return; } } WiseView.GetControlById("PAGEVAL1").value = PAGEVAL1; WiseView.GetControlById("PAGEVAL2").value = PAGEVAL2; doCommand("DISPLAY"); } } function getChangedRows(gridId){ if(WiseView.GetControlById(gridId).GetChangedRows()=="") return false; return true; } /* add PKH - 2013.10.27 - 리스트 선택 체크 박스 1개이상 체크 유무 처리 - ex : getIsChecked('GridId') */ function getIsChecked(gridId){ var flag = false; var gridObj = WiseView.GetControlById(gridId); for(var i=1, max=gridObj.rowcount;i<=max;i++){ var rowId = gridObj.getRowId(i); if(gridObj.getCellValueById(rowId,"check")=="1"){ flag= true; } } return flag; } /* add LAR - 2014.04.08 쿼리로 조회 후 데이터 유/무에 대한 Validation sqlId : JQMAP테이블의 SQLKEY search : 배열로 검색조건의 Key searchStr : 배열로 검색조건의 Value msgGrp : 보여줄 메세지 그룹, null 가능(null일경우 "잘못된 값입니다." 메세지가 기본값) msgKey : 보여줄 메세지 키, null 가능 synchronize : 동기화 여부, null 가능(true가 기본값) exist : true - 데이터 존재하면 Msg false - 데이터가 없으면 Msg (기본값은 false) */ function setGetInfoMsg(sqlId, search, searchStr, msgGrp, msgKey, synchronize, exist){ var infoDs = "\n"; infoDs += "COMMON.GETINFOMSG.FIND\n"; infoDs += "

SQL↑" + sqlId + "

\n"; infoDs += "

SEARCH↑" + search.join("↓") + "

\n"; infoDs += "

SEARCHSTR↑" + searchStr.join("↓") + "

\n"; infoDs += "

MSGGROUP↑" + msgGrp + "

\n"; infoDs += "

MSGKEY↑" + msgKey + "

\n"; infoDs += "

EXIST↑" + exist + "

\n"; infoDs += "
"; if(synchronize==null || synchronize=="undefined") synchronize=true; if(exist==null || exist=="undefined") exist=false; var sUrl = CONTEXT_ROOT + "service"; getContentLoader(sUrl, eval("returnGETINFOMSG"), infoDs, synchronize); } function returnGETINFOMSG(){ var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { viewError2(resultXml); //msgbox로 에러 뜸 } try{ bindGetInfoMsg(rsNode.getAttribute("S")); } catch(e) { } } /* * ex : if(colId == "skukey"){ sqlId = "GR00.GETDESC.RECDI_SKUKEY"; search = ["ownrky", "wareky", colId]; searchStr = ["<%=ownrky%>", "<%=warehouse%>", cellValue]; desc = ["desc01", "measky", "packid", "qtyrcv", "duomky"]; }else{ sqlId = ""; } if(sqlId != ""){ recdiActiveRow = row; getDesc(gridId, rowId, colId, sqlId, search, searchStr, desc, false); recdi.SetFocusCell(recdiActiveRow, recdi.ConvertToColPos("qtyrcv")); gridToEdit("RECDI", "RecdiGrid", recdiActiveRow); } */ function getDesc(gridId, rowId, colId, sqlId, search, searchStr, desc,rrgrade,wggrade,nograde,dbgrade,mindate, synchronize){ var infoDs = "\n"; infoDs += "COMMON.GETDESC.FIND\n"; infoDs += "

GRIDID↑" + gridId + "

\n"; infoDs += "

ROWID↑" + rowId + "

\n"; infoDs += "

COLID↑" + colId + "

\n"; infoDs += "

SQL↑" + sqlId + "

\n"; infoDs += "

SEARCH↑" + search.join("↓") + "

\n"; infoDs += "

SEARCHSTR↑" + searchStr.join("↓") + "

\n"; infoDs += "

DESC↑" + desc.join("↓") + "

\n"; infoDs += "

RRGRADE↑" + rrgrade.join("↓") + "

\n"; infoDs += "

WGGRADE↑" + wggrade.join("↓") + "

\n"; infoDs += "

NOGRADE↑" + nograde.join("↓") + "

\n"; infoDs += "

DBGRADE↑" + dbgrade.join("↓") + "

\n"; infoDs += "

MINDATE↑" + mindate.join("↓") + "

\n"; infoDs += "
"; var sUrl = CONTEXT_ROOT + "service"; if(synchronize==null || synchronize=="undefined") synchronize=true; getContentLoader(sUrl, eval("returnGETDESC"), infoDs, synchronize); } function returnGETDESC(){ var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alert("Solzard Controller GETDESC function error. Query return is not alone."); return false; } var gridNode = resultXml.selectSingleNode("/DS/GRIDINFO"); var gridId = gridNode.getAttribute("GRIDID"); var gridObj, rowId, colList, editObj; if(gridId != "MASKEDIT"){ gridObj = WiseView.GetControlById(gridId); rowId = gridNode.getAttribute("ROWID"); } colList = gridNode.getElementsByTagName("COLINFO"); var sql = gridNode.getElementsByTagName("SQL"); var getInfoXML = new ActiveXObject("Msxml.DOMDocument"); getInfoXML.loadXML(resultXml.xml); for(var i=0;i\n"; infoDs += "

ROWID↑" + rowId + "

\n"; infoDs += "

COLID↑" + colId + "

\n"; infoDs += "

SQL↑" + sqlId + "

\n"; infoDs += "

SEARCH↑" + search.join("↓") + "

\n"; infoDs += "

SEARCHSTR↑" + searchStr.join("↓") + "

\n"; infoDs += "

DESC↑" + desc.join("↓") + "

\n"; if(tableNms!=null){ infoDs += "

TABLENMS↑" + tableNms.join("↓") + "

\n"; } infoDs += ""; var sUrl = CONTEXT_ROOT + "service"; if(synchronize==null || synchronize=="undefined") synchronize=true; getContentLoader(sUrl, eval("returnGETDESC1"), infoDs, synchronize); } function getDesc2(gridId, rowId, colId, sqlId, search, searchStr, desc,synchronize, tableNms, callback){ var infoDs = "\n"; infoDs += "COMMON.GETDESC.FIND2\n"; infoDs += "

GRIDID↑" + gridId + "

\n"; infoDs += "

ROWID↑" + rowId + "

\n"; infoDs += "

COLID↑" + colId + "

\n"; infoDs += "

SQL↑" + sqlId + "

\n"; infoDs += "

SEARCH↑" + search.join("↓") + "

\n"; infoDs += "

SEARCHSTR↑" + searchStr.join("↓") + "

\n"; infoDs += "

DESC↑" + desc.join("↓") + "

\n"; if(tableNms!=null){ infoDs += "

TABLENMS↑" + tableNms.join("↓") + "

\n"; } infoDs += "
"; var sUrl = CONTEXT_ROOT + "service"; if(synchronize==null || synchronize=="undefined") synchronize=true; /*if(callback!="undefined"){ getContentLoader(sUrl, eval(callback), infoDs, synchronize); }else{*/ getContentLoader(sUrl, eval("returnGETDESC1"), infoDs, synchronize); //} } function getDesc3(gridId, rowId, colId, sqlId, search, searchStr, desc,synchronize, tableNms, callback){ var infoDs = "\n"; infoDs += "COMMON.GETDESC.FIND3\n"; infoDs += "

GRIDID↑" + gridId + "

\n"; infoDs += "

ROWID↑" + rowId + "

\n"; infoDs += "

COLID↑" + colId + "

\n"; infoDs += "

SQL↑" + sqlId + "

\n"; infoDs += "

SEARCH↑" + search.join("↓") + "

\n"; infoDs += "

SEARCHSTR↑" + searchStr.join("↓") + "

\n"; infoDs += "

DESC↑" + desc.join("↓") + "

\n"; if(tableNms!=null){ infoDs += "

TABLENMS↑" + tableNms.join("↓") + "

\n"; } infoDs += "
"; var sUrl = CONTEXT_ROOT + "service"; if(synchronize==null || synchronize=="undefined") synchronize=true; getContentLoader(sUrl, eval("returnGETDESC1"), infoDs, synchronize); } function returnGETDESC1(){ var resultXml = Xml.getReqXmlObj(this); var rsNode = resultXml.selectSingleNode("/DS/RS"); if ("0" == rsNode.getAttribute("S")) { alert("Solzard Controller GETDESC function error. Query return is not alone."); return false; } var gridNode = resultXml.selectSingleNode("/DS/GRIDINFO"); var gridId = gridNode.getAttribute("GRIDID"); var gridObj, rowId, colList, editObj; if(gridId != "MASKEDIT"){ gridObj = WiseView.GetControlById(gridId); rowId = gridNode.getAttribute("ROWID"); } colList = gridNode.getElementsByTagName("COLINFO"); var sql = gridNode.getElementsByTagName("SQL"); var getInfoXML = new ActiveXObject("Msxml.DOMDocument"); getInfoXML.loadXML(resultXml.xml); for(var i=0;i" + msg + ""); }