SMMRS01100.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - 외래초진통계 ( SMMRS01100_외래초진통계.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. var fromdd = ((getCurrentDate()).toDate()).getAddDate(-1, "M");
  25. model.setValue("/root/main/fromdd" ,fromdd.getDateFormat());
  26. model.setValue("/root/main/todd" ,getCurrentDate());
  27. var searchStart = model.getValue("/root/main/fromdd");
  28. var StartDate = fChangeDate(searchStart, 1); // DB 쿼리의 조회 조건을 설정
  29. var searchEnd = model.getValue("/root/main/todd");
  30. var EndDate = fChangeDate(searchEnd, 0);
  31. model.setValue("/root/send/searchstartdate" , searchStart);
  32. model.setValue("/root/main/fromdd" , searchStart);
  33. model.setValue("/root/send/searchenddate" , searchEnd);
  34. model.setValue("/root/main/todd" , searchEnd);
  35. grd_statslist.colstyle(0,"data","color")="#6464ff";
  36. grd_statslist.colHidden(1) = true;
  37. for (var i = 1; i < grd_statslist.cols-3; i++)
  38. {
  39. if (i % 2 == 0)
  40. {
  41. grd_statslist.colHidden(i) = true;
  42. }
  43. }
  44. model.refresh();
  45. }
  46. /**
  47. * @ver : 2008-02-27
  48. * @desc : 버튼 컨트롤들을 클릭했을때 공통으로 타는 함수입니다.
  49. * @ control : "search" 는 조회 버튼 클릭 "init"은 신규 버튼 클릭, "save"는 저장 버튼 클릭
  50. * @ grid : 그리드 컨트롤을 넘겨줍니다, param : 기타 param을 넘겨줍니다.
  51. * @by
  52. * @param:
  53. * @return:
  54. * @---------------------------------------------------
  55. */
  56. function fClicked(control, grid, param){
  57. if ("search" == control){
  58. fSearchClick(grid, param);
  59. model.resetInstanceNode("/root/send");
  60. } else if ("init" == control){
  61. model.reset();
  62. } else {
  63. messageBox("처리를 수행","E002");
  64. }
  65. model.refresh();
  66. }
  67. function fSearchClick(grid,param){
  68. model.removeNodeset("/root/main/item/grid");
  69. grid.rebuild();
  70. model.resetInstanceNode("/root/send");
  71. model.setValue("/root/send/searchstartdate", model.getValue("/root/main/fromdd") );
  72. model.setValue("/root/send/searchenddate", model.getValue("/root/main/todd") );
  73. model.setValue("/root/send/startcondition", model.getValue("/root/main/condition_start") );
  74. model.setValue("/root/send/endcondition", model.getValue("/root/main/condition_end") );
  75. submit("TRMRS01001");
  76. }
  77. /**
  78. * @ver : 2008-02-27
  79. * @desc : 외래환자현황 조회시 입력한 달의 년월일을 변수로 입력받아 인스턴스 변수의
  80. condition_start, condition_end 변수에 값을 할당, DB쿼리의 조건 변수에 사용한다.
  81. * @
  82. * @by : 이경희
  83. * @param: 1) inputString - 입력한 년월일(예: 20080101)
  84. 2) bStart 1 - 조회 시작 월인 경우
  85. 0 - 조회 종료 월인 경우
  86. * @return:
  87. * @---------------------------------------------------
  88. */
  89. function fChangeDate(inputString, bStart)
  90. {
  91. var cutStr = inputString.substr(0,6);
  92. if(bStart)
  93. {
  94. var cond = eval(cutStr.substr(0, 6)); // 20080101 형식이기 때문에 200801 까지 스트링을 자름
  95. cond += "%";
  96. ipt_fromdd.refresh();
  97. model.setValue("/root/main/condition_start", cond);
  98. }
  99. else
  100. {
  101. var cond = eval(cutStr.substr(0, 6));
  102. cond += "%";
  103. ipt_todd.refresh();
  104. model.setValue("/root/main/condition_end", cond);
  105. }
  106. }
  107. /**
  108. * @ver : 2008-02-27
  109. * @desc : 외래환자현황 조회시 입력한 달의 년월일을 변수로 입력받아 조건이 올바른지 확인한다.
  110. * @
  111. * @by : 이경희
  112. * @param: 1) StartDate - 조회 시작 년월일
  113. 2) EndDate - 조회 종료 년월일
  114. * @return:
  115. * @---------------------------------------------------
  116. */
  117. function fValidDate(StartDate, EndDate)
  118. {
  119. var dateInterval = eval(getDateInterval(StartDate, EndDate));
  120. if ( dateInterval < 0 )
  121. {
  122. messageBox("조회 기간이 맞지 않습니다. 조회 기간을 다시", "C002");
  123. return false;
  124. }
  125. return true;
  126. }
  127. /*
  128. function fPrevMonthSum()
  129. {
  130. grd_statslist.subtotalposition="below";
  131. grd_statslist.multiTotals = true;
  132. for(var i = 1; i<= grd_statslist.cols; i++)
  133. {
  134. grd_statslist.subtotal("sum", -1, i, "#,###", "background-color:#99ff99", 0, "전월합계");
  135. }
  136. var count = grd_statslist.rows-2;
  137. var col_no = 18;
  138. var interval = 16;
  139. grd_statslist.cellstyle("background-color", 3, col_no, count, col_no + 1) = "#c4ffc4";
  140. grd_statslist.cellstyle("background-color", 3, (col_no + 1 + interval + 1), count, (col_no + 1 + interval + 1) + 1) = "#c4ffc4";
  141. grd_statslist.cellstyle("background-color", 3, (col_no*2 + 1 + interval + 1), count, (col_no*2 + 1 + interval + 1 + 1)) = "#c4ffc4";
  142. }
  143. */
  144. /**
  145. * @ver : 2008-02-27
  146. * @desc : 그리드에 데이터를 뿌려준 후에 이 함수를 실행하여 전월합계, 현월합계, 증감을 계산하여 보여준다.
  147. * @
  148. * @by : 이경희
  149. * @param :
  150. * @return :
  151. * @---------------------------------------------------
  152. */
  153. function fCalculateStats()
  154. {
  155. var sum = 0;
  156. grd_statslist.multiTotals = true;
  157. // 전월 합계 row를 추가한다.
  158. grd_statslist.addRow();
  159. var rows = grd_statslist.rows;
  160. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "전월합계";
  161. for(var i = 2; i < grd_statslist.cols; i++)
  162. {
  163. for(var j = 3; j < grd_statslist.rows; j++)
  164. {
  165. if ( eval(grd_statslist.valueMatrix(j, i)) > 0 ) {
  166. sum += eval(grd_statslist.valueMatrix(j, i));
  167. }
  168. }
  169. grd_statslist.valueMatrix(j-1, i) = sum;
  170. sum = 0;
  171. }
  172. // 현월 합계 row를 생성한다.
  173. grd_statslist.addRow();
  174. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "현월합계";
  175. for(var i = 2; i < grd_statslist.cols; i++)
  176. {
  177. for(var j = 3; j < grd_statslist.rows-2; j++)
  178. {
  179. if ( eval(grd_statslist.valueMatrix(j, i)) > 0 ) {
  180. sum += eval(grd_statslist.valueMatrix(j, i));
  181. }
  182. }
  183. grd_statslist.valueMatrix(j+1, i) = sum;
  184. sum = 0;
  185. }
  186. // 증감을 계산한다.
  187. grd_statslist.addRow();
  188. grd_statslist.valueMatrix(grd_statslist.rows-1, 0) = "증감";
  189. for(var i = 2; i < grd_statslist.cols; i++)
  190. {
  191. if (i % 2 != 0) {
  192. 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);
  193. grd_statslist.valueMatrix(grd_statslist.rows-3, i) = grd_statslist.valueMatrix(grd_statslist.rows-3, i-1);
  194. }
  195. else
  196. grd_statslist.valueMatrix(grd_statslist.rows-1, i) = 0;
  197. }
  198. // 합계 rows 색상 설정
  199. grd_statslist.rowStyle(grd_statslist.rows-3, "data", "background-color") = "#CCFFCC";
  200. grd_statslist.rowStyle(grd_statslist.rows-2, "data", "background-color") = "#CCFFCC";
  201. grd_statslist.rowStyle(grd_statslist.rows-1, "data", "background-color") = "#CCFFCC";
  202. }
  203. /**
  204. * @ver : 2008-02-27
  205. * @desc : 그리드의 데이터를 엑셀로 저장
  206. * @
  207. * @by : 이경희
  208. * @param:
  209. * @return:
  210. * @---------------------------------------------------
  211. */
  212. function fSaveExcel()
  213. {
  214. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  215. if (fileName != "")
  216. {
  217. grd_statslist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  218. }
  219. }