SMMRS01000.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 외래환자현황 ( SMMRS01000_외래환자현황.xrw - JScript )
  4. * Version :
  5. - Ver.1.00.01
  6. * 개발자: 이경희
  7. * 최초작성일:
  8. - 2008/02/27
  9. * 수정이력:
  10. - 2008/03/17
  11. * 기타:
  12. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  13. */
  14. /**
  15. * @ver : 2008-02-27
  16. * @desc : 폼 초기화
  17. * @
  18. * @by
  19. * @param:
  20. * @return:
  21. * @---------------------------------------------------
  22. */
  23. function finitialize()
  24. {
  25. var currentDate = new Date();
  26. var fromdd = getCurrentDate();
  27. // 현재달의 첫번째 일 구하기
  28. fromdd = fromdd.substr(0,6) + "01";
  29. // 현재달에서 이전달의 첫번째 일로 설정
  30. fromdd = ((fromdd.toDate()).getAddDate(-1, "M")).getDateFormat();
  31. // 현재달의 마지막일자 설정
  32. var lastMonthDay = currentDate.getMonthDay(); // 해당 월의 마지막 일
  33. var curDate = getCurrentDate();
  34. var todd = curDate.substr(0,6) + lastMonthDay;
  35. model.setValue("/root/main/fromdd", fromdd);
  36. model.setValue("/root/main/todd", todd);
  37. var searchStart = model.getValue("/root/main/fromdd");
  38. var StartDate = fChangeDate(searchStart, 1); // DB 쿼리의 조회 조건을 설정
  39. var searchEnd = model.getValue("/root/main/todd");
  40. var EndDate = fChangeDate(searchEnd, 0);
  41. model.setValue("/root/send/searchstartdate" , searchStart);
  42. model.setValue("/root/main/fromdd" , searchStart);
  43. model.setValue("/root/send/searchenddate" , searchEnd);
  44. model.setValue("/root/main/todd" , searchEnd);
  45. grd_statslist.colstyle(0,"data","color")="#6464ff";
  46. // 진료과 코드 컬럼 숨기기
  47. grd_statslist.colHidden(1) = true;
  48. // 이전달 컬럼 숨기기
  49. for (var i = 1; i < grd_statslist.cols-6; i++)
  50. {
  51. if (i % 2 == 0)
  52. {
  53. grd_statslist.colHidden(i) = true;
  54. }
  55. }
  56. model.refresh();
  57. }
  58. /**
  59. * @ver : 2008-02-27
  60. * @desc : 외래환자현황 조회시 입력한 달의 년월일을 변수로 입력받아 인스턴스 변수의
  61. condition_start, condition_end 변수에 값을 할당, DB쿼리의 조건 변수에 사용한다.
  62. * @
  63. * @by : 이경희
  64. * @param: 1) inputString - 입력한 년월일(예: 20080101)
  65. 2) bStart 1 - 조회 시작 월인 경우
  66. 0 - 조회 종료 월인 경우
  67. * @return:
  68. * @---------------------------------------------------
  69. */
  70. function fChangeDate(inputString, bStart)
  71. {
  72. var cutStr = inputString.substr(0,6);
  73. if(bStart)
  74. {
  75. var cond = eval(cutStr.substr(0, 6)); // 20080101 형식이기 때문에 200801 까지 스트링을 자름
  76. cond += "%";
  77. model.setValue("/root/main/condition_start", cond);
  78. }
  79. else
  80. {
  81. var cond = eval(cutStr.substr(0, 6));
  82. cond += "%";
  83. model.setValue("/root/main/condition_end", cond);
  84. }
  85. }
  86. /**
  87. * @ver : 2008-02-27
  88. * @desc : 외래환자현황 조회시 입력한 달의 년월일을 변수로 입력받아 조건이 올바른지 확인한다.
  89. * @
  90. * @by : 이경희
  91. * @param: 1) StartDate - 조회 시작 년월일
  92. 2) EndDate - 조회 종료 년월일
  93. * @return:
  94. * @---------------------------------------------------
  95. */
  96. function fValidDate(StartDate, EndDate)
  97. {
  98. var dateInterval = eval(getDateInterval(StartDate, EndDate)); // 조회 시작 년월일과 조회 종료 년월일 사이의 날짜를 계산.
  99. if ( dateInterval < 0 )
  100. {
  101. messageBox("조회 기간이 맞지 않습니다. 조회 기간을 다시", "C002");
  102. return false;
  103. }
  104. return true;
  105. }
  106. /**
  107. * @ver : 2008-02-27
  108. * @desc : 그리드에 컬럼을 추가하여 전월합계, 현월합계, 증감을 계산한다.
  109. * @
  110. * @by : 이경희
  111. * @param: None
  112. * @return:
  113. * @---------------------------------------------------
  114. */
  115. function fCalculateStats()
  116. {
  117. var sum = 0;
  118. grd_statslist.multiTotals = true;
  119. // 전월 합계 row를 추가한다.
  120. grd_statslist.addRow();
  121. var rows = grd_statslist.rows;
  122. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "전월합계";
  123. for(var i = 2; i < grd_statslist.cols; i++)
  124. {
  125. for(var j = 3; j < grd_statslist.rows; j++)
  126. {
  127. if ( eval(grd_statslist.valueMatrix(j, i)) > 0 ) {
  128. sum += eval(grd_statslist.valueMatrix(j, i));
  129. }
  130. }
  131. grd_statslist.valueMatrix(j-1, i) = sum;
  132. sum = 0;
  133. }
  134. // 현월 합계 row를 생성한다.
  135. grd_statslist.addRow();
  136. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "현월합계";
  137. for(var i = 2; i < grd_statslist.cols; i++)
  138. {
  139. for(var j = 3; j < grd_statslist.rows-2; j++)
  140. {
  141. if ( eval(grd_statslist.valueMatrix(j, i)) > 0 ) {
  142. sum += eval(grd_statslist.valueMatrix(j, i));
  143. }
  144. }
  145. grd_statslist.valueMatrix(j+1, i) = sum;
  146. sum = 0;
  147. }
  148. // 증감을 계산한다.
  149. grd_statslist.addRow();
  150. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "증감";
  151. for(var i = 2; i < grd_statslist.cols; i++)
  152. {
  153. if (i % 2 != 0) {
  154. grd_statslist.valueMatrix(grd_statslist.rows-1, i) = grd_statslist.valueMatrix(grd_statslist.rows-2, i) - grd_statslist.valueMatrix(grd_statslist.rows-3, i-1);
  155. grd_statslist.valueMatrix(grd_statslist.rows-3, i) = grd_statslist.valueMatrix(grd_statslist.rows-3, i-1);
  156. }
  157. else
  158. grd_statslist.valueMatrix(grd_statslist.rows-1, i) = 0;
  159. }
  160. // 합계 rows 색상 설정
  161. grd_statslist.rowStyle(grd_statslist.rows-3, "data", "background-color") = "#CCFFCC";
  162. grd_statslist.rowStyle(grd_statslist.rows-2, "data", "background-color") = "#CCFFCC";
  163. grd_statslist.rowStyle(grd_statslist.rows-1, "data", "background-color") = "#CCFFCC";
  164. }
  165. /**
  166. * @ver : 2008-02-27
  167. * @desc : 그리드의 데이터를 엑셀로 저장
  168. * @
  169. * @by : 이경희
  170. * @param:
  171. * @return:
  172. * @---------------------------------------------------
  173. */
  174. function fSaveExcel()
  175. {
  176. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  177. if (fileName != "")
  178. {
  179. grd_statslist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  180. }
  181. }