SPMMB00800.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 약속SET순서변경 ( SPMMB00800_약속SET순서변경.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var g_prevmouserow = 0;
  7. /**
  8. * @desc : 약속SET순서변경 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @author : 오지훈 2007. 10. 30
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize_SPMMB00800(){
  16. var openerparam = opener.javascript.getParameter("SPMMB00800_param");
  17. var param = openerparam.split("▦");
  18. var setkindcd = param[0];
  19. var setclscd = param[1];
  20. var settypecd = param[2];
  21. var procflag = param[3];
  22. var deptcd = param[4];
  23. var deptnm = param[5];
  24. var ioflag = param[6];
  25. var indx = param[7];
  26. fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm, ioflag);
  27. trv_prmsprcpsetlist.select(indx);
  28. trv_prmsprcpsetlist.expand(indx, true);
  29. trv_prmsprcpsetlist.rebuild();
  30. }
  31. /**
  32. * @desc : 약속SET 처방/진단/수술/프로토콜 조회
  33. * @
  34. * @param : setkindcd - SET종류코드(개인P/부서D)
  35. * : setclscd - SET분류코드(의사D)
  36. * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
  37. * : procflag - 처리구분(부서SET:D)
  38. * : deptcd - 부서코드
  39. * : deptnm - 부서명
  40. * : ioflag - 외래/입원구분
  41. * @return :
  42. * @authur : 오지훈 2007. 6. 27
  43. * @---------------------------------------------------
  44. */
  45. function fReqSetTreeView(setkindcd, setclscd, settypecd, procflag, deptcd, deptnm, ioflag){
  46. model.removeNodeset("/root/send/reqdata");
  47. model.makeValue("/root/send/reqdata/setkindcd", setkindcd); //개인, 부서
  48. model.makeValue("/root/send/reqdata/setclscd" , setclscd); //의사
  49. model.makeValue("/root/send/reqdata/settypecd", settypecd); //처방, 진단, 수술, 프로토콜
  50. model.makeValue("/root/send/reqdata/procflag" , procflag); //처리구분(부서SET 조회시 설정)
  51. model.makeValue("/root/send/reqdata/deptcd" , deptcd); //부서코드(부서SET 조회시 설정)
  52. model.makeValue("/root/send/reqdata/deptnm" , deptnm); //부서명 (부서SET 조회시 설정)
  53. if(settypecd == "D"||settypecd == "O"){ //진단, 수술인 경우N으로 처리
  54. var ioflag = "N";
  55. }
  56. model.makeValue("/root/send/reqdata/ioflag" , ioflag); //외래입원구분
  57. if(submit("TRMMB00601")){
  58. trv_prmsprcpsetlist.rebuild();
  59. }
  60. }
  61. /**
  62. * @desc : Mouse Drag Over중 선택한 treeview item의 색깔 변경
  63. * @
  64. * @param :
  65. * @return :
  66. * @author : 오지훈 2007. 10. 30
  67. * @---------------------------------------------------
  68. */
  69. function fDragOverColorChng(){
  70. if(trv_prmsprcpsetlist.mouseRow != g_prevmouserow){
  71. trv_prmsprcpsetlist.item(g_prevmouserow).attribute("background-color")="#ffffff";
  72. trv_prmsprcpsetlist.item(trv_prmsprcpsetlist.mouseRow).attribute("background-color")="#ccffff";
  73. g_prevmouserow = trv_prmsprcpsetlist.mouseRow;
  74. }
  75. }
  76. /**
  77. * @desc : Mouse Drop시 treeview item의 순서 변경
  78. * @
  79. * @param :
  80. * @return :
  81. * @author : 오지훈 2007. 10. 30
  82. * @---------------------------------------------------
  83. */
  84. function fDropTrvItem(){
  85. //선택된 아이템
  86. var srcindx = trv_prmsprcpsetlist.selectedIndex;
  87. var srcval = trv_prmsprcpsetlist.item(srcindx).value;
  88. //드롭 위치의 아이템
  89. var trgtindx = trv_prmsprcpsetlist.mouseRow;
  90. var trgtval = trv_prmsprcpsetlist.item(trgtindx).value;
  91. if(trgtval == 1){
  92. messageBox("선택된 폴더로 이동", "E001");
  93. return;
  94. }
  95. var treeItemNodeSet = trv_prmsprcpsetlist.itemset.attribute("nodeset");
  96. var srcparentindx = getParentItemIndex(srcindx , treeItemNodeSet);
  97. var trgtparentindx = getParentItemIndex(trgtindx, treeItemNodeSet);
  98. if(trv_prmsprcpsetlist.item(srcparentindx).value == trv_prmsprcpsetlist.item(trgtparentindx).value){
  99. var srcLastChildItemIndex = getLastChildItemIndex(srcindx , treeItemNodeSet);
  100. var trgLastChildItemIndex = getLastChildItemIndex(trgtindx, treeItemNodeSet);
  101. var srcNodeList = instance1.selectNodes(treeItemNodeSet + "[position() >= " + (srcindx + 1)+ " and position() <=" + (srcLastChildItemIndex + 1) + "]");
  102. var srcNode, trgNode, newNode;
  103. var itemtParentNode = instance1.selectSingleNode(treeItemNodeSet).parentNode;
  104. var cloneSrcNode;
  105. if(srcindx < trgtindx) {
  106. trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgLastChildItemIndex + 1) + "]");
  107. while(srcNode = srcNodeList.nextNode()) {
  108. cloneSrcNode = srcNode.cloneNode(true);
  109. newNode = itemtParentNode.insertAfter(cloneSrcNode, trgNode);
  110. trgNode = newNode;
  111. itemtParentNode.removeChild(srcNode);
  112. }
  113. }else if(srcindx > trgtindx) {
  114. trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgtindx + 1) + "]");
  115. while(srcNode = srcNodeList.nextNode()) {
  116. cloneSrcNode = srcNode.cloneNode(true);
  117. newNode = itemtParentNode.insertBefore(cloneSrcNode, trgNode);
  118. itemtParentNode.removeChild(srcNode);
  119. }
  120. }
  121. trv_prmsprcpsetlist.rebuild();
  122. }else{
  123. messageBox("선택된 폴더로 이동", "E001");
  124. }
  125. }
  126. /**
  127. * @desc : 현재 item index의 부모 item index를 return
  128. * @
  129. * @param :
  130. * @return :
  131. * @author : 김기용 2007. 1. 10
  132. * @---------------------------------------------------
  133. */
  134. function getParentItemIndex(itemIndex, treeItemNodeSet) {
  135. var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/levl");
  136. var parentDepthValue = curDepthValue - 1;
  137. do {
  138. itemIndex--;
  139. curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/levl");
  140. } while(curDepthValue != parentDepthValue)
  141. return itemIndex;
  142. }
  143. /**
  144. * @desc : 현재 아이템 인덱스의 자식 아이템중 마지막 아이템 인덱스를 반환
  145. * @
  146. * @param :
  147. * @return :
  148. * @author : 김기용 2007. 1. 10
  149. * @---------------------------------------------------
  150. */
  151. function getLastChildItemIndex(itemIndex, treeItemNodeSet) {
  152. var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/levl");
  153. var childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/levl");
  154. while(curDepthValue < childDepthValue) {
  155. itemIndex++;
  156. childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/levl");
  157. }
  158. return itemIndex;
  159. }
  160. /**
  161. * @desc : tree nodeset 순서 설정
  162. * @
  163. * @param :
  164. * @return :
  165. * @author : 오지훈 2007. 10. 31
  166. * @---------------------------------------------------
  167. */
  168. function fUpdtRefSeq(){
  169. var indx = trv_prmsprcpsetlist.selectedIndex;
  170. var treeItemNodeset = trv_prmsprcpsetlist.itemset.attribute("nodeset");
  171. var totcnt = getNodeSetCnt(treeItemNodeset);
  172. for(var i = 2; i <= totcnt; i++){
  173. model.setValue(treeItemNodeset + "[" + i + "]/setrefseq", i);
  174. }
  175. var savedata = getNodeListCSV(instance1.selectNodes(treeItemNodeset));
  176. model.removeNodeset("/root/send/savedata");
  177. model.makeValue("/root/send/savedata", savedata);
  178. if(submit("TXMMB00801")){
  179. }
  180. //trv_prmsprcpsetlist.select(indx);
  181. //trv_prmsprcpsetlist.expand(indx, true);
  182. //trv_prmsprcpsetlist.rebuild();
  183. }
  184. /**
  185. * @desc : tree nodeset 순서 설정
  186. * @
  187. * @param :
  188. * @return :
  189. * @author : 오지훈 2007. 10. 31
  190. * @---------------------------------------------------
  191. */
  192. function fClkBtnClose(){
  193. var indx = trv_prmsprcpsetlist.selectedIndex;
  194. opener.javascript.setParameter("SPMMB00800_rtnparam", indx);
  195. window.close();
  196. }