MRTCommon.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /**
  2. * @desc : 노드셋 카피
  3. * @id :
  4. * @event :
  5. * @return :
  6. * @authur : 이상현
  7. */
  8. function copyNodeset(strDest, strSrc, mode, destModel, srcModel)
  9. {
  10. if(mode == null)
  11. mode = "replace";
  12. if(destModel == null)
  13. destModel = model;
  14. if(srcModel == null)
  15. srcModel = model;
  16. if(mode == "replace")
  17. destModel.removeNodeset(strDest);// 대상 노드를 삭제한다.
  18. //var destListLen = 0;
  19. var destNodeList = destModel.instances(0).selectNodes(strDest);
  20. //if(destNodeList != null)
  21. var destListLen = destNodeList.length;
  22. var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
  23. var prepath_strDest = strDest + "[";
  24. var idx;
  25. for(var i = 0; i < srcNodeList.length; i++)
  26. {
  27. idx = i + 1 + destListLen;
  28. var strDest1 = prepath_strDest + idx + "]";
  29. destModel.makeNode(strDest1);
  30. var destNode = destModel.instances(0).selectSingleNode(strDest1);
  31. var srcNode = srcNodeList.item(i);
  32. var srcChildList = srcNode.childNodes;
  33. for(var j = 0; j < srcChildList.length; j++)
  34. destNode.appendChild(srcChildList.item(j).cloneNode(true));
  35. }
  36. }
  37. function copyNode(destModel, srcModel, strDest, strSrc)
  38. {
  39. if(findNode(srcModel, strSrc) == null)
  40. {
  41. alert("카피할 원본노드(" + strSrc + ")가 존재하지 않습니다..");
  42. return;
  43. }
  44. var destNode = findNode(destModel, strDest);
  45. if(destNode == null)
  46. destModel.makeNode(strDest);
  47. else
  48. {
  49. var childList = destNode.childNodes;
  50. for(var idx = 0; idx < childList.length; idx++)
  51. {
  52. var childNode = childList.item(idx);
  53. destModel.removenode(childNode);
  54. }
  55. }
  56. var destXml = destModel.instances(0);
  57. var destNode = destXml.selectSingleNode(strDest);
  58. var nodeList2 = destNode.childNodes;
  59. var temp_count = 0;
  60. var total_count = nodeList2.length;
  61. for (; temp_count<total_count; temp_count++)
  62. {
  63. destNode.removeChild( nodeList2.item(0) );
  64. }
  65. var srcXml = srcModel.instances(0);
  66. var srcNode = srcXml.selectSingleNode(strSrc);
  67. nodeList2 = srcNode.childNodes;
  68. var clone_node = null;
  69. temp_count = 0;
  70. total_count = nodeList2.length;
  71. for (; temp_count<total_count; temp_count++)
  72. {
  73. var node = nodeList2.item(temp_count);
  74. clone_node = node.cloneNode(true);
  75. destNode.appendChild( clone_node );
  76. }
  77. }
  78. function findNode(srchModel, strPath)
  79. {
  80. var insXml = srchModel.instances(0);
  81. var destNode = insXml.selectSingleNode(strPath);
  82. return destNode;
  83. }
  84. function getNodesetCnt(srchModel, path)
  85. {
  86. var insXml = srchModel.instances(0);
  87. var nodeList = insXml.selectNodes(path);
  88. return nodeList.length;
  89. }
  90. function setGridTree( gridObj, levelcol, targetcol, collapsed) {
  91. //tree 및 레벨설정
  92. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  93. {
  94. //gridObj.issubtotal(i) = true;
  95. gridObj.outlinelevel(i)=gridObj.valuematrix(i, levelcol); //인스턴스 levl 값임
  96. }
  97. // tree 대상 컬럼 및 형태 설정
  98. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  99. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  100. gridObj.treecolor="#948777"
  101. // 자식 트리 접기
  102. if (collapsed)
  103. {
  104. for(var i = gridObj.fixedrows; i <gridObj.rows; i++)
  105. {
  106. gridObj.isCollapsed(i) = collapsed; //자식 트리 접기
  107. }
  108. }
  109. }