SMMRE00200.js 6.8 KB

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