SMMRE00300.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 참조값등록 ( SMMRE00300_참조값등록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 최원돈 (2010.12.02~
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var sSELREFINFO_PATH = "/root/main/selinfo/refinfo"
  10. var sSELREFLIST_PATH = "/root/main/selinfo/refinfo/reflist"
  11. var sSELREFINFO_ORG_PATH = "/root/data/selinfo/refinfo"
  12. var sSELREFLIST_ORG_PATH = "/root/data/selinfo/refinfo/reflist"
  13. var sMODINFO_PATH = "/root/data/modinfo"
  14. var sMODREFINFO_PATH = "/root/data/modinfo/refinfo"
  15. var sDELINFO_PATH = "/root/data/delinfo"
  16. var sDELREFINFO_PATH = "/root/data/delinfo/refinfo"
  17. // PK COLUMNS
  18. var aPKCOLID_MASTLIST = new Array( "instcd"
  19. , "gubun"
  20. , "code" );
  21. /**
  22. * @---------------------------------------------------
  23. * @creat : 20100000
  24. * @author : 최원돈
  25. * @desc : 초기화
  26. * @---------------------------------------------------
  27. */
  28. function fInitialize()
  29. {
  30. fGetrefinfo(); // 술식어 참조를 조회한다.
  31. }
  32. /**
  33. * @---------------------------------------------------
  34. * @creat : 20100000
  35. * @author : 최원돈
  36. * @desc : 술식어 참조를 조회
  37. * @---------------------------------------------------
  38. */
  39. function fGetrefinfo()
  40. {
  41. // 초기화 START
  42. //mainlist 초기화
  43. model.removenode(sSELREFINFO_PATH);
  44. model.makeNode(sSELREFINFO_PATH);
  45. //send parameter 초기화
  46. model.removeNodeset("/root/send/refinfo/reqdata");
  47. model.makeNode("/root/send/refinfo/reqdata");
  48. model.copyNode("/root/send/refinfo/reqdata", "/root/main/cond");
  49. // 초기화 END
  50. //submit 호출
  51. if(!submit("TRMRE00301")){
  52. messageBox("조회를 실패하였습니다.", "E999");
  53. return;
  54. }
  55. setActiveInit(); // 초기화 (조회, 저장 후)
  56. }
  57. /**
  58. * @---------------------------------------------------
  59. * @creat : 20100000
  60. * @author : 최원돈
  61. * @desc : 초기화 (조회, 저장 후)
  62. * @---------------------------------------------------
  63. */
  64. function setActiveInit()
  65. {
  66. createTempNode(); // Temp 노드를 생성한다.
  67. model.removeNodeset(sMODREFINFO_PATH);
  68. model.makeNode(sMODREFINFO_PATH);
  69. model.removeNodeset(sDELREFINFO_PATH);
  70. model.makeNode(sDELREFINFO_PATH);
  71. }
  72. /**
  73. * @---------------------------------------------------
  74. * @creat : 20100000
  75. * @author : 최원돈
  76. * @desc : 술식어 참조 저장
  77. * @---------------------------------------------------
  78. */
  79. function fClkBtnrefSave()
  80. {
  81. if(chkMsetIdenNode(aPKCOLID_MASTLIST, sSELREFLIST_ORG_PATH, sSELREFINFO_PATH, sDELREFINFO_PATH, sMODREFINFO_PATH, false, "insertseq", null, "m", "i")) // 동일여부체크
  82. {
  83. messageBox("저장할 데이터가", "I004");
  84. return;
  85. }
  86. //send parameter 초기화
  87. model.removeNodeset("/root/send/refinfo/reqdata");
  88. model.makeNode("/root/send/refinfo/reqdata");
  89. model.copyNode("/root/send/refinfo/reqdata", "/root/main/cond");
  90. model.removeNodeset("/root/send/refinfo/savedata");
  91. var modrefinfo = instance1.selectSingleNode(sMODREFINFO_PATH);
  92. var delrefinfo = instance1.selectSingleNode(sDELREFINFO_PATH);
  93. if ( modrefinfo != null
  94. && modrefinfo.childNodes.length > 0) // 추가, 수정정보를 save에 등록한다.
  95. {
  96. model.makeNode ("/root/send/refinfo/savedata/modlist");
  97. model.makeValue("/root/send/refinfo/savedata/modlist", getNodeListCSV(modrefinfo.childNodes));
  98. }
  99. if ( delrefinfo != null
  100. && delrefinfo.childNodes.length > 0) // 삭제정보를 save에 등록한다.
  101. {
  102. model.makeNode ("/root/send/refinfo/savedata/dellist");
  103. model.makeValue("/root/send/refinfo/savedata/dellist", getNodeListCSV(delrefinfo.childNodes));
  104. }
  105. if(!submit("TXMRE00301")){
  106. messageBox("저장을 실패하였습니다.", "E999");
  107. return;
  108. }
  109. setActiveInit(); // 초기화 (조회, 저장 후)
  110. }
  111. /**
  112. * @---------------------------------------------------
  113. * @creat : 20100000
  114. * @author : 최원돈
  115. * @desc : Temp 노드를 생성한다.
  116. * @---------------------------------------------------
  117. */
  118. function createTempNode()
  119. {
  120. model.removeNodeset(sSELREFINFO_ORG_PATH);
  121. model.makeNode(sSELREFINFO_ORG_PATH);
  122. model.copyNode(sSELREFINFO_ORG_PATH, sSELREFINFO_PATH);
  123. }
  124. /**
  125. * @---------------------------------------------------
  126. * @creat : 20100000
  127. * @author : 최원돈
  128. * @desc : 술식어 참조 추가
  129. * @---------------------------------------------------
  130. */
  131. function fClkBtnrefAdd()
  132. {
  133. grd_reflist.addRow(false);
  134. currow = grd_reflist.row;
  135. model.setValue(sSELREFLIST_PATH + "[" + currow + "]/useyn", "Y");
  136. model.setValue(sSELREFLIST_PATH + "[" + currow + "]/status", "i");
  137. model.refresh();
  138. grd_reflist.bottomrow = grd_reflist.row;
  139. }
  140. /**
  141. * @---------------------------------------------------
  142. * @creat : 20100000
  143. * @author : 최원돈
  144. * @desc : 술식어 참조 삭제
  145. * @---------------------------------------------------
  146. */
  147. function fClkBtnrefDel()
  148. {
  149. var delnode = instance1.selectSingleNode(sDELREFINFO_PATH);
  150. var la_refsel = new Array();
  151. // 삭제 ros Desc 임시 저장
  152. var j = 0;
  153. for(var i=(grd_reflist.selectedRows-1); i>=0; i--)
  154. {
  155. la_refsel[j++] = grd_reflist.selectedRow(i);
  156. }
  157. // 삭제 노드를 '삭제노드'에 임시 저장을 하고, 삭제함(=> 저장 시 삭제정보 활용)
  158. for(i=0; i<la_refsel.length; i++)
  159. {
  160. li_row = la_refsel[i];
  161. var ls_pkcond = "";
  162. // 비교하기 위해서 PK 를 추출
  163. for (j=0; j<aPKCOLID_MASTLIST.length; j++)
  164. {
  165. if (ls_pkcond != "")
  166. {
  167. ls_pkcond += " and ";
  168. }
  169. var ls_pkvalue = grd_reflist.valueMatrix(li_row, grd_reflist.colRef(aPKCOLID_MASTLIST[j]));
  170. if (ls_pkvalue == "")
  171. {
  172. ls_pkcond = "";
  173. break;
  174. }
  175. ls_pkcond += aPKCOLID_MASTLIST[j] + "='" + ls_pkvalue + "'";
  176. }
  177. if (ls_pkcond == "") // PK가 존재하지 않을 경우 [추가일 경우]
  178. {
  179. grd_reflist.deleteRow(li_row, false);
  180. }
  181. else
  182. {
  183. var ls_cond = sSELREFLIST_PATH + "[" + ls_pkcond + "]";
  184. delnode.appendChild(instance1.selectSingleNode(ls_cond));
  185. // delnode.lastChild.selectSingleNode("status").NodeValue = "d";
  186. grd_reflist.deleteRow(li_row, false);
  187. }
  188. }
  189. model.refresh();
  190. }