SMRPB12100_직급별 부서별 현황조회.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>직급별 부서별 현황조회</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <datalist/>
  11. </main>
  12. <init/>
  13. <send>
  14. <psndd/>
  15. <psninstcd/>
  16. <flag>1</flag>
  17. <nursall/>
  18. </send>
  19. <hidden/>
  20. <grid>
  21. <targetgrid/>
  22. </grid>
  23. <bakgrid>
  24. <targetgrid/>
  25. </bakgrid>
  26. <temp>
  27. <source/>
  28. </temp>
  29. </root>
  30. </instance>
  31. <script type="javascript" ev:event="xforms-ready">
  32. <![CDATA[
  33. misfMsterDetailSet(grd_psndatalist, null, "TRRPB12101" ,"N");
  34. misfGridInit(grd_psndatalist);
  35. // misfComboComCdList("Z0007", cmb_psninstcd);
  36. // addGridComboItem("cmb_psninstcd", "전체", "","above");
  37. model.setValue("/root/send/psndd", getCurrentDate());
  38. misfComboInstCdListMulti("cmb_psninstcd", ipt_psndd.value,"","Y","N");
  39. model.setValue("/root/send/psninstcd", getUserInfo("dutplceinstcd")); // 기관 설정
  40. misfGetAndSetUserInfo();
  41. misfGetUserAuth();
  42. if(PSN_INST_YN != "Y") {
  43. cmb_psninstcd.disabled = true;
  44. }
  45. // 간호부일때는 간호부전체 체크박스를 풀수없도록 한다
  46. if ( DUT_DEPT_CD == "3040200000" ) {
  47. chk_nursall.value = 'Y'
  48. chk_nursall.disabled = true;
  49. }
  50. model.refresh();
  51. ]]>
  52. </script>
  53. <submission id="TRRPB12101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/datalist"/>
  54. </model>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  57. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  58. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  59. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  60. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  61. <script type="javascript" src="../../../mis/paybnusmngtweb/js/RWP001.js"/>
  62. <script type="javascript">
  63. <![CDATA[
  64. function fDelGridData()
  65. {
  66. //Start 그리드 초기화 작업. 노드고 뭐고 싹~!!! 다지워~!!
  67. for (var i = grd_psndatalist.cols - 1; i > 6 ; i--)
  68. {
  69. grd_psndatalist.removeColumn(false);
  70. }
  71. model.removenode("/root/main");
  72. model.removenode("/root/grid");
  73. model.removenode("/root/bakgrid");
  74. model.makeNode("/root/main/datalist");
  75. model.makeNode("/root/grid/targetgrid");
  76. model.makeNode("/root/bakgrid/targetgrid");
  77. misfGridInit(grd_psndatalist);
  78. //End 그리드 초기화 작업. 노드고 뭐고 싹~!!! 다지워~!!
  79. }
  80. function fSetGrid()
  81. {
  82. var colC = model.getValue("/root/main/psndatalist5/colcount");
  83. var rowC = model.getValue("/root/main/psndatalist5/rowcount");
  84. var dataC1 = model.getValue("/root/main/psndatalist5/datacount1");
  85. var dataC2 = model.getValue("/root/main/psndatalist5/datacount2");
  86. var colRefTemp = '';
  87. var tempcaption = '';
  88. var fcolwidth = "100, 100, 100, 100, 0, 0";
  89. var totalpostion = 0;
  90. if(rdo_flag.value == '1')
  91. {
  92. tempcaption = "Sumflag^Flag^직군^직위^직군^직위";
  93. }else if(rdo_flag.value == '2'){
  94. tempcaption = "Sumflag^Flag^직군^직종^직군^직종";
  95. }
  96. //col 추가
  97. for(var i = 1; i <= colC; i++)
  98. {
  99. //노드 명칭이 숫자는 맨앞으로 올 수 없음으로 인해 x라는 임시노드명을 붙여준다.
  100. colRefTemp = "x" + model.getValue("/root/main/psndatalist3["+ i +"]/cdnm") + model.getValue("/root/main/psndatalist3["+ i +"]/instcd");
  101. if( model.getValue("/root/main/psndatalist3["+ i +"]/cdnm") == '총계'){
  102. totalpostion = i;
  103. }
  104. grd_psndatalist.addColumn("ref:" + colRefTemp+ ";" + "format:#,###; " + " style:" + "text-align:right;");
  105. model.makeValue("/root/bakgrid/targetgrid/" + colRefTemp, model.getValue("/root/main/psndatalist3["+ i +"]/cdid"));
  106. tempcaption += "^" + model.getValue("/root/main/psndatalist3["+ i +"]/cdnm");
  107. }
  108. for(var i=1; i <= colC; i++)
  109. {
  110. if(totalpostion > i )
  111. {
  112. grd_psndatalist.colwidth( (6+i) ) = 30;
  113. }else{
  114. grd_psndatalist.colwidth( (6+i) ) = 60;
  115. }
  116. }
  117. grd_psndatalist.caption = tempcaption;
  118. grd_psndatalist.frozenCols = totalpostion+6;
  119. grd_psndatalist.rowHeight(0) = '100';
  120. //row 추가
  121. //직급별 데이터 설정.
  122. var rowCheck = true;
  123. grd_psndatalist.addRow(false);
  124. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("sumflag")) = model.getValue("/root/main/psndatalist1[1]/sumflag");
  125. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("flag")) = model.getValue("/root/main/psndatalist1[1]/flag");
  126. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("grupjoblnnm")) = model.getValue("/root/main/psndatalist1[1]/grupjoblnnm");
  127. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("jobposnm")) = model.getValue("/root/main/psndatalist1[1]/jobposnm");
  128. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("grupjoblncd")) = model.getValue("/root/main/psndatalist1[1]/grupjoblncd");
  129. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("jobposcd")) = model.getValue("/root/main/psndatalist1[1]/jobposcd");
  130. for(var s = 1; s <= dataC1; s++)
  131. {
  132. //row 추가 여부 설정 temp.
  133. rowCheck = true;
  134. //직군 직위 중복시 데이터 설정...중복 데이터가 없을시 row 추가.
  135. for(var i = grd_psndatalist.fixedRows; i < grd_psndatalist.rows; i++)
  136. {
  137. if( (grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("sumflag")) == model.getValue("/root/main/psndatalist1["+ s +"]/sumflag")) &&
  138. (grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("grupjoblnnm")) == model.getValue("/root/main/psndatalist1["+ s +"]/grupjoblnnm")) &&
  139. (grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("jobposnm")) == model.getValue("/root/main/psndatalist1["+ s +"]/jobposnm")) )
  140. {
  141. colRefTemp = "x" + model.getValue("/root/main/psndatalist1["+ s +"]/jobgradnm");
  142. grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef(colRefTemp)) = parseInt(grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef(colRefTemp)) == "" ? 0 : grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef(colRefTemp)) ) + parseInt(model.getValue("/root/main/psndatalist1["+ s +"]/cnt") == "" ? 0 : model.getValue("/root/main/psndatalist1["+ s +"]/cnt") );
  143. rowCheck = false;
  144. break;
  145. }
  146. }
  147. if(rowCheck)
  148. {
  149. grd_psndatalist.addRow(false);
  150. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("grupjoblnnm")) = model.getValue("/root/main/psndatalist1["+ s +"]/grupjoblnnm");
  151. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("jobposnm")) = model.getValue("/root/main/psndatalist1["+ s +"]/jobposnm");
  152. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("grupjoblncd")) = model.getValue("/root/main/psndatalist1["+ s +"]/grupjoblncd");
  153. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef("jobposcd")) = model.getValue("/root/main/psndatalist1["+ s +"]/jobposcd");
  154. //flag 설정.
  155. grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("flag")) = model.getValue("/root/main/psndatalist1["+ s +"]/flag");
  156. grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("sumflag")) = model.getValue("/root/main/psndatalist1["+ s +"]/sumflag");
  157. colRefTemp = "x" + model.getValue("/root/main/psndatalist1["+ s +"]/jobgradnm");
  158. grd_psndatalist.valueMatrix( grd_psndatalist.row, grd_psndatalist.colRef(colRefTemp)) = parseInt( model.getValue("/root/main/psndatalist1["+ s +"]/cnt") == "" ? 0 : model.getValue("/root/main/psndatalist1["+ s +"]/cnt") );
  159. }
  160. }
  161. //부서별 데이터 설정
  162. for(var s = 1; s <= dataC2; s++)
  163. {
  164. for(var i = grd_psndatalist.fixedRows; i < grd_psndatalist.rows; i++)
  165. {
  166. if((grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("sumflag")) == model.getValue("/root/main/psndatalist2["+ s +"]/sumflag")) &&
  167. (grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("grupjoblnnm")) == model.getValue("/root/main/psndatalist2["+ s +"]/grupjoblnnm")) &&
  168. (grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef("jobposnm")) == model.getValue("/root/main/psndatalist2["+ s +"]/jobposnm")) )
  169. {
  170. colRefTemp = "x" + model.getValue("/root/main/psndatalist2["+ s +"]/deptnm") + model.getValue("/root/main/psndatalist2["+ s +"]/dutplceinst");
  171. grd_psndatalist.valueMatrix(i, grd_psndatalist.colRef( colRefTemp )) = parseInt( model.getValue("/root/main/psndatalist2["+ s +"]/cnt") == "" ? 0 : model.getValue("/root/main/psndatalist2["+ s +"]/cnt") );
  172. break;
  173. }
  174. }
  175. }
  176. grd_psndatalist.selectionMode = "byrow";
  177. grd_psndatalist.refresh();
  178. fSetTotal();
  179. }
  180. function fSetTotal()
  181. {
  182. grd_psndatalist.subtotal("clear", 0, 0);
  183. for(var i = 7; i < grd_psndatalist.cols; i++)
  184. {
  185. grd_psndatalist.subTotal("sum", 1, i, "format:#,###; ", "background-color:#f99999; font-weight:bold; ", 4, "합계");
  186. }
  187. for(var i = 7; i < grd_psndatalist.cols; i++)
  188. {
  189. grd_psndatalist.subTotal("sum", 3, i, "format:#,###; ", "background-color:#fff999; font-weight:bold; ", 4, "소계");
  190. }
  191. for(var i = 7; i < grd_psndatalist.cols; i++)
  192. {
  193. grd_psndatalist.subTotal("sum", -1, i, "format:#,###; ", "background-color:#999999; font-weight:bold; ", 4, "총계");
  194. }
  195. }
  196. ]]>
  197. </script>
  198. </xhtml:head>
  199. <xhtml:body style="margin-left:8; margin-right:8; ">
  200. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  201. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">직급별 부서별 현황조회</caption>
  202. </group>
  203. <group id="group2" scroll="auto" style="left:0px; top:40px; width:1195px; height:740px; ">
  204. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1193px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  205. <button id="btn_search" class="btn1_letter2" style="left:1130px; top:17px; width:56px; height:22px; ">
  206. <caption>조회</caption>
  207. <script type="javascript" ev:event="DOMActivate">
  208. <![CDATA[
  209. //그리드 관련 data 초기화.
  210. fDelGridData();
  211. //현황조회 select
  212. submit("TRRPB12101");
  213. //data 설정.
  214. fSetGrid();
  215. ]]>
  216. </script>
  217. </button>
  218. <line id="line13" class="line_4" style="x1:1120px; y1:10px; x2:1120px; y2:44px; "/>
  219. <caption id="cap_psninstcd" class="search_name" style="left:8px; top:19px; width:86px; height:17px; ">기 관 :</caption>
  220. <select1 id="cmb_psninstcd" ref="/root/send/psninstcd" class="combo_s_essential" appearance="minimal" style="left:91px; top:18px; width:169px; height:19px; text-align:center; ">
  221. <choices>
  222. <itemset>
  223. <label/>
  224. <value/>
  225. </itemset>
  226. </choices>
  227. </select1>
  228. <caption id="caption22" class="search_name" style="left:321px; top:19px; width:94px; height:17px; ">조회년월 :</caption>
  229. <input id="ipt_psndd" ref="/root/send/psndd" class="input_s_essential" inputtype="date" format="yyyy-mm-dd" style="left:410px; top:18px; width:135px; height:19px; text-align:center; vertical-align:middle; ">
  230. <script type="javascript" ev:event="xforms-value-changed">
  231. <![CDATA[
  232. var instcd = cmb_psninstcd.value;
  233. if( getStringLength(ipt_psndd.value) == "8" ) {
  234. model.removeNodeset(cmb_psninstcd.attribute("ref"));
  235. model.makeNode("/root/send/psninstcd");
  236. misfComboInstCdListMulti("cmb_psninstcd",ipt_psndd.value,"","Y","N");
  237. cmb_psninstcd.value = instcd;
  238. model.refresh();
  239. }
  240. ]]>
  241. </script>
  242. </input>
  243. <caption id="caption28" class="tit_2" style="left:5px; top:58px; width:144px; height:14px; ">현황조회 List</caption>
  244. <line id="line193" class="line_1" style="x1:2px; y1:71px; x2:1192px; y2:71px; "/>
  245. <datagrid id="grd_psndatalist" nodeset="/root/grid/targetgrid" caption="^^^" colsep="^" colwidth="100, 100, 100, 100" extendlastcol="scroll" frozencols="2" mergecellsfixedrows="byrow" rowheader="seq" rowsep="|" selectionmode="byrow" subtotalposition="below" style="left:0px; top:76px; width:1195px; height:659px; text-align:center; ">
  246. <col ref="sumflag" visibility="hidden"/>
  247. <col ref="flag" visibility="hidden"/>
  248. <col ref="grupjoblnnm"/>
  249. <col ref="jobposnm"/>
  250. <col ref="grupjoblncd" visibility="hidden"/>
  251. <col ref="jobposcd" visibility="hidden"/>
  252. <script type="javascript" ev:event="ondblclick">
  253. <![CDATA[
  254. // alert(grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("grupjoblncd")));
  255. // alert(grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("jobposcd")));
  256. // alert(grd_psndatalist.colAttribute(grd_psndatalist.col, "ref"));
  257. var grupjoblncd = "";
  258. var jobposnm = "";
  259. var jobposcd = "";
  260. var jobkindcd = "";
  261. var ojobgradcd = "";
  262. var njobgradcd = "";
  263. var deptcd = ""
  264. var colname = "";
  265. var sumflag = "";
  266. var totflag = "";
  267. var nursall = "";
  268. grupjoblncd = grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("grupjoblncd"));
  269. jobposnm = grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("jobposnm"));
  270. sumflag = grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("sumflag"));
  271. // alert(jobposnm);
  272. if (jobposnm == "소계") {
  273. grupjoblncd = grd_psndatalist.valueMatrix(grd_psndatalist.row - 1, grd_psndatalist.colRef("grupjoblncd"));
  274. sumflag = grd_psndatalist.valueMatrix(grd_psndatalist.row - 1, grd_psndatalist.colRef("sumflag"));
  275. }
  276. else if (jobposnm == "합계") {
  277. grupjoblncd = "";
  278. sumflag = grd_psndatalist.valueMatrix(grd_psndatalist.row - 2, grd_psndatalist.colRef("sumflag"));
  279. }
  280. else if (jobposnm == "총계") {
  281. grupjoblncd = "";
  282. sumflag = "99";
  283. }
  284. else {
  285. if (rdo_flag.value == "1") {
  286. jobposcd = grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("jobposcd"));
  287. jobkindcd = "";
  288. }
  289. else {
  290. jobposcd = ""
  291. jobkindcd = grd_psndatalist.valueMatrix(grd_psndatalist.row, grd_psndatalist.colRef("jobposcd"));
  292. }
  293. }
  294. colname = grd_psndatalist.colAttribute(grd_psndatalist.col, "ref");
  295. if (grd_psndatalist.col >= 7 && grd_psndatalist.col <= 17 ) {
  296. // if (grupjoblncd == "00") {
  297. // ojobgradcd = "";
  298. // njobgradcd = "";
  299. // }
  300. // else {
  301. if (rdo_flag.value == "1") {
  302. ojobgradcd = model.getValue("/root/bakgrid/targetgrid/" + colname);
  303. njobgradcd = "";
  304. }
  305. else {
  306. njobgradcd = model.getValue("/root/bakgrid/targetgrid/" + colname);
  307. ojobgradcd = "";
  308. }
  309. // }
  310. deptcd = "";
  311. }
  312. else {
  313. ojobgradcd = "";
  314. njobgradcd = "";
  315. deptcd = model.getValue("/root/bakgrid/targetgrid/" + colname);
  316. }
  317. if (jobposnm == "합계" && (ojobgradcd =="TOT" || njobgradcd =="TOT" ) ) {
  318. totflag = "A";
  319. }
  320. else if (jobposnm == "총계" && (ojobgradcd =="TOT" || njobgradcd =="TOT" ) ) {
  321. totflag = "B";
  322. }
  323. else {
  324. totflag = "C";
  325. }
  326. // alert(model.getValue("/root/bakgrid/targetgrid/" + colname));
  327. // alert(ojobgradcd);
  328. // alert(njobgradcd);
  329. // alert(deptcd);
  330. model.removenode("/root/temp/source");
  331. model.makeNode("/root/temp/source");
  332. model.makeValue("/root/temp/source/psndd", ipt_psndd.value);
  333. model.makeValue("/root/temp/source/grupjoblncd", grupjoblncd);
  334. model.makeValue("/root/temp/source/jobposcd", jobposcd);
  335. model.makeValue("/root/temp/source/jobkindcd", jobkindcd);
  336. model.makeValue("/root/temp/source/psninstcd", cmb_psninstcd.value);
  337. model.makeValue("/root/temp/source/ojobgradcd", ojobgradcd);
  338. model.makeValue("/root/temp/source/njobgradcd", njobgradcd);
  339. model.makeValue("/root/temp/source/deptcd", deptcd);
  340. model.makeValue("/root/temp/source/sumflag", sumflag);
  341. model.makeValue("/root/temp/source/totflag", totflag);
  342. model.makeValue("/root/temp/source/nursall", chk_nursall.value);
  343. modal("SPRPB12101","","","","","/root/temp/source", "/root/target" );
  344. ]]>
  345. </script>
  346. </datagrid>
  347. <button id="btn_saveexcel" class="btn5_letter4" style="left:1127px; top:51px; width:64px; height:19px; ">
  348. <caption>엑셀저장</caption>
  349. <script type="javascript" ev:event="DOMActivate">
  350. <![CDATA[
  351. var fileName = window.fileDialog ("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  352. if (fileName != "")
  353. {
  354. grd_psndatalist.fixedCols = 0;
  355. grd_psndatalist.saveExcel(fileName,"sheetname:sheet1");
  356. grd_psndatalist.fixedCols = 1;
  357. }
  358. ]]>
  359. </script>
  360. </button>
  361. <select1 id="rdo_flag" ref="/root/send/flag" appearance="full" cellspacing="30" cols="2" overflow="visible" style="left:727px; top:18px; width:165px; height:20px; border-style:none; ">
  362. <choices>
  363. <item>
  364. <label>구직급</label>
  365. <value>1</value>
  366. </item>
  367. <item>
  368. <label>신직급</label>
  369. <value>2</value>
  370. </item>
  371. </choices>
  372. </select1>
  373. <caption id="caption1" class="search_name" style="left:630px; top:19px; width:94px; height:17px; ">직급 구분 :</caption>
  374. <select id="chk_nursall" ref="/root/send/nursall" overflow="visible" appearance="full" style="left:950px; top:18px; width:85px; height:20px; border-style:none; ">
  375. <choices>
  376. <item>
  377. <label>간호부전체</label>
  378. <value>Y</value>
  379. </item>
  380. </choices>
  381. </select>
  382. </group>
  383. <group id="grp_btn" scroll="auto" style="left:0px; top:13px; width:1195px; height:25px; "/>
  384. </xhtml:body>
  385. </xhtml:html>