TotForm = function(instanceName, tableCount, itemCount) { this.name = instanceName; this.isTotDoc = false; this.tableCount = tableCount; this.itemCount = itemCount; this.itemList = new Array(); this.tableList = new Array(); for(var j=1; j <= tableCount && tableCount > 0 ; j++) this.tableList[j]= new TotTable(1); for(var i=0;i -1){ // roundInStr = expr.substring(sumIndex+3, expr.length); // charCount = roundInStr.length; // var isErrorExpr = false; // for(var i=0; i < charCount; i++){ // alert(roundInStr.substring(i, i+1)); // if(alphabet.indexOf(roundInStr.substring(i, i+1)) > -1 && isErrorExpr){ // isErrorExpr = false; // break; // }else{ // isErrorExpr = true; // } // } // } // if(isErrorExpr){ // alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù. ´Ù½ÃÈ®ÀÎÇØ ÁÖ¼¼¿ä. \nÁ¤ÀÇÇÑ ¼ö½ÄÁß SUM()¾È¿¡ ¼¿ À̸§ÀÌ Çϳª¸¸ ÀÖ´ÂÁö È®ÀÎÇØ ÁÖ¼¼¿ä. "); // return true; // } if(sumIndex > -1){ //ÄÝ·ÐÀÌ ¾ø´Â °æ¿ì¿¡´Â ¾ËÆÄºª+¼ýÀÚ°¡ 2°³ ÀÖ¾î¾ß ÇÑ´Ù. if(colonIndex <= -1) { roundInStr = expr.substring(sumIndex+4, expr.length-1); charCount = roundInStr.length; for(var i=0; i < charCount; i++){ if(alphabet.indexOf(roundInStr.substring(i, i+1)) > -1){ if(alphabetCount == 1) { alphabetCount = 0; } alphabetCount = alphabetCount + 1; } else { if(alphabetCount == 2) { alphabetCount = 1; } alphabetCount = alphabetCount + 1; } } if(alphabetCount != 2){ alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù. ´Ù½ÃÈ®ÀÎÇØ ÁÖ¼¼¿ä."); return true; } //ÄÝ·ÐÀÌ 1°³ ÀÖ´Â °æ¿ì¿¡´Â ¾ËÆÄºª+¼ýÀÚ°¡ 2°³ ÀÖ¾î¾ß ÇÑ´Ù. } else { //ÄÝ·ÐÀÇ ¾ÕÂÊ roundInStr = expr.substring(sumIndex+4, colonIndex); charCount = roundInStr.length; for(var i=0; i < charCount; i++){ if(alphabet.indexOf(roundInStr.substring(i, i+1)) > -1){ if(alphaBeforeCount == 1) { alphaBeforeCount = 0; } alphaBeforeCount = alphaBeforeCount + 1; } else { if(alphaBeforeCount == 2) { alphaBeforeCount = 1; } alphaBeforeCount = alphaBeforeCount + 1; } } //ÄÝ·ÐÀÇ µÚÂÊ roundInStr = expr.substring(colonIndex+1, expr.length-1); charCount = roundInStr.length; for(var i=0; i < charCount; i++){ if(alphabet.indexOf(roundInStr.substring(i, i+1)) > -1){ if(alphaAfterCount == 1) { alphaAfterCount = 0; } alphaAfterCount = alphaAfterCount + 1; } else { if(alphaAfterCount == 2) { alphaAfterCount = 1; } alphaAfterCount = alphaAfterCount + 1; } } if((alphaBeforeCount == 2 && alphaAfterCount != 2) || (alphaBeforeCount != 2 && alphaAfterCount == 2)) { alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù. ´Ù½ÃÈ®ÀÎÇØ ÁÖ¼¼¿ä. \nÁ¤ÀÇÇÑ ¼ö½ÄÁß SUM()¾È¿¡ ¼¿ À̸§ÀÌ Çϳª¸¸ ÀÖ´ÂÁö È®ÀÎÇØ ÁÖ¼¼¿ä. "); return true; } else if(alphaBeforeCount != 2 || alphaAfterCount != 2){ alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù. ´Ù½ÃÈ®ÀÎÇØ ÁÖ¼¼¿ä."); return true; } } } // ¼¿À» '¼ýÀÚ'·Î ¼±ÅÃÇϰí, °è»ê½ÄÀ» ÀÔ·ÂÇÒ °æ¿ì ÀԷ°¡´ÉÇÑ ¹®ÀÚ¿Ü¿¡´Â µî·ÏÇÏÁö ¸øÇϵµ·Ï üũÇÑ´Ù. 2014.11.21 by YOUNGJUN,CHO //alert(SetCell.itemType.value); if (type === "¼ýÀÚ") { // ¾Æ·¡ ¹®ÀÚ°¡ ¾Æ´Ñ °æ¿ì(Á¤±Ô½Ä ¾Õ¿¡ ^ À¸·Î ¾Æ´Ñ °æ¿ì¸¦ üũ)°¡ Á¸ÀçÇÒ °æ¿ì true ·Î ¸®ÅÏ. // ¿µ¹® ´ë¹®ÀÚ A-Z // ¼ýÀÚ 0-9 // °ýÈ£ ( ) // »çÄ¢¿¬»ê + - * / // ÄÝ·Ð : var regexp = /[^A-Z|0-9|\(|\)|\+|\-|\/|\*|\:]/; //alert(regexp.test(expr)); if (regexp.test(expr) === true) { alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù.\n\n¼¿À» '¼ýÀÚ'·Î ¼±ÅÃÇϽаæ¿ì¿¡´Â ¼ö½Ä¿¡ ¼Ò¼öÁ¡À» »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç\n\r¾Æ·¡ ¹®ÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.\n\ \n** ¾ËÆÄºª(´ë¹®ÀÚ), ¼ýÀÚ, °ýÈ£, »çÄ¢¿¬»ê±âÈ£(+,-,*,/), ÄÝ·Ð(:) **\n\n¼ö½ÄÀ» ´Ù½Ã ¼³Á¤ÇØ ÁֽʽÿÀ!"); return true; } } } //SUM¾øÀÌ ','¸¸ »ç¿ëÇÒ¶§ »ç¿ëºÒ°¡ var comaIndex; if(sumIndex == -1){ comaIndex = expr.indexOf(","); if(comaIndex > -1){ alert(expr+" ¼ö½ÄÀÌ À߸ø µÇ¾ú½À´Ï´Ù. ´Ù½ÃÈ®ÀÎÇØ ÁÖ¼¼¿ä. \nÁ¤ÀÇÇÑ ¼ö½ÄÁß ','°¡ ÀÖ´ÂÁö È®ÀÎÇØÁÖ¼¼¿ä. \n','¸¦ '+'·Î ¹Ù²ã »ç¿ëÇϸé Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÕ´Ï´Ù."); return true; } } //¼ö½Ä¿¡ ÀÚ±âÀÚ½ÅÀ» ¿¬»êÇÏ´Â °æ¿ì »ç¿ëºÒ°¡ if(expr.indexOf("+")==-1||expr.indexOf("-")==-1||expr.indexOf("*")==-1||expr.indexOf("/")==-1||expr.indexOf("SUM(")==-1){ var cellname=$(SetWin).find('td:first').text(); try{ cellname=cellname.trim(); }catch(e){} if(expr.indexOf(cellname)>-1&&cellname!=''){ alert('¼ö½Ä¿¡´Â ÀÚ±â ÀÚ½ÅÀ» ¿¬»êÇÒ ¼ö ¾ø½À´Ï´Ù.'); return true; } } //¼¿ ¼­½Ä Àû¿ë Áß ÄÞº¸¹Ú½º¿Í ¿¬»êÀÌ ÀÖÀ» °æ¿ì ÄÞº¸¹Ú½º °ª Áß¿¡ ¼ýÀÚ°ªÀÌ ¾Æ´Ñ °ªÀÌ ÀÖ´ÂÁö üũ //¼ö½Ä ÀÏ ¶§ ¼ýÀÚ°¡ ¾Æ´Ñ ¼¿ ÀÌ ÀÖ´Â Áö È®ÀÎ var temp=expr.replace('+',',').replace('-',',').replace('*',',').replace('/',',').replace('SUM(',',').replace(':',',').replace(')',',').split(','); if(temp.length>1){ for(var i=0;i-1){ var explist=exp.split('^'); for(var k=0;k-1||expr.indexOf('-')>-1||expr.indexOf('*')>-1||expr.indexOf('/')>-1||expr.indexOf('SUM(')>-1){ for(var i=0;j"+ this.itemList[index].itemName +""; htmlStr+=""+this.itemList[index].expr+""; htmlStr+="\ \ "; eval('cell_'+index).innerHTML = htmlStr; }; function showSetWinForCell(totForm, index){ totForm.itemList[index].setWin = true; SetWin.style.visibility='visible'; SetWin.style.width='auto'; //SetWin.style.top = window.event.y + document.body.scrollTop; //SetWin.style.left = window.event.x + document.body.scrollLeft; // 2014.08.21 by YoungJun Cho. ¼¿ ¼­½ÄÁöÁ¤ ·¹ÀÌ¾î ÆË¾÷ À§Ä¡Á¶Àý SetWin.style.top = (window.event.clientY + document.body.scrollTop - 30) + "px"; // À§·Î 30px ¹Ð±â SetWin.style.left = (window.event.clientX + document.body.scrollLeft + 20) + "px"; // ¿ìÃøÀ¸·Î 20px ¹Ð±â SetWin.innerHTML = "\ \ \ \ \ \ \ \
"+totForm.itemList[index].itemName+"
\
\ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \
\ \ \
\        \ \ \
\
\
"; SetCell.itemSize.value = totForm.itemList[index].size; SetCell.itemExpr.value = totForm.itemList[index].expr; SetCell.itemType.value = totForm.itemList[index].type; SetCell.itemExpr.focus(); } var v0; function inExpNew(v1) { if(SetWin.style.visibility=='hidden'){ }else{ var itemName = SetCell.itemName; var itemExpr = SetCell.itemExpr; var itemType = SetCell.itemType; // console.log("ÀÔ·Â Type["+itemType.value+"]"); // console.log("ÀԷ°ª["+v1+"]"); // console.log("ÀԷ½©["+itemName.value+"]"); if(itemType.value!='¼ýÀÚ') { return; } if(itemName.value==v1) { alert('¼ö½Ä¿¡´Â ÀÚ±âÀÚ½ÄÀ» ¿¬»êÇÒ ¼ö ¾ø½À´Ï´Ù.'); return; } if(v1 == "SUM(:)") { if(itemExpr.value.length>0) { alert("SUMÇÔ¼ö´Â ´Üµ¶À¸·Î¸¸ »ç¿ë°¡´ÉÇÕ´Ï´Ù."); itemExpr.value=""; return; } else{ itemExpr.value = v1; console.log(1); } } else { if(itemExpr.value=="SUM(:)"){ itemExpr.value="SUM("+v1+":)" console.log(2); } else if(itemExpr.value.indexOf("SUM(")>-1){ itemExpr.value=itemExpr.value.replace(":)",":"+v1+")"); console.log(3); } else { itemExpr.value = itemExpr.value+v1; console.log(4); } } } } /* //ie10,11 ȣȯ¼º º¸±â ¼öÁ¤ function inExp(v1) { if (SetWin.style.visibility == 'hidden') { } else { SetCell.itemExpr.focus(); window.document.selection.createRange().text = v1; } } function inExp(v1){ if(SetWin.style.visibility=='hidden'){ }else{ SetCell.itemExpr.focus(); //ie10,11 ȣȯ¼º ¼öÁ¤ var range; var txt=SetCell.itemExpr.value; try{ range = window.document.selection.createRange(); range.text=v1; if (v1.match('\\(\\)$')) { range.moveStart ('character', -1); range.moveEnd ('character', -1); range.select(); } else if (v1.match('\\(:\\)$')) { range.moveStart ('character', -2); range.moveEnd ('character', -2); range.select(); }else if(txt.substr(txt.length-2,2)==':)'){ range.moveStart ('character', 1); range.moveEnd ('character', 0); range.select(); } }catch(e){ range=SetCell.itemExpr.createTextRange(); var pos=SetCell.itemExpr.selectionStart; txt=txt.substring(0,pos)+v1+txt.substring(pos,txt.length); SetCell.itemExpr.value=txt; if (v1.match('\\(:\\)$')) { range.moveStart('character', SetCell.itemExpr.value.length-2); range.moveEnd('character',-2); range.select(); }else if(txt.substring(txt.length-2)==':)'&&txt.substring(txt.length-6)!='SUM(:)'){ range.moveStart('character', SetCell.itemExpr.value.length-1); range.moveEnd('character', -1); range.select(); } } } } */ function enter_catch(totForm, index){ if(event.keyCode==13){ setValue(totForm, index); SetWin.style.visibility='hidden'; totForm.reShowValue(index); } } String.prototype.trim = function() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }; function compareColName(col1, col2) { col1 = col1.toUpperCase(); col2 = col2.toUpperCase(); if(col1.length != col2.length) return col2.length - col1.length; else { for(var x = 0; x < col1.length; x++) { if(col1.charCodeAt(x) == col2.charCodeAt(x)) continue; else return col2.charCodeAt(x) - col1.charCodeAt(x); } return 0; } } function isContainedIn(cellName, cellRange) { var cellNameArray = cellRange[0].split(/\s*:\s*/g); var cellName1 = cellNameArray[0].toUpperCase(); var cellName2 = cellNameArray[1].toUpperCase(); var colName1 = cellName1.match(/[A-Z]+/g); var colName2 = cellName2.match(/[A-Z]+/g); var rowNum1 = cellName1.match(/\d+/g); var rowNum2 = cellName2.match(/\d+/g); var startColName, endColName, startRowNum, endRowNum; if( (compareColName(colName1[0], colName2[0]) < 0) || (compareColName(colName1[0], colName2[0]) == 0 && rowNum1[0] - rowNum2[0] < 0) ) { startColName = colName1[0]; endColName = colName2[0]; startRowNum = rowNum1[0]; endRowNum = rowNum2[0]; } else /*if( (compareColName(colName1[0], colName2[0]) > 0) || (compareColName(colName1[0], colName2[0]) == 0 && rowNum1[0] - rowNum2[0] >= 0) )*/ { startColName = colName2[0]; endColName = colName1[0]; startRowNum = rowNum2[0]; endRowNum = rowNum1[0]; } var colNameTmp = cellName.toUpperCase().match(/[A-Z]+/g); var rowNumTmp = cellName.match(/\d+/g); var colName = colNameTmp[0]; var rowNum = rowNumTmp[0]; return compareColName(startColName, colName) <= 0 && compareColName(colName, endColName) <= 0 && startRowNum <= rowNum && rowNum <= endRowNum; } function getCalculationForm(str, rowNum, type){ //ÇÊ¿ä¾ø´Â EXPR ^ if(isSearch(str, "^")) return str; //"SUM", "(", ")", ":", ",", "+", "-", "*", "/" //SUM(B9:F99) var alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var integer = '0123456789'; var charCount = str.length; var charList = new Array(charCount); var numList = new Array(charCount); var befoChar = ""; var currChar = ""; var afterChar = ""; if(charCount < 1) return str; //String array analysis //exprÀÇ item nameÀÇ number add var exprbuf = ""; var isItemNum = false; var tmpNum = ""; var sumNum = ""; for(var i=0; i < charCount; i++){ currChar = str.substring(i, i+1); if(isSearch(alphabet, currChar)){ //¹®ÀÚ À϶§~~~~ if(currChar == 's' || currChar == 'S'){ sumNum = 1; isItemNum = true; }else if(sumNum == 1 && i > 0 && (currChar == 'u' || currChar == 'U')){ sumNum = 2; isItemNum = true; }else if(sumNum == 2 && i > 1 && (currChar == 'm' || currChar == 'M')){ sumNum = 3; isItemNum = false; }else{ sumNum = 0; isItemNum = true; } exprbuf += currChar; }else if(isSearch(integer, currChar)){ //¼ýÀÚ À϶§~~~~ if(i > 0 && isSearch(alphabet, befoChar) && isItemNum == true){ //Item nameÀÇ Ã¹¹øÂ° ¼ýÀÚ¶ó¸é tmpNum = currChar; isItemNum = true; }else if(i > 0 && isSearch(integer, befoChar) && isItemNum == true){ //Item nameÀÇ µÎ¹øÂ° ÀÌ»óÀÇ ¼ýÀÚ¶ó¸é tmpNum += currChar; isItemNum = true; }else{ //³ª¸ÓÁö exprbuf += currChar; isItemNum = false; } afterChar = str.substring(i+1, i+2); if((i == (charCount-1) || !isSearch(integer, afterChar)) && isItemNum){ //Item nameÀÇ ¼ýÀÚ ³¡À̶ó¸é if(type == "add"){ //µ¿ÀûÇ¥¿¡¼­ º¸°¡ÀÚ·á º¸±â½Ã º¸°íÇÑ Çà¿¡ µû¶ó ¼ö½ÄÀ» º¯°æÇØÁÜ exprbuf += (parseInt(tmpNum)+parseInt(rowNum)); isItemNum = false; }else if(type == "sub"){ //µÎ°³ÀÇ Ç¥¸¦ µî·ÏÇÒ¶§ Form¿¡ Àû¿ëµÇ´Â ¼ö½Ä»ç¿ë exprbuf += (parseInt(tmpNum)-parseInt(rowNum)); isItemNum = false; } } }else{ exprbuf += currChar; isItemNum = false;//¼ö½Ä À϶§~~~ } befoChar = currChar; } return exprbuf; } function isSearch(strs, str){ var count = strs.length; var strList = new Array(count); for(var i=0; i < count; i++){ if(strs.substring(i, i+1) == str) return true; } return false; }