SSSTC00100.xjs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. var curDate = utlf_getCurrentDate();
  4. var sORDERBY = "desc";
  5. curDate = curDate.toDate().getAddDate(-1,"D");
  6. var gBasedd = curDate.getFullYear();
  7. gBasedd = gBasedd.toString() + (( curDate.getMonth() + 1 > 9 ) ? curDate.getMonth() + 1 : "0" + (curDate.getMonth() + 1));
  8. gBasedd = gBasedd.toString() + (( curDate.getDate() > 9 ) ? curDate.getDate() : "0" + curDate.getDate()) ;
  9. var gUserid = sysf_getUserId();
  10. var SSSTC00300_Form = "";
  11. //화면 초기화 이벤트
  12. function fInitialize()
  13. {
  14. ds_send.clearData();
  15. ds_send.addRow();
  16. var Menu = String(frmf_getMenuParam());
  17. var gScrParmL = Menu.substr(0,2); //대분류
  18. var gScrParmM = Menu.substr(2,2); //중분류
  19. var gScrParmS = Menu.substr(4,2); //소분류
  20. var gScrParmR = Menu.substr(6,7); //화면 ID
  21. /*
  22. var gScrParmL = '02';
  23. var gScrParmM = '01';
  24. var gScrParmS = '19';
  25. var gScrParmR = 'RR00233';
  26. var gScrParmL = '03'
  27. var gScrParmM = '02';
  28. var gScrParmS = '01';
  29. var gScrParmR = 'RR00756';
  30. var gScrParmL = '03';
  31. var gScrParmM = '02';
  32. var gScrParmS = '01';
  33. var gScrParmR = 'RR00756';
  34. var gScrParmL = '03';
  35. var gScrParmM = '02';
  36. var gScrParmS = '03';
  37. var gScrParmR = 'RR01139';
  38. var gScrParmL = '03';
  39. var gScrParmM = '02';
  40. var gScrParmS = '05';
  41. var gScrParmR = 'RR01147';
  42. var gScrParmL = '03';
  43. var gScrParmM = '04';
  44. var gScrParmS = '03';
  45. var gScrParmR = 'RR01142';
  46. var gScrParmL = '03';
  47. var gScrParmM = '04';
  48. var gScrParmS = '02';
  49. var gScrParmR = 'RR01146';
  50. var gScrParmL = '03';
  51. var gScrParmM = '04';
  52. var gScrParmS = '03';
  53. var gScrParmR = 'RR01142';
  54. */
  55. var sForm = dgrd_rpt.getFormatString();
  56. dgrd_rpt.userdata = sForm;
  57. trace(sForm)
  58. ds_send.setColumn( 0, "in_lrgcd", gScrParmL );
  59. ds_send.setColumn( 0, "in_mdlcd", gScrParmM );
  60. ds_send.setColumn( 0, "in_smlcd", gScrParmS );
  61. ds_send.setColumn( 0, "in_rptcd", gScrParmR );
  62. var oParam = {};
  63. oParam.id = "TRSTC00401";
  64. oParam.service = "stscomapp.StsCom";
  65. oParam.method = "reqGetStsComCode";
  66. oParam.inds = "req=ds_send";
  67. oParam.outds = "ds_init_rptInfo_rptInfoList=rptInfoList";
  68. oParam.async = false;
  69. tranf_submit(oParam);
  70. ds_init_rptm_rpt_rptcd.setColumn( 0, "rptnm", ds_init_rptInfo_rptInfoList.getColumn(0, "rptnm") ); //화면 이름
  71. ds_init_rptm_rpt_rptcd.setColumn( 0, "rptcd", ds_init_rptInfo_rptInfoList.getColumn(0, "rptcd")); //화면 CODE
  72. //2011.06.17
  73. dsf_makeValue( ds_send, "instcd", "string", ds_init_rptInfo_rptInfoList.getColumn(0, "instcd"));
  74. group1.cb_rpt.index = 0;
  75. var today = utlf_getCurrentDate()
  76. ds_hide_etc.setColumn( 0, "today", today );
  77. ds_send.setColumn( 0, "in_fromdd", gBasedd );
  78. ds_send.setColumn( 0, "in_todd", gBasedd );
  79. ds_send.setColumn( 0, "in_fromdd2",gBasedd );
  80. ds_send.setColumn( 0, "in_todd2", gBasedd );
  81. fGetStsRptInfo(); // 화면 초기화에 보이는 라벨이나 버튼 세팅
  82. }
  83. function fGetStsRptInfo()
  84. {
  85. var visibilityindex = 0
  86. var gScrParmR = String(frmf_getMenuParam()).substr(6,7);
  87. for( var i = 1 ; ds_init_rptInfo_rptInfoList.getColumn(0, "cond" + i ) != "--" ; i++)
  88. {
  89. if (utlf_isNull(ds_init_rptInfo_rptInfoList.getColumn(0, "cond" + i))) break;
  90. ds_init_rptm_cond_cond.clearData();
  91. ds_init_rptm_cond_cond.addRow();
  92. var cond = ds_init_rptInfo_rptInfoList.getColumn(0, "cond" +i) ;
  93. ds_send_cond.setColumn( 0, "condnum", cond);
  94. var oParam = {};
  95. oParam.id = "TRSTC00402";
  96. oParam.service = "stscomapp.StsCom";
  97. oParam.method = "reqGetStsRptCond";
  98. oParam.inds = "req=ds_send_cond";
  99. oParam.outds = "ds_init_rptm_cond_cond=condcd";
  100. oParam.async = false;
  101. tranf_submit(oParam);
  102. dsf_createDs("ds_init_rptm_cond_cond"+i+"_condcd");
  103. eval("ds_init_rptm_cond_cond"+i+"_condcd").copyData(ds_init_rptm_cond_cond);
  104. //2012/04/19 Start
  105. var rptcd = ds_init_rptm_rpt_rptcd.getColumn(0, "rptcd");
  106. if(rptcd=="RR00226")
  107. { //보험유형별 입원환자현황일시에 병동이 안보이도록 수정
  108. }
  109. else if(rptcd=="RR00250")
  110. { //응급실 보험유형별 입실현황
  111. }
  112. else
  113. {
  114. visibilityindex = i;
  115. }
  116. }
  117. fCondVisibleYN(visibilityindex);
  118. }
  119. function fCondVisibleYN(visibilityindex )
  120. {
  121. var activeGrp = 0;
  122. var rptcd = ds_init_rptm_rpt_rptcd.getColumn(0, "rptcd");
  123. for ( var k = 1 ; k <= 50 ; k++ )
  124. {
  125. group_id = "group_c" + k;
  126. if (!this.components[group_id])
  127. {
  128. break;
  129. }
  130. ObjGrp = this.components[group_id];
  131. if (ObjGrp.visible = true) //.attribute("visibility") == "visible" )
  132. {
  133. activeGrp = k;
  134. break;
  135. }
  136. }
  137. for ( var i = 1; i <= visibilityindex; i++ )
  138. {
  139. cond_id = "cb_cond" + i + "_" + activeGrp;
  140. ObjCond = this.ObjGrp.components[cond_id];
  141. ObjCond.innerdataset = "ds_init_rptm_cond_cond"+i+"_condcd";
  142. ObjCond.datacolumn = "nm";
  143. ObjCond.codecolumn = "cd";
  144. ObjCond.visible = true;
  145. if(sysf_getObjType(ObjCond) == "Combo")
  146. {
  147. ObjCond.index = 0;
  148. ObjCond.onitemchanged.fireEvent(ObjCond, new ItemChangeEventInfo);
  149. //RPTCD가 RR00262이면 심사자 전체 선택되도록 in_cond4 00으로 세팅되도록 수정 by 설승민 2020/04/03
  150. if(rptcd=="RR00262"){
  151. ds_send.setColumn(0,"in_cond4","00");
  152. }
  153. }
  154. cond_cp = "cp_text" + i + "_" + activeGrp;
  155. ObjCond = this.ObjGrp.components[cond_cp];
  156. ObjCond.text = eval("ds_init_rptm_cond_cond" + i + "_condcd").getColumn(0, "mdlnm");
  157. ObjCond.visible = true;
  158. }
  159. fShowGridForm(visibilityindex,activeGrp);
  160. }
  161. function fShowGridForm(visibilityindex,activeGrp)
  162. {
  163. dgrd_rpt.formats = dgrd_rpt.userdata;
  164. var iColWidth = 20; //group1.dgrd_rpt.attribute("colwidth");
  165. var sGridTitle = ds_init_rptInfo_rptInfoList.getColumn(0, "rpttitle"); // 그리드의 칼럼 제목
  166. var sGridSize = ds_init_rptInfo_rptInfoList.getColumn(0, "rptsize"); // 그리드의 칼럼 사이즈
  167. var sGridRpstcd = ds_init_rptInfo_rptInfoList.getColumn(0,"rptcd");
  168. var iOldGrdColCnt = dgrd_rpt.getFormatColCount(); //group1.dgrd_rpt.cols; // 기본 그리드의 칼럼 갯수
  169. ds_init_rptm_grid_ret.clearData();
  170. // setgridcaption() 함수 합침. -> 화면 로드시 grid 동적 생성 하도록 수정함
  171. if (ds_send.getColumn(0, "in_rptcd") == "RR00701")
  172. {
  173. // 일보
  174. if ( ds_send.getColumn(0, "in_cond1") == "01" )
  175. {
  176. dgrd_rpt.setFormatColProperty(6, "size", 0); //dgrd_rpt.setFormatColProperty( 6, "size", 0);
  177. dgrd_rpt.setFormatColProperty(7, "size", 0); //dgrd_rpt.setFormatColProperty( 7, "size", 0);
  178. dgrd_rpt.setFormatColProperty(8, "size", 0); //dgrd_rpt.setFormatColProperty( 8, "size", 0);
  179. dgrd_rpt.setFormatColProperty(9, "size", 0); //dgrd_rpt.setFormatColProperty( 9, "size", 0);
  180. dgrd_rpt.setFormatColProperty(10, "size", 0); //dgrd_rpt.setFormatColProperty( 10, "size", 0);
  181. var enddd = String(ds_send.getColumn(0, "in_fromdd"));
  182. sGridTitle = "구분^구분^명칭^"+enddd.substr(4,2)+"월 "+enddd.substr(6,2)+"일"+"^월누계^일평균|구분^구분^명칭^"+getweekday(enddd)+"^월누계^일평균";
  183. } // 월보
  184. else if ( ds_send.getColumn(0, "in_cond1") == "02" )
  185. {
  186. dgrd_rpt.setFormatColProperty(6, "size", 20); //dgrd_rpt.setFormatColProperty( 6, "size", XXX_defSize);
  187. dgrd_rpt.setFormatColProperty(7, "size", 20); //dgrd_rpt.setFormatColProperty( 7, "size", XXX_defSize);
  188. dgrd_rpt.setFormatColProperty(8, "size", 20); //dgrd_rpt.setFormatColProperty( 8, "size", XXX_defSize);
  189. dgrd_rpt.setFormatColProperty(9, "size", 20); //dgrd_rpt.setFormatColProperty( 9, "size", XXX_defSize);
  190. dgrd_rpt.setFormatColProperty(10, "size", 20); //dgrd_rpt.setFormatColProperty( 10, "size", XXX_defSize);
  191. var enddd = String(ds_send.getColumn(0, "in_fromdd"));
  192. var benddd1 = enddd.toDate("YYYYMMDD");
  193. var benddd2 = enddd.toDate("YYYYMMDD");
  194. benddd1 = benddd1.getAddDate(-1,"M").getDateFormat("YYYYMMDD") ;
  195. benddd2 = benddd2.getAddDate(-1,"Y").getDateFormat("YYYYMMDD") ;
  196. sGridTitle = "구분^구분^명칭^"+enddd.substr(0,4)+"년 "+enddd.substr(4,2)+"월"+"^일평균^전월^전월^전월^전년동월^전년동월^전년동월|구분^구분^명칭^"+enddd.substr(0,4)+"년 "+enddd.substr(4,2)+"월"+"^일평균^"+benddd1.substr(0,4)+"년 "+benddd1.substr(4,2)+"월"+"^증감^증감율^"+benddd2.substr(0,4)+"년 "+benddd2.substr(4,2)+"월"+"^증감^증감율";
  197. } //년보
  198. else if ( ds_send.getColumn(0, "in_cond1") == "03" )
  199. {
  200. dgrd_rpt.setFormatColProperty(6, "size", 20); //dgrd_rpt.setFormatColProperty( 6, "size", XXX_defSize);
  201. dgrd_rpt.setFormatColProperty(7, "size", 0); //dgrd_rpt.setFormatColProperty( 7, "size", 0);
  202. dgrd_rpt.setFormatColProperty(8, "size", 0); //dgrd_rpt.setFormatColProperty( 8, "size", 0);
  203. dgrd_rpt.setFormatColProperty(9, "size", 0); //dgrd_rpt.setFormatColProperty( 9, "size", 0);
  204. dgrd_rpt.setFormatColProperty(10, "size", 0); //dgrd_rpt.setFormatColProperty( 10, "size", 0);
  205. var enddd = String(ds_send.getColumn(0, "in_fromdd"));
  206. var benddd1 = enddd.toDate("YYYYMMDD");
  207. var benddd2 = enddd.toDate("YYYYMMDD");
  208. benddd1 = benddd1.getAddDate(-1,"M").getDateFormat("YYYYMMDD") ;
  209. benddd2 = benddd2.getAddDate(-1,"Y").getDateFormat("YYYYMMDD") ;
  210. sGridTitle = "구분^구분^명칭^"+enddd.substr(0,4)+"년"+"^전년^전년^전년|구분^구분^명칭^"+enddd.substr(0,4)+"년"+"^"+benddd1.substr(0,4)+"년"+"^증감^증감율";
  211. }
  212. }
  213. else if (ds_send.getColumn(0, "in_rptcd") == "RR00702")
  214. {
  215. var enddd = String(ds_send.getColumn(0, "in_fromdd"));
  216. var enddd1 = enddd;
  217. var weekday1 = getweekday(enddd1);
  218. enddd1=enddd1.substr(4,2)+"월 "+enddd1.substr(6,2)+"일";
  219. var enddd2 = enddd.toDate("YYYYMMDD").getAddDate(1,"D").getDateFormat("YYYYMMDD");
  220. var weekday2 = getweekday(enddd2);
  221. enddd2=enddd2.substr(4,2)+"월 "+enddd2.substr(6,2)+"일";
  222. var enddd3 = enddd.toDate("YYYYMMDD").getAddDate(2,"D").getDateFormat("YYYYMMDD");
  223. var weekday3 = getweekday(enddd3);
  224. enddd3=enddd3.substr(4,2)+"월 "+enddd3.substr(6,2)+"일";
  225. var enddd4 = enddd.toDate("YYYYMMDD").getAddDate(3,"D").getDateFormat("YYYYMMDD");
  226. var weekday4 = getweekday(enddd4);
  227. enddd4=enddd4.substr(4,2)+"월 "+enddd4.substr(6,2)+"일";
  228. var enddd5 = enddd.toDate("YYYYMMDD").getAddDate(4,"D").getDateFormat("YYYYMMDD");
  229. var weekday5 = getweekday(enddd5);
  230. enddd5=enddd5.substr(4,2)+"월 "+enddd5.substr(6,2)+"일";
  231. var enddd6 = enddd.toDate("YYYYMMDD").getAddDate(5,"D").getDateFormat("YYYYMMDD");
  232. var weekday6 = getweekday(enddd6);
  233. enddd6=enddd6.substr(4,2)+"월 "+enddd6.substr(6,2)+"일";
  234. var enddd7 = enddd.toDate("YYYYMMDD").getAddDate(6,"D").getDateFormat("YYYYMMDD");
  235. var weekday7 = getweekday(enddd7);
  236. enddd7=enddd7.substr(4,2)+"월 "+enddd7.substr(6,2)+"일";
  237. sGridTitle = "구분^구분^명칭^"+enddd1+"^"+enddd2+"^"+enddd3+"^"+enddd4+"^"+enddd5+"^"+enddd6+"^"+enddd7+"^합계^합계^합계^일평균^일평균^일평균|구분^구분^명칭^"+weekday1+"^"+weekday2+"^"+weekday3+"^"+weekday4+"^"+weekday5+"^"+weekday6+"^"+weekday7+"^금주^벤치마크^증감^금주^벤치마크^증감"
  238. }
  239. var titleArr = sGridTitle.split("|"); // '|'로 입력된 Head값 처리를 위해 변경함 kimdo3, 2017-03-25
  240. var refarr = new Array(); //titleArr[0].split("^"); // 그리드의 칼럼제목 갯수
  241. var sizearr = sGridSize.split(","); // 그리드의 칼럼 사이즈 갯수
  242. var pid = ""; //group1.dgrd_rpt.attribute("");
  243. dgrd_rpt.visible = false;
  244. if(titleArr.length > 1)
  245. { // 1 이상일 경우에 Head를 추가함.
  246. for(var i = 1; i < titleArr.length; i++)
  247. { // 그래서 1부터 시작함.
  248. dgrd_rpt.appendContentsRow("head");
  249. }
  250. }
  251. // 그리드의 칼럼 제목을 DB에서 가져온걸로 셋팅
  252. for(var i = 0; i < titleArr.length; i++)
  253. { // '|'로 이중 이상 나온 것도 처리하기 위해 추가함.
  254. var _titleArr = titleArr[i].split("^"); // 한Row의 Head Title을 얻기 위한 Split
  255. for(j = 0 ; j < _titleArr.length; j++)
  256. { // 각 Row의 Head Title을 refarr[전체 Header를 관리하기 위한 1차원 배열]에 저장.
  257. refarr[i * _titleArr.length + j] = _titleArr[j]; // 현재의 위치를 각각의 위치값을 계산하여 저장하기 (문제점. Array - _titleArr.length가 다른 경우 오류 발생 가능성 존재)
  258. }
  259. }
  260. var headOneRowCellCnt = (dgrd_rpt.getCellCount("head") / titleArr.length); // 각 Head Row의 갯수를 구하기 위해
  261. var refarrLoopCnt = refarr.length / titleArr.length; // refarr에서 Head Row 수 만큼 반복하여 얻기 위한 상수값.
  262. for( var k = 0 ; k < titleArr.length; k++)
  263. { // 전체 Head Row 수 만큼 반복
  264. for(var i = 0; i < headOneRowCellCnt ; i++)
  265. { // Grid상의 실제 Head Column Count
  266. if( i < refarrLoopCnt )
  267. { // 실제 Title Array에서 한 Head Row의 Column 갯수를 의미함
  268. dgrd_rpt.setCellProperty("head", (k * headOneRowCellCnt + i), "text", refarr[ k * refarrLoopCnt + i]);
  269. dgrd_rpt.setCellProperty("head", (k * headOneRowCellCnt + i), "wordwrap", "char");
  270. }
  271. }
  272. }
  273. for(var i = 0, size= (refarr.length / titleArr.length) ; i < size; i++)
  274. { // 루푸를 돌면서 칼럼 제목에 맞게 설정한 칼럼 사이즈를 셋팅
  275. dgrd_rpt.setFormatColProperty( i, "size", sizearr[i]);
  276. }
  277. for (var i = sizearr.length ; i < iOldGrdColCnt ; i++)
  278. { // 셋팅된 칼럼의 갯수보다 기본 그리드의 칼럼 갯수가 많다면 뒷쪽의 칼럼을 히든 처리
  279. dgrd_rpt.setFormatColProperty( i, "size", "0"); //group1.dgrd_rpt.colHidden(i) = true;
  280. }
  281. dgrd_rpt.visible = true;
  282. //그리드 헤드 merge
  283. grdTitleMerge(dgrd_rpt);
  284. }
  285. function fGetGridData()
  286. {
  287. var sGridTitle = ds_init_rptInfo_rptInfoList.getColumn(0, "rpttitle");
  288. var sGridleft = String(ds_init_rptInfo_rptInfoList.getColumn(0, "left"));
  289. var sGridmiddle = String(ds_init_rptInfo_rptInfoList.getColumn(0, "middle"));
  290. var sGridTitle = sGridTitle.split("|");
  291. var refarr = sGridTitle[0].split("^");
  292. var col_idx;
  293. var col_num;
  294. var col_len = 0;
  295. var left = sGridleft.split("^");
  296. var middle = sGridmiddle.split("^");
  297. ds_init_rptm_grid_ret.clearData();
  298. var oParam = {};
  299. oParam.id = "TRSTC00300";
  300. oParam.service = "stscomapp.StsCom";
  301. oParam.method = "reqGetGridData";
  302. oParam.inds = "req=ds_send";
  303. oParam.outds = "ds_init_rptm_grid_ret=ret ds_init_rptm_grid_ret_cmmt=ret_cmmt";
  304. oParam.async = false;
  305. oParam.callback = "cf_TRSTC00300";
  306. tranf_submit(oParam);
  307. for(var i = 0; i < refarr.length ; i++)
  308. {
  309. dgrd_rpt.setCellProperty("Body", i, "align", "right middle");
  310. }
  311. for(var i = 0 ; i < left.length ; i++)
  312. {
  313. dgrd_rpt.setCellProperty("Body", parseInt(left[i]-1), "align", "left middle");
  314. }
  315. for(var i = 0 ; i < middle.length ; i++)
  316. {
  317. dgrd_rpt.setCellProperty("Body", parseInt(middle[i]-1), "align", "center middle");
  318. }
  319. if ( !utlf_isNull(ds_init_rptInfo_rptInfoList.getColumn(0, "funckind")))
  320. {
  321. for(var i = 0; i < parseInt(ds_init_rptInfo_rptInfoList.getColumn(0, "funckind")); i++)
  322. {
  323. dgrd_rpt.setFormatColProperty(i, "band", "left");
  324. }
  325. }
  326. if( ds_send.getColumn(0, "in_rptcd") == "RR00233")
  327. {
  328. dgrd_rpt.setCellProperty("Body", dgrd_rpt.getBindCellIndex("Body", "col2"), "displaytype", "Number");
  329. dgrd_rpt.setCellProperty("Body", dgrd_rpt.getBindCellIndex("Body", "col3"), "displaytype", "Number");
  330. dgrd_rpt.setCellProperty("Body", dgrd_rpt.getBindCellIndex("Body", "col4"), "displaytype", "Number");
  331. dgrd_rpt.setCellProperty("Body", dgrd_rpt.getBindCellIndex("Body", "col5"), "displaytype", "Number");
  332. }
  333. dgrd_rpt.setCellProperty("Body", 0, "wordwrap", "char");
  334. dgrd_rpt.setCellProperty("Body", 1, "wordwrap", "char");
  335. }
  336. function cf_TRSTC00300(sSvcId, nErrorCode, sErrorMsg)
  337. {
  338. var attflag = String(frmf_getMenuParam()).substr(6,7);
  339. if(ds_init_rptm_grid_ret.rowcount > 0)
  340. {
  341. // 외래수익일보 Row 에 색상추가
  342. if ( attflag == "RR00821" )
  343. {
  344. dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 0);
  345. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 27);
  346. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 54);
  347. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 58);
  348. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 75);
  349. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 79);
  350. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 84);
  351. for(var i = 0; i < dgrd_rpt.getCellCount("Body"); i++)
  352. {
  353. dgrd_rpt.setCellProperty("Body", i, "background", "EXPR:BgColor");
  354. dgrd_rpt.setCellProperty("Body", i, "background2", "EXPR:BgColor");
  355. }
  356. }
  357. // 입원수익일보 Row 에 색상추가
  358. if ( attflag == "RR00822" )
  359. {
  360. dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 0);
  361. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 26);
  362. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 69);
  363. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 72);
  364. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 89);
  365. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 94);
  366. // dsf_makeValue(ds_init_rptm_grid_ret, "BgColor", "string", "#dddddd", 98);
  367. for(var i = 0; i < dgrd_rpt.getCellCount("Body"); i++)
  368. {
  369. dgrd_rpt.setCellProperty("Body", i, "background", "EXPR:BgColor");
  370. dgrd_rpt.setCellProperty("Body", i, "background2", "EXPR:BgColor");
  371. }
  372. }
  373. }
  374. }
  375. /*그리드에서 같은 글자는 merge하도록 하는 함수
  376. grid : 그리드 ID , cols: 그리드 전체 컬럼 수
  377. %타이틀 변경전에 선언되어야 합니다.%
  378. grid.userdata = datagrid1.getFormatString();
  379. grid.formats = datagrid1.userdata;*/
  380. function grdTitleMerge(grid){
  381. var headCols = grid.getCellCount("body");
  382. var headCells = grid.getCellCount("head");
  383. var headArrR1 = new Array();
  384. var headArrR2 = new Array();
  385. var headArrR3 = new Array();
  386. var headArrR2No = new Array();
  387. var headArrR3No = new Array();
  388. var headArrR2NoIdx = 0;
  389. var headArrR3NoIdx = 0;
  390. var headArrMer12No = "";
  391. var headArrMer13No = "";
  392. var headArrMer12NoIdx = 0;
  393. var headArrMer13NoIdx = 0;
  394. var mergeScol = 0;
  395. var mergeEcol = 0;
  396. var index = 0;
  397. var calindex = 0;
  398. var calindex1 = 0;
  399. var calindex11 = 0;
  400. for(var i=0; i<headCells;i++){
  401. if( parseInt(i/headCols)==0 ){
  402. headArrR1[i%headCols] = grid.getCellText(-1,i);
  403. }
  404. if( parseInt(i/headCols)==1 ){
  405. headArrR2[i%headCols] = grid.getCellText(-1,i);
  406. }
  407. if( parseInt(i/headCols)==2 ){
  408. headArrR3[i%headCols] = grid.getCellText(-1,i);
  409. }
  410. }//for(var i=0; i<headCells;i++) 끝
  411. //로우 병합
  412. for(var i=0; i<headCols; i++){
  413. if(headArrR1[i]==headArrR2[i]){
  414. index = i;
  415. calindex++;
  416. grid.mergeContentsCell("head",0,i,1,i,index,false);
  417. headArrMer12No+=i+"^";
  418. headArrMer12NoIdx++;
  419. }else{
  420. headArrR2No[headArrR2NoIdx]=i;
  421. headArrR2NoIdx++;
  422. }
  423. if(headArrR2[i]==headArrR3[i]){
  424. index = eval(i)+eval(headCols)-calindex;
  425. grid.mergeContentsCell("head",1,i,2,i,index,false);
  426. calindex1++;
  427. if(headArrR2[i]==headArrR1[i]){
  428. index = eval(i)+eval(headCols)-calindex;
  429. grid.mergeContentsCell("head",0,i,2,i,i,false);
  430. calindex11++;
  431. headArrMer13No+=i+"^";
  432. headArrMer13NoIdx++;
  433. }
  434. }else{
  435. headArrR3No[headArrR3NoIdx]=i;
  436. headArrR3NoIdx++;
  437. }
  438. }//for(var i=0; i<headCols; i++) 끝
  439. //배치가 바뀌어 재분배
  440. var headCells2 = grid.getCellCount("head");
  441. var headArr1 = new Array();
  442. var headArr2 = new Array();
  443. var headArr3 = new Array();
  444. var headArr3idx = 0;
  445. var headArr2idx = 0;
  446. for(var i=0; i<headCells2;i++){
  447. if( parseInt(i/headCols)==0 ){
  448. headArr1[i%headCols] = grid.getCellText(-1,i);
  449. }else if( eval(i)< headCols*2-eval(calindex)){
  450. headArr2[headArr2idx] = grid.getCellText(-1,i);
  451. headArr2idx++;
  452. }else{
  453. headArr3[headArr3idx] = grid.getCellText(-1,i);
  454. headArr3idx++;
  455. }
  456. }//for(var i=0; i<headCells;i++) 끝
  457. //컬럼 병합
  458. var tmp1 = "";
  459. var tmp1idx = 0;
  460. var tmp2 = "";
  461. var tmp2idx = 0;
  462. var col = 0;
  463. var index = 0;
  464. var calcolindex = 0;
  465. for(var i=0; i<headArr1.length;i++){
  466. if(i==0){
  467. tmp1 = headArr1[0];
  468. tmp1idx = 0;
  469. }else{
  470. tmp2 = headArr1[i];
  471. tmp2idx = i;
  472. }
  473. idx = i-calcolindex-1;
  474. if(tmp1==tmp2){
  475. grid.mergeContentsCell("head",0,tmp1idx,0,tmp2idx,idx,false);
  476. calcolindex++;
  477. }else{
  478. tmp1 = headArr1[i];
  479. tmp1idx = i;
  480. }
  481. }//for(var i=0; headArr1.legnth();i++) 끝
  482. var tmp1 = "!";
  483. var tmp2 = "!";
  484. var tmp2idx = 0;
  485. var calcolindex1 = 0;
  486. var idx = 0;
  487. for(var i=0; i<headArr2.length;i++){
  488. if(i==0){
  489. tmp1 = headArr2[0];
  490. tmp1idx = 0;
  491. }else{
  492. tmp2 = headArr2[i];
  493. tmp2idx = headArrR2No[i];
  494. }
  495. var cnt12R = biggerCnt(headArrR2No[i],headArrMer12No);
  496. idx = (headCols+headArrR2No[i]) - calcolindex - eval(calindex) + cnt12R - eval(calcolindex1)-1;
  497. if(tmp1==tmp2){
  498. grid.mergeContentsCell("head",1,tmp1idx,1,tmp2idx,idx,false);
  499. calcolindex1++;
  500. }else{
  501. tmp1 = headArr2[i];
  502. tmp1idx = headArrR2No[i];
  503. }
  504. }//for(var i=0; headArr2.legnth();i++) 끝
  505. var tmp1 = "!";
  506. var tmp2 = "!";
  507. var tmp2idx = 0;
  508. var calcolindex11 = 0;
  509. for(var i=0; i<headArr3.length; i++){
  510. if(i==0){
  511. tmp1 = headArr3[0];
  512. tmp1idx = 0;
  513. }else{
  514. tmp2 = headArr3[i];
  515. tmp2idx = headArrR3No[i];
  516. }
  517. var cnt13R = biggerCnt(headArrR3No[i],headArrMer13No);
  518. idx = (headCols*2+headArrR3No[i]) - calcolindex - calcolindex1 - calcolindex11 - calindex - calindex1 + cnt13R;
  519. if(tmp1==tmp2){
  520. grid.mergeContentsCell("head",2,tmp1idx,2,tmp2idx,idx,false);
  521. calcolindex11++;
  522. }else{
  523. tmp1 = headArr3[i];
  524. tmp1idx = headArrR3No[i];
  525. }
  526. }
  527. }
  528. function biggerCnt(num,idxArr){
  529. var rtn=0;
  530. var arr = new Array();
  531. var idxA = new String(idxArr);
  532. arr = idxA.substr(0,idxA.length-1).split("^");
  533. for(var i=0; i<arr.length; i++){
  534. if(num<arr[i]){
  535. rtn++;
  536. }
  537. }
  538. return rtn;
  539. }]]></Script>