123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428 |
- /***************************************************************************************************************
- *
- * ramfLineSetting rexport 에서 셀의 밑줄 긋는 필드를 계산한다.
- *
- * ramfSheetColor 재무제표에서 대분류 관 항 목 세목에 따라 그리드에 색을 넣어준다.
- *
- * ramfFnworkFormula 원 천원 백만원 단위를 반올림하여 계산한다.
- *
- ***************************************************************************************************************/
- /*************************************
- * lowhightacnt 목단위/세목단위(lowacnt/highacnt)
- * gridnode 그리드의 노드셋
- * calline 계산 결과가 입력되는 컬럼
- *************************************/
- function ramfLineSetting(lowhightacnt, gridnode, calline)
- {
- if(model.getValue(lowhightacnt) == "0")
- {
- var lineflag = "0";
- }
- else
- {
- var lineflag = "1";
- }
- var preacntflag = "N";//첫 행은 비교 하지 않음
-
- for( i = 1 ; i <= instance1.selectNodes(gridnode).length ; i++ )
- {
- if(preacntflag == lineflag && model.getValue(gridnode + "[" + i + "]/acntclsflag") == lineflag)
- {
- model.setValue(gridnode + "[" + i + "]/" + calline, "no_upline")
- }
- var preacntflag = model.getValue(gridnode + "[" + i + "]/acntclsflag")
- }
- }
- /*************************************
- * grid 그리드 ID
- * lowhightacnt 목단위/세목단위(lowacnt/highacnt)
- * printcolRef 가운데 정렬할 대분류의 컬럼
- *************************************/
- function ramfSheetColor(grid, lowhightacnt, printcolRef)
- {
- for(i = grid.fixedRows ; i < grid.rows ; i++)
- {
-
- if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '5')
- {
- grid.rowStyle(i, "data", "background-color") = "#ffff99"
- grid.rowStyle(i, "data", "font-weight") = "bold"
- grid.cellStyle("text-align", i, grid.colRef(printcolRef)) = "center"
- }
- else if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '4')
- {
- grid.rowStyle(i, "data", "background-color") = "#99ccff"
- grid.rowStyle(i, "data", "font-weight") = "bold"
- }
- else if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '3')
- {
- grid.rowStyle(i, "data", "background-color") = "#66ffff"
- }
- else if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '2')
- {
- grid.rowStyle(i, "data", "background-color") = "#ccffff"
- }
- else if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '1')
- {
- grid.rowStyle(i, "data", "background-color") = "#ffffee"
- }
- else if(grid.valueMatrix(i, grid.colRef("acntclsflag")) == '0')
- {
- grid.rowStyle(i, "data", "background-color") = "#ffffff"
- }
- }
- }
- /*************************************
- * grid 그리드 ID
- * acntcolumn 계정 컬럼명
- * calculationcolumn 계산식 컬럼명
- * sourcecolumn 계산에 사용되는 인자의 컬럼명
- * returncolumn 계산 결과가 입력되는 컬럼명
- *************************************/
- function ramfFnworkFormula(grid, acntcolumn, calculationcolumn, sourcecolumn, returncolumn)
- {
- var instancerows = instance1.selectNodes(grid.nodeset).length;
- var instancefirstrow = 1;
- var seq = 0;
- var acntmappingrownum = new Array();
- var arrvalue = new Array();
- var calarr = sourcecolumn.split(",");
- var calarrlength = calarr.length;
-
- var returnarr = returncolumn.split(",");
-
- var returnarrlength = returnarr.length;
-
- var insertionValue = 0;
-
- if(calarrlength != returnarrlength)
- {
- messageBox("계산식 필드 애러", "E008");
- return;
- }
-
- calarrvalue = new Array(instancerows);
-
- for(var i = instancefirstrow ; i <= instancerows ; i++)
- {
- calarrvalue[i] = new Array(calarrlength);
-
- for(j = 0 ; j <= calarrlength - 1 ; j++)
- {
- if(model.getValue(grid.nodeset + "[" + i + "]/" + calarr[j]) == "")
- {
- insertionValue = 0;
- }
- else
- {
- insertionValue = parseInt(model.getValue(grid.nodeset + "[" + i + "]/" + calarr[j]));
- }
-
- calarrvalue[i][j] = insertionValue;
- }
- acntmappingrownum[i] = model.getValue(grid.nodeset + "[" + i + "]/" + acntcolumn);
- }
- for(var m = instancefirstrow ; m <= instancerows ; m++)
- {
- if(model.getValue(grid.nodeset + "[" + m + "]/" + calculationcolumn) != "" && model.getValue(grid.nodeset + "[" + m + "]/" + calculationcolumn) != null)
- {
- var temparr = model.getValue(grid.nodeset + "[" + m + "]/" + calculationcolumn)
-
- arr = temparr.split("-");
-
- var firstminusflag = 0;
-
- if(arr[0] == '')
- {
- firstminusflag = 1;
- }
-
- arrrows = arr.length;
-
- var plusarr = new Array();
- var minusarr = new Array();
-
- var minusarrseq = 0;
- var plusarrseq = 0;
-
- for(var i = firstminusflag ; i <= arrrows-1 ; i++)
- {
- temparr = arr[i].split('+');
-
- if(firstminusflag == 0 && i == 0)
- {
- plusarr[plusarrseq] = temparr[i];
-
- plusarrseq++;
- }
- else
- {
- minusarr[minusarrseq] = temparr[0];
-
- minusarrseq++;
- }
-
-
- for(var j = 1 ; j <= temparr.length - 1 ; j++)
- {
- plusarr[plusarrseq] = temparr[j];
-
- plusarrseq++;
- }
- }
-
- var resultarr = new Array();
-
- for(k = 0 ; k <= calarrlength - 1 ; k++)
- {
- resultarr[k] = 0;
- }
- for(var i = instancefirstrow ; i <= instancerows ; i++)
- {
- for(var j = 0 ; j <= plusarr.length - 1 ; j++)
- {
- if(plusarr[j] == acntmappingrownum[i])
- {
- for(var k = 0 ; k <= calarrlength - 1 ; k++)
- {
- resultarr[k] = resultarr[k] + calarrvalue[i][k];
- }
- }
- }
-
- for(var j = 0 ; j <= minusarr.length - 1 ; j++)
- {
- if(plusarr[j] == acntmappingrownum[i])
- {
- for(var k = 0 ; k <= calarrlength - 1 ; k++)
- {
- resultarr[k] = resultarr[k] - calarrvalue[i][k];
- }
- }
- }
- }
-
- for(k = 0 ; k <= calarrlength - 1 ; k++)
- {
- model.setValue(grid.nodeset + "[" + m + "]/" + returnarr[k], Math.round(resultarr[k]/model.getValue("/root/send/moneyunit")));
- }
- }
- }
- model.refresh();
- }
- /*************************************
- * tempsheetlist 노드셋
- * seqcolumn 순번 컬럼명
- * calculationcolumn 계산식 컬럼명
- * sourcecolumn 계산에 사용되는 인자의 컬럼명
- * returncolumn 계산 결과가 입력되는 컬럼
- * optcolumn 옵션 컬럼명
- * maxcalseq 옵셥 값 파라미터
- *************************************/
- function ramfCashFlowFormula(valuenode, seqcolumn, calculationcolumn, sourcecolumn, returncolumn, optcolumn, maxcalseq, calbase)
- {
- var instancerows = instance1.selectNodes(valuenode).length;
- var instancefirstrow = 1;
- var seq = 0;
- var seqmappingrownum = new Array();
- var arrvalue = new Array();
-
- var optarr = optcolumn.split(',');
- var optarrlength = optarr.length;
-
- var calarr = sourcecolumn.split(',');
- var calarrlength = calarr.length;
- var returnarr = returncolumn.split(',');
- var returnarrlength = returnarr.length;
-
- var insertionValue = 0;
- if(calarrlength != returnarrlength)
- {
- messageBox("계산식 필드 애러", "E008");
- //return;
- }
-
- calarrvalue = new Array(instancerows);
-
- for(var i = instancefirstrow ; i <= instancerows ; i++)
- {
- calarrvalue[i] = new Array(calarrlength);
-
- for(j = 0 ; j <= calarrlength - 1 ; j++)
- {
- if(model.getValue(valuenode + "[" + i + "]/" + calarr[j]) == "")
- {
- insertionValue = 0;
- }
- else
- {
- insertionValue = parseInt(model.getValue(valuenode + "[" + i + "]/" + calarr[j]));
- }
-
- calarrvalue[i][j] = insertionValue;
- }
- seqmappingrownum[i] = model.getValue(valuenode + "[" + i + "]/" + seqcolumn);
- }
-
-
- for(var m = instancefirstrow ; m <= instancerows ; m++)
- {
- if(model.getValue(valuenode + "[" + m + "]/" + calculationcolumn) != "" && model.getValue(valuenode + "[" + m + "]/" + calculationcolumn) != null && maxcalseq == model.getValue(valuenode + "[" + m + "]/" + optarr[1]))
- {
- var minusstr = "";
- var plusstr = "";
-
- var temparr = model.getValue(valuenode + "[" + m + "]/" + calculationcolumn)
-
- arr = temparr.split("-");
-
- for( i = 0 ; i < arr.length ; i++ )
- {
- if( i == 0 )
- {
- var firstarr = arr[i].split("+");
- if(firstarr.length > 0)
- {
- for( k = 0 ; k < firstarr.length ; k++)
- {
- plusstr = plusstr + firstarr[k] + "|";
- }
- }
- }
- else
- {
- var unitarr = arr[i].split("+");
-
- minusstr = minusstr + unitarr[0] + "|";
-
- if(unitarr.length > 1)
- {
- for(k = 1 ; k < unitarr.length ; k++)
- {
- plusstr = plusstr + unitarr[k] + "|";
- }
- }
- }
- }
-
- var plusarr = plusstr.split("|");
- var minusarr = minusstr.split("|");
-
- var resultarr = new Array();
-
- for(k = 0 ; k < calarrlength ; k++)
- {
- resultarr[k] = 0;
- }
- for(var i = instancefirstrow ; i <= instancerows ; i++)
- {
- for(var j = 0 ; j < plusarr.length - 1 ; j++)
- {
- if(plusarr[j] == seqmappingrownum[i])
- {
- for(var k = 0 ; k < calarrlength ; k++)
- {
- resultarr[k] = resultarr[k] + calarrvalue[i][k];
- }
- }
- }
-
- for(var j = 0 ; j < minusarr.length - 1 ; j++)
- {
- if(minusarr[j] == seqmappingrownum[i])
- {
- for(var k = 0 ; k < calarrlength ; k++)
- {
- resultarr[k] = resultarr[k] - calarrvalue[i][k];
- }
- }
- }
- }
-
- for(k = 0 ; k < calarrlength ; k++)
- {
- if((calbase == "N" || calbase != "" && model.getValue(valuenode + "[" + m + "]/prntnm4") == calbase))
- {
- model.setValue(valuenode + "[" + m + "]/" + returnarr[k], resultarr[k]);
- }
-
-
- //alert(model.getValue(valuenode + "[" + m + "]/seq" ) + " " + returnarr[k] + " " + resultarr[k]);
-
- }
- }
- }
- }
- /*************************************
- * valnode 노드셋
- * valcol (복사죌)기준값
- * comparedcol 비교될 컬럼
- * Avalset 비교A colset
- * Asetcol 복사A colset
- * Bvalset 비교B colset
- * Bsetcol 복사A colset
- *************************************/
- function ramfFnworksheetAlign(valnode, valcol, comparedcol, Avalset, Asetcol, Bvalset, Bsetcol, Cvalset, Csetcol, Dvalset, Dsetcol)
- {
- var arrvalcol = valcol.split(",");
- var arrAvalset = Avalset.split(",");
- var arrAsetcol = Asetcol.split(",");
- var arrBvalset = Bvalset.split(",");
- var arrBsetcol = Bsetcol.split(",");
- /* var arrCvalset = Cvalset.split(",");
- var arrCsetcol = Csetcol.split(",");
- var arrDvalset = Dvalset.split(",");
- var arrDsetcol = Dsetcol.split(","); */
-
- for(var i = 1 ; i <= model.instance1.selectNodes(valnode).length ; i++)
- {
- for(j = 0 ; j < arrAvalset.length ; j++)
- {
- if(model.getValue(valnode + "[" + i + "]/" + comparedcol) == arrAvalset[j])
- {
- for(m = 0 ; m < valcol.length ; m++)
- {
- if(model.getValue(valnode + "[" + i + "]/" + arrvalcol[m]) != "")
- {
- model.setValue(valnode + "[" + i + "]/" + arrAsetcol[m], model.getValue(valnode + "[" + i + "]/" + arrvalcol[m]));
- }
- }
- }
- break;
-
- }
-
- for(j = 0 ; j < arrBvalset.length ; j++)
- {
- if(model.getValue(valnode + "[" + i + "]/" + comparedcol) == arrBvalset[j])
- {
- for(m = 0 ; m < valcol.length ; m++)
- {
- if(model.getValue(valnode + "[" + i + "]/" + arrvalcol[m]) != "")
- {
- model.setValue(valnode + "[" + i + "]/" + arrBsetcol[m], model.getValue(valnode + "[" + i + "]/" + arrvalcol[m]));
- }
- }
- break;
- }
-
- }
- }
- }
|