SMMNP00710.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. /* ---------------------------------------------------------------------
  2. 회복실 코드관리(SMMNP00710.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By taebum
  6. : 2008-06-02 오전 8:55:01
  7. ---------------------------------------------------------------------- */
  8. var sGGridXPath = "/root/main/list/codelists";
  9. /**
  10. * 초기화
  11. *
  12. */
  13. function fInitialize(){
  14. model.removeNodeset("/root/main/list/codelists");
  15. model.resetInstanceNode("/root/send");
  16. model.refresh();
  17. cmb_codeflag.select(0);
  18. fSetGridCaptionInfo(cmb_codeflag.value);
  19. }
  20. //codeflag에 대한 Grid Caption 정보 변경
  21. function fSetGridCaptionInfo(pFlag){
  22. if(pFlag == "01"){ //배액관
  23. grd_codelist.caption = "*구분^*배액관코드^*명칭^*규격^*개수^*부위^부연설명";
  24. }else if(pFlag == "02"){//합병증
  25. grd_codelist.caption = "*구분^*합병증코드^*합병증명^부연설명1^부연설명2^부연설명3^부연설명4";
  26. }
  27. //grd_codelist.refresh();
  28. }
  29. /**
  30. * 그리드 행추가 버튼을 클릭하였을 경우 이벤트
  31. *
  32. */
  33. function fClickRowAddBtn(){
  34. grd_codelist.addRow(); // 입력할 행 추가.
  35. var cur_row = grd_codelist.row; // 추가된 행 번호 가져오기
  36. var cnt_row = grd_codelist.rows; // 현재 행의 갯수 가져오기
  37. var codeflag = cmb_codeflag.value;
  38. model.setValue(sGGridXPath+"["+cur_row+"]/codeflag",codeflag);
  39. grd_codelist.refresh();
  40. grd_codelist.row = cur_row;
  41. grd_codelist.select(cur_row, 4) = true;
  42. grd_codelist.editcell();
  43. //grd_codelist.colDisabled(1);
  44. }
  45. /**
  46. * 그리드 Row가 추가될 경우 이벤트
  47. *
  48. */
  49. function fRowChanged(){
  50. var cur_row = grd_codelist.row;
  51. if ( cur_row > 0 ) {
  52. model.copyNode("/root/main/item","/root/main/list/codelists["+cur_row+"]");
  53. model.refresh();
  54. }
  55. }
  56. /**
  57. * 그리드 ValueChanged가 발생되었을 경우 이벤트
  58. *
  59. */
  60. function fGridValueChanged(){
  61. var cur_row = grd_codelist.row; // 추가된 행 번호 가져오기
  62. var cur_cel = grd_codelist.col;
  63. var cnt_row = grd_codelist.rows; // 현재 행의 갯수 가져오기
  64. var stat = grd_codelist.colstatus(0);
  65. }
  66. /**
  67. * 삭제 버튼을 클릭하였을 경우 이벤트
  68. *
  69. */
  70. function fClickDeleteBtn(){
  71. var cur_row = grd_codelist.row; // 행 번호 가져오기
  72. var iStatus = grd_codelist.rowstatus(cur_row);
  73. if(cur_row <= 0 || cur_row =="undefined") {
  74. alert("삭제할 행을 선택하시기 바랍니다...");
  75. return;
  76. }
  77. if (iStatus == 1 || iStatus == 3){ // 새로 삽입된 행이면
  78. grd_codelist.deleteitem(cur_row);
  79. }else if (iStatus == 4){ // 삭제로 표시된 행이면
  80. grd_codelist.removestatus(cur_row, "delete");
  81. }else{
  82. grd_codelist.addStatus(cur_row, "delete");
  83. }
  84. }
  85. /*
  86. * 저장 버튼을 클릭하였을 경우 이벤트
  87. *
  88. */
  89. function fOnClickSaveBtn(){
  90. if(!checkGridUpdate(grd_codelist)){
  91. alert("저장할 자료가 존재하지 않습니다.");
  92. return;
  93. }
  94. if(checkGridField(grd_codelist,"codeflag▦code▦")==false){
  95. alert("데이터중에 비어있는 필수필드가 있습니다.");
  96. return;
  97. }
  98. model.setValue("/root/send/listdata",grd_codelist.getUpdateData());
  99. if ( submit("TXMNP00710") ) {
  100. grd_codelist.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  101. //changeNodeSet();
  102. }
  103. }
  104. /**
  105. * @group :
  106. * @ver : 2006.12.20
  107. * @by :
  108. * @---------------------------------------------------
  109. * @type : function
  110. * @access : public
  111. * @desc :
  112. * @return : bool
  113. * @---------------------------------------------------
  114. */
  115. function checkGridUpdate(grid)
  116. {
  117. var iData = grid.getUpdateDataXml("insert");
  118. var uData = grid.getUpdateDataXml("update");
  119. var dData = grid.getUpdateDataXml("delete");
  120. if (iData=="" && uData=="" && dData=="") return false;
  121. else return true;
  122. }
  123. /**
  124. * @group :
  125. * @ver : 2006.12.20
  126. * @by :
  127. * @---------------------------------------------------
  128. * @type : function
  129. * @access : public
  130. * @desc :
  131. * @return : bool
  132. * @---------------------------------------------------
  133. */
  134. function checkGridField(grid, field){
  135. var nodeset = grid.nodeset;
  136. var iStatus;
  137. //var iData = grid.getUpdateDataXml("insert");
  138. for (i=grid.fixedRows; i<grid.rows; i++){
  139. iStatus = grid.rowstatus(i);
  140. if (iStatus == 1 || iStatus == 3){
  141. var fieldArr = field.split("▦");
  142. if(fieldArr.length < 1){
  143. return false;
  144. }
  145. for(var j = 0; j < fieldArr.length; j++){
  146. if(fieldArr[j] == null || fieldArr[j] == "" || fieldArr[j] == "undefined"){
  147. continue;
  148. }
  149. if(model.getValue(nodeset+"["+i+"]/"+fieldArr[j])=="") return false;
  150. }
  151. }
  152. }
  153. return true;
  154. }
  155. /* @group :
  156. * @ver : 2008-06-02 오후 5:01:10
  157. * @by : taebum
  158. * @-----------------------------------
  159. * @type : function
  160. * @access : public
  161. * @desc : 조회 및 검색
  162. */
  163. function fbtnSearch() {
  164. model.removeNodeSet("/root/main/list/codelists");
  165. model.refresh();
  166. submit("TRMNP00710");
  167. //changeNodeSet();
  168. }
  169. /* @group :
  170. * @ver : 2008-06-02 오후 5:19:26
  171. * @by : taebum
  172. * @-----------------------------------
  173. * @type : function
  174. * @access : public
  175. * @desc : Excel 버튼 클릭시 이벤트
  176. */
  177. function fOnClickExcelBtn(){
  178. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  179. if (fileName != ""){
  180. grd_codelist.saveExcel(fileName);
  181. }
  182. }
  183. /* ------------------------------------------------- */
  184. /* ------End Of List ------------------------------- */
  185. /* -------------------------------------------------- */