SPMNR05800M.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. /*
  2. IO조회(SMMNR05800.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xPathMemoInfo = "/root/main/memoinfo/memolist";
  7. var xPathCondInfo = "/root/main/cond";
  8. /**
  9. * @group :
  10. * @ver : 2008.07.02
  11. * @by : 양천덕
  12. * @---------------------------------------------------
  13. * @type : function
  14. * @access : public
  15. * @desc : 화면 초기화
  16. * @param :
  17. * @return :
  18. * @---------------------------------------------------
  19. */
  20. function fInitialize(){
  21. model.setValue("/root/main/cond/pid", model.property("pid"));
  22. model.setValue("/root/main/cond/hngnm", model.property("hngnm"));
  23. model.setValue("/root/main/cond/orddd", model.property("indd"));
  24. model.setValue("/root/main/cond/cretno", model.property("cretno"));
  25. model.setValue("/root/main/cond/wardcd", model.property("wardcd"));
  26. model.setValue("/root/main/cond/orddeptnm", model.property("deptnm"));
  27. model.setValue("/root/main/cond/orddrnm", model.property("medispclnm"));
  28. model.setValue("/root/main/cond/sexage", model.property("sexage"));
  29. model.setValue("/root/main/cond/wardroomnm", model.property("wardroomnm"));
  30. model.setValue("/root/main/cond/seardd", "");
  31. if(model.getValue("/root/main/cond/seardd") == ""){
  32. ipt_seardd.value = getCurrentDate();
  33. }
  34. fSearIOInfo();
  35. }
  36. /**
  37. * @group :
  38. * @ver : 2008.07.02
  39. * @by : 양천덕
  40. * @---------------------------------------------------
  41. * @type : function
  42. * @access : public
  43. * @desc : IO정보 조회
  44. * @param :
  45. * @return :
  46. * @---------------------------------------------------
  47. */
  48. function fSearIOInfo(){
  49. model.removeNodeset("/root/main/ioinfo");
  50. model.removeNodeset("/root/main/memoinfo");
  51. opt_breakdietprcpnm.value ="";
  52. opt_lunchdietprcpnm.value ="";
  53. opt_dinnerdietprcpnm.value ="";
  54. model.copyNode("root/send", "root/main/cond");
  55. model.setValue("/root/main/cond/seartodd", getDateCalc(ipt_seardd.value, 1, "+"));
  56. model.makeValue("/root/send/pid", model.getValue("/root/main/cond/pid"));
  57. model.makeValue("/root/send/cretno", model.getValue("/root/main/cond/cretno"));
  58. model.makeValue("/root/send/orddd", model.getValue("/root/main/cond/orddd"));
  59. model.makeValue("/root/send/seardd", model.getValue("/root/main/cond/seardd"));
  60. model.makeValue("/root/send/wardcd", model.getValue("/root/main/cond/wardcd"));
  61. model.makeValue("/root/send/seartodd", model.getValue("/root/main/cond/seartodd"));
  62. model.makeValue("/root/send/memoitemflag", "08");
  63. model.makeValue("/root/send/iochkyn", model.getValue("/root/main/cond/iochkyn"));
  64. //submit("TRMNR05801_SJH");
  65. submit("TRMOB00007");
  66. //alert(String(srcNode.length));
  67. fSettingIOlnfo();
  68. opt_breakdietprcpnm.refresh();
  69. opt_lunchdietprcpnm.refresh();
  70. opt_dinnerdietprcpnm.refresh();
  71. tar_memocnts.refresh();
  72. //alert(cap_breakdietprcpnm.text);
  73. }
  74. /**
  75. * @group :
  76. * @ver : 2008.07.02
  77. * @by : 양천덕
  78. * @---------------------------------------------------
  79. * @type : function
  80. * @access : public
  81. * @desc : 조회 정보 Setting
  82. * @param :
  83. * @return :
  84. * @---------------------------------------------------
  85. */
  86. function fSettingIOlnfo(){
  87. grd_ioinfo.rebuildStyle();
  88. var tRow = grd_ioinfo.rows;
  89. var OralSum = 0;
  90. var DrugSum = 0;
  91. var BloodSum = 0 ;
  92. var EtcSum = 0;
  93. var OutPutSum = 0;
  94. var IntakeTotalSum = 0;
  95. var OutputTotalSum = 0;
  96. var SpecSum = 0;
  97. var StartFlag = "";
  98. var sAddIntakeRow = "";
  99. var IntakeLastRow = 0;
  100. OralSum = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "01" + "' and itemnm = '"+""+"']/total");
  101. DrugSum = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "02" + "' and itemnm = '"+""+"']/total");
  102. BloodSum = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "03" + "' and itemnm = '"+""+"']/total");
  103. EtcSum = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "04" + "' and itemnm = '"+""+"']/total");
  104. OutPutSum = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "07" + "' and itemnm = '"+""+"']/total");
  105. var DaySum1 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "01" + "' and itemnm = '"+""+"']/dayrslt");
  106. var DaySum2 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "02" + "' and itemnm = '"+""+"']/dayrslt");
  107. var DaySum3 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "03" + "' and itemnm = '"+""+"']/dayrslt");
  108. var DaySum4 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "04" + "' and itemnm = '"+""+"']/dayrslt");
  109. var EvnSum1 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "01" + "' and itemnm = '"+""+"']/evnrslt");
  110. var EvnSum2 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "02" + "' and itemnm = '"+""+"']/evnrslt");
  111. var EvnSum3 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "03" + "' and itemnm = '"+""+"']/evnrslt");
  112. var EvnSum4 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "04" + "' and itemnm = '"+""+"']/evnrslt");
  113. var NgtSum1 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "01" + "' and itemnm = '"+""+"']/ngtrslt");
  114. var NgtSum2 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "02" + "' and itemnm = '"+""+"']/ngtrslt");
  115. var NgtSum3 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "03" + "' and itemnm = '"+""+"']/ngtrslt");
  116. var NgtSum4 = model.getValue("/root/main/ioinfo/iolist[lnkbizcd = '" + "04" + "' and itemnm = '"+""+"']/ngtrslt");
  117. if(DaySum1 == "")DaySum1=0;
  118. if(DaySum2 == "")DaySum2=0;
  119. if(DaySum3 == "")DaySum3=0;
  120. if(DaySum4 == "")DaySum4=0;
  121. if(EvnSum1 == "")EvnSum1=0;
  122. if(EvnSum2 == "")EvnSum2=0;
  123. if(EvnSum3 == "")EvnSum3=0;
  124. if(EvnSum4 == "")EvnSum4=0;
  125. if(NgtSum1 == "")NgtSum1=0;
  126. if(NgtSum2 == "")NgtSum2=0;
  127. if(NgtSum3 == "")NgtSum3=0;
  128. if(NgtSum4 == "")NgtSum4=0;
  129. if(tRow > 0){
  130. for(var i = grd_ioinfo.fixedRows ; i <= grd_ioinfo.rows - grd_ioinfo.fixedRows ; i ++){
  131. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("setyn")) == "1"){
  132. IntakeLastRow = i;
  133. }
  134. var param = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("lnkbizcd"));
  135. //수치가 0인 항목 삭제 및 항목명 입력
  136. if(param == "01"){
  137. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  138. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) == "0"){
  139. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) = "";
  140. }else{
  141. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"));
  142. }
  143. }
  144. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  145. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) == "0"){
  146. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) = "";
  147. }else{
  148. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"));
  149. }
  150. }
  151. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  152. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) == "0"){
  153. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) = "";
  154. }else{
  155. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"));
  156. }
  157. }
  158. }else{
  159. if( grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) != "0" ){
  160. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  161. ( param == "03"
  162. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("daycnt")) != "0"
  163. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  164. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("daycnt")) + ")" : "");
  165. }else if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  166. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) = "";
  167. }
  168. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) != "0" ){
  169. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  170. ( param == "03"
  171. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evncnt")) != "0"
  172. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  173. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evncnt")) + ")" : "");
  174. }else if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  175. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) = "";
  176. }
  177. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) == "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) != "0" ){
  178. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  179. ( param == "03"
  180. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtcnt")) != "0"
  181. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  182. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtcnt")) + ")" : "");
  183. }else if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""){
  184. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) = "";
  185. }
  186. }
  187. var fRow = grd_ioinfo.findRow(grd_ioinfo.valueMatrix( i, grd_ioinfo.colRef("lnkbizcd")), 1, grd_ioinfo.colRef("lnkbizcd"));
  188. /*
  189. if(fRow < i ){
  190. //같은 분류의 상위 행 데이터 존재 여부 확인 및 채우기
  191. if( grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) != "" ){
  192. for(var k = fRow ; k < i ; k++){
  193. if(grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("dayrslt")) == "" ){
  194. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("dayrslt")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt"));
  195. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("d_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  196. ( param == "03"
  197. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("daycnt")) != "0"
  198. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  199. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("daycnt")) + ")" : "");
  200. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) = "";
  201. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) = "";
  202. }
  203. }
  204. }
  205. if( grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) != "" ){
  206. for(var k = fRow ; k < i ; k++){
  207. if(grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("evnrslt")) == "" ){
  208. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("evnrslt")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt"));
  209. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("e_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  210. ( param == "03"
  211. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evncnt")) != "0"
  212. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  213. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evncnt")) + ")" : "");
  214. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) = "";
  215. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) = "";
  216. }
  217. }
  218. }else{
  219. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) = "";
  220. }
  221. if( grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != "" && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) != "" ){
  222. for(var k = fRow ; k < i ; k++){
  223. if(grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("ngtrslt")) == "" ){
  224. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("ngtrslt")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt"));
  225. grd_ioinfo.valueMatrix(k, grd_ioinfo.colRef("n_lnkrecflag")) = grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm"))+
  226. ( param == "03"
  227. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtcnt")) != "0"
  228. && grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("itemnm")) != ""
  229. ? " ("+ grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtcnt")) + ")" : "");
  230. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) = "";
  231. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) = "";
  232. }
  233. }
  234. }else{
  235. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) = "";
  236. }
  237. }
  238. */
  239. //구분별 합계 입력(Merge 작업을 하기위하여 머지할 행 데이터 일치시키기 위함)
  240. switch(param){
  241. case "01" :
  242. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("total")) = " " + OralSum;
  243. break;
  244. case "02" :
  245. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("total")) = " " + DrugSum;
  246. break;
  247. case "03" :
  248. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("total")) = " " + BloodSum;
  249. break;
  250. case "04" :
  251. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("total")) = " " + EtcSum;
  252. break;
  253. case "05" :
  254. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("total")) = " " + OutPutSum;
  255. break;
  256. }
  257. //구분필드 색상 변경
  258. grd_ioinfo.cellStyle("background-color", i, grd_ioinfo.colRef("setyn"), i, grd_ioinfo.colRef("lnkbizcd")) = "#ccccff";
  259. //SubTotal Row 색상 변경
  260. if(model.getValue("/root/main/ioinfo/iolist["+i+"]/itemnm") == ""){
  261. grd_ioinfo.cellStyle("background-color", i, grd_ioinfo.colRef("d_lnkrecflag"), i, grd_ioinfo.colRef("subtotal")) = "#ffff99";
  262. }
  263. //Total Output Row 색상변경
  264. if(model.getValue("/root/main/ioinfo/iolist["+i+"]/lnkbizcd") == "07"){
  265. grd_ioinfo.cellStyle("background-color", i, grd_ioinfo.colRef("setyn"), i, grd_ioinfo.colRef("total")) = "#ffff00";
  266. grd_ioinfo.cellStyle("font-size", i, grd_ioinfo.colRef("setyn"), i, grd_ioinfo.colRef("total")) = "12";
  267. grd_ioinfo.cellStyle("font-weight", i, grd_ioinfo.colRef("setyn"), i, grd_ioinfo.colRef("total")) = "bold";
  268. //grd_ioinfo.cellStyle("text-align", i, grd_ioinfo.colRef("total"), i, grd_ioinfo.colRef("total")) = "center";
  269. }
  270. }
  271. //Intake 합계 Row 추가
  272. var intaketotalsetrow = 0;
  273. if(IntakeLastRow > 0){
  274. grd_ioinfo.insertRow(IntakeLastRow, "below", false);
  275. intaketotalsetrow = IntakeLastRow + 1;
  276. }
  277. if(intaketotalsetrow > 0){
  278. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("setyn")) = "06";
  279. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("lnkbizcd")) = "06";
  280. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("dayrslt")) = eval(DaySum1) + eval(DaySum2) + eval(DaySum3)+ eval(DaySum4);
  281. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("evnrslt")) = eval(EvnSum1) + eval(EvnSum2) + eval(EvnSum3)+ eval(EvnSum4);
  282. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("ngtrslt")) = eval(NgtSum1) + eval(NgtSum2) + eval(NgtSum3)+ eval(NgtSum4);
  283. grd_ioinfo.cellStyle("background-color", intaketotalsetrow, grd_ioinfo.colRef("setyn"), intaketotalsetrow, grd_ioinfo.colRef("total")) = "#ffff00";
  284. grd_ioinfo.cellStyle("font-size", intaketotalsetrow, grd_ioinfo.colRef("setyn"), intaketotalsetrow, grd_ioinfo.colRef("total")) = "12";
  285. grd_ioinfo.cellStyle("font-weight", intaketotalsetrow, grd_ioinfo.colRef("setyn"), intaketotalsetrow, grd_ioinfo.colRef("total")) = "bold";
  286. }
  287. // 비고 Row 추가및 계산 정보 입력
  288. var insertRow = 0 ;
  289. var specRow = 0;
  290. var outputtotalsetrow = grd_ioinfo.findRow("07", 1, grd_ioinfo.colRef("setyn"));
  291. if(intaketotalsetrow > 0 && outputtotalsetrow > 0){
  292. grd_ioinfo.insertRow(outputtotalsetrow, "below", false);
  293. specRow = outputtotalsetrow+1;
  294. }
  295. if(specRow > 0 ){
  296. var d_spec = eval(grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("dayrslt"))) - eval(grd_ioinfo.valueMatrix(outputtotalsetrow, grd_ioinfo.colRef("dayrslt")));
  297. var e_spec = eval(grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("evnrslt"))) - eval(grd_ioinfo.valueMatrix(outputtotalsetrow, grd_ioinfo.colRef("evnrslt")));
  298. var n_spec = eval(grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("ngtrslt"))) - eval(grd_ioinfo.valueMatrix(outputtotalsetrow, grd_ioinfo.colRef("ngtrslt")));
  299. var t_spec = eval(d_spec) + eval(e_spec) + eval(n_spec);
  300. d_spec = Math.round(d_spec * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  301. e_spec = Math.round(e_spec * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  302. n_spec = Math.round(n_spec * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  303. t_spec = Math.round(t_spec * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  304. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("setyn")) = "08";
  305. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("lnkbizcd")) = "08";
  306. if(d_spec > 0){
  307. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("dayrslt"))= "+" + d_spec;
  308. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("dayrslt"), specRow, grd_ioinfo.colRef("dayrslt")) = "#ff0000";
  309. }else if(d_spec == 0){
  310. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("dayrslt"))= d_spec;
  311. }else{
  312. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("dayrslt"))= d_spec;
  313. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("dayrslt"), specRow, grd_ioinfo.colRef("dayrslt")) = "#0000ff";
  314. }
  315. if(e_spec > 0){
  316. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("evnrslt"))= "+" + e_spec;
  317. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("evnrslt"), specRow, grd_ioinfo.colRef("evnrslt")) = "#ff0000";
  318. }else if(e_spec == 0){
  319. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("evnrslt"))= e_spec;
  320. }else{
  321. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("evnrslt"))= e_spec;
  322. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("evnrslt"), specRow, grd_ioinfo.colRef("evnrslt")) = "#0000ff";
  323. }
  324. if(n_spec > 0){
  325. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("ngtrslt"))= "+" + n_spec;
  326. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("ngtrslt"), specRow, grd_ioinfo.colRef("ngtrslt")) = "#ff0000";
  327. }else if(n_spec == 0){
  328. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("ngtrslt"))= n_spec;
  329. }else{
  330. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("ngtrslt"))= n_spec;
  331. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("ngtrslt"), specRow, grd_ioinfo.colRef("ngtrslt")) = "#0000ff";
  332. }
  333. if(t_spec > 0){
  334. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("subtotal"))= "+" + t_spec;
  335. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("total"))= "+" + t_spec;
  336. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("subtotal"), specRow, grd_ioinfo.colRef("total")) = "#ff0000";
  337. }else if(t_spec == 0){
  338. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("subtotal"))= t_spec;
  339. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("total"))= t_spec;
  340. }else{
  341. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("subtotal"))= t_spec;
  342. grd_ioinfo.valueMatrix(specRow, grd_ioinfo.colRef("total"))= t_spec;
  343. grd_ioinfo.cellStyle("color", specRow, grd_ioinfo.colRef("subtotal"), specRow, grd_ioinfo.colRef("total")) = "#0000ff";
  344. }
  345. grd_ioinfo.cellStyle("background-color", specRow, grd_ioinfo.colRef("setyn"), specRow, grd_ioinfo.colRef("total")) = "#ffcc99";
  346. grd_ioinfo.cellStyle("font-size", specRow, grd_ioinfo.colRef("setyn"), specRow, grd_ioinfo.colRef("total")) = "12";
  347. grd_ioinfo.cellStyle("font-weight", specRow, grd_ioinfo.colRef("setyn"), specRow, grd_ioinfo.colRef("total")) = "bold";
  348. }
  349. //그리드 선택 제어 부분
  350. grd_ioinfo.row = 0;
  351. grd_ioinfo.isReadOnly(grd_ioinfo.fixedrows, grd_ioinfo.fixedcols, grd_ioinfo.rows-1, grd_ioinfo.cols-1) = true;
  352. //그리드 머지 작업
  353. //[컴스퀘어][추가] grid merge 의 설정후 한번에 처리
  354. grd_ioinfo.autoMerge = false;
  355. //[컴스퀘어][추가]grid의 자동머지 기능을 false 한다.
  356. grd_ioinfo.mergeCells = "bycolrec"; // byrestriccol byrestricrow
  357. grd_ioinfo.mergeCol(0) = true;
  358. grd_ioinfo.mergeCol(1) = true;
  359. grd_ioinfo.mergeCol(2) = false;
  360. grd_ioinfo.mergeCol(3) = false;
  361. grd_ioinfo.mergeCol(4) = false;
  362. grd_ioinfo.mergeCol(5) = false;
  363. grd_ioinfo.mergeCol(6) = false;
  364. grd_ioinfo.mergeCol(7) = false;
  365. grd_ioinfo.mergeCol(8) = false;
  366. grd_ioinfo.mergeCol(9) = true;
  367. //Total Intake 합계 데이터 입력(Merge로 인하여 제일 하단에 추가)
  368. if(intaketotalsetrow > 0){
  369. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("subtotal")) = " " + Math.round((eval(DaySum1) + eval(DaySum2) + eval(DaySum3)+ eval(DaySum4) + eval(EvnSum1) + eval(EvnSum2) + eval(EvnSum3)+ eval(EvnSum4) + eval(NgtSum1) + eval(NgtSum2) + eval(NgtSum3)+ eval(NgtSum4)) * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  370. grd_ioinfo.valueMatrix(intaketotalsetrow, grd_ioinfo.colRef("total")) = " " + Math.round((eval(DaySum1) + eval(DaySum2) + eval(DaySum3)+ eval(DaySum4) + eval(EvnSum1) + eval(EvnSum2) + eval(EvnSum3)+ eval(EvnSum4) + eval(NgtSum1) + eval(NgtSum2) + eval(NgtSum3)+ eval(NgtSum4)) * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  371. }
  372. }
  373. for(var i = grd_ioinfo.fixedRows ; i <= grd_ioinfo.rows - grd_ioinfo.fixedRows ; i ++){
  374. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) == ""){
  375. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("d_lnkrecflag")) ="";
  376. }
  377. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) == ""){
  378. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("e_lnkrecflag")) ="";
  379. }
  380. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) == "" ){
  381. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("n_lnkrecflag")) ="";
  382. }
  383. }
  384. //수치량이 존재하지 않는 Row 삭제
  385. for(var i = grd_ioinfo.fixedRows ; i <= grd_ioinfo.rows - grd_ioinfo.fixedRows ; i ++){
  386. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) == "07"){
  387. grd_ioinfo.mergeRow(i) = true;
  388. }
  389. if(grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("dayrslt")) == "" &&
  390. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("evnrslt")) == "" &&
  391. grd_ioinfo.valueMatrix(i, grd_ioinfo.colRef("ngtrslt")) == "" ){
  392. grd_ioinfo.deleteRow(i);
  393. i = i-1;
  394. }
  395. }
  396. model.refresh();
  397. //[컴스퀘어][추가]설정된 값을 merge함수로 한번에 적용한다
  398. grd_ioinfo.merge();
  399. }
  400. ///////////////////////////////////////
  401. //CareCom.js
  402. ///////////////////////////////////////
  403. /**
  404. * @group :
  405. * @ver : 2007.05.15
  406. * @by :
  407. * @---------------------------------------------------
  408. * @type : function
  409. * @access : public
  410. * @desc : 구분자로 분리된 특정자료를 Reading
  411. * @param : pData : 원본데이터
  412. * @param : pRow : 찾고자 하는 위치의 row
  413. * @param : pCol : 찾고자 하는 위치의 column
  414. * @return : 해당 row, column의 문자열
  415. * @---------------------------------------------------
  416. */
  417. function getArrayData(pData, pRow, pCol, pRowSep, pColSep){
  418. var rowSep = (pRowSep == null || pRowSep =="" ? "▩" :pRowSep ); // row 구분자
  419. var colSep = (pColSep == null || pColSep =="" ? "▦" :pColSep ); // column 구분자
  420. var arrRow = pData.split(rowSep);
  421. if(arrRow.length <= pRow) return "";
  422. var arrCol = arrRow[pRow].split(colSep);
  423. if(arrCol.length <= pCol) return "";
  424. return arrCol[pCol];
  425. }
  426. /**
  427. * @group :
  428. * @ver : 2007.05.01
  429. * @by : 이은영
  430. * @---------------------------------------------------
  431. * @type : function
  432. * @access : public
  433. * @desc : 날짜 계산(기준일자를 기준으로 입력일자만큼 전 날짜를 찾아오기)
  434. ex) getDateCalc("20070501",6)
  435. * @param : pDate : 기준 날짜
  436. * @param : pDay : 일자
  437. * @param : pFlag : "-" - 전 날짜, "+" - 이후 날짜 (default : "-")
  438. * @return : String : 날짜
  439. * @---------------------------------------------------
  440. */
  441. function getDateCalc(pDate, pDay, pFlag){
  442. var sDay = new Date(pDate.substr(0,4),pDate.substr(4,2)-1,pDate.substr(6,2));
  443. if(pFlag == null || pFlag == ""){
  444. pFlag = "-";
  445. }
  446. if(pFlag == "-"){
  447. sDay.setDate(sDay.getDate()-parseInt(pDay));
  448. }else if(pFlag == "+"){
  449. sDay.setDate(sDay.getDate()+parseInt(pDay));
  450. }
  451. var sYear = sDay.getFullYear();
  452. var sMonth = sDay.getMonth()+1;
  453. var sday = sDay.getDate();
  454. if(sMonth < 10) sMonth = "0"+sMonth;
  455. if(sday < 10) sday = "0"+sday;
  456. return sYear.toString()+sMonth.toString()+sday.toString();
  457. }