SMRPB19000_평가항목관리.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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. <list>
  11. <astminfo>
  12. <elemlrg/>
  13. <elemmdl/>
  14. <elemnm/>
  15. <cmt/>
  16. <asmta1yn/>
  17. <asmta1score/>
  18. <asmtb1yn/>
  19. <asmtb1score/>
  20. <asmtc1yn/>
  21. <asmtc1score/>
  22. <asmtd1yn/>
  23. <asmtd1score/>
  24. <asmte1yn/>
  25. <asmte1score/>
  26. <year/>
  27. <asmta2yn/>
  28. <asmta2score/>
  29. <asmtb2yn/>
  30. <asmtb2score/>
  31. <asmtc2yn/>
  32. <asmtc2score/>
  33. <asmtd2yn/>
  34. <asmtd2score/>
  35. <asmte2yn/>
  36. <asmte2score/>
  37. <flag/>
  38. </astminfo>
  39. </list>
  40. </main>
  41. <send>
  42. <retrparams>
  43. <instcd/>
  44. <year/>
  45. <flag/>
  46. </retrparams>
  47. <execdata>
  48. <astminfo/>
  49. </execdata>
  50. </send>
  51. <hidden/>
  52. <temp>
  53. </temp>
  54. </root>
  55. </instance>
  56. <submission id="TRRPB19001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/list/astminfo"/>
  57. <submission id="TXRPB19001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/execdata" resultref="/root/hidden"/>
  58. <bind id="bind1"/>
  59. </model>
  60. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  61. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  62. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  63. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  64. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  65. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  66. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  67. <script type="javascript" src="../../../mis/pubwelfmngtweb/js/RPS001.js"/>
  68. <script type="javascript" ev:event="xforms-ready">
  69. <![CDATA[
  70. fInitialize();
  71. ]]>
  72. </script>
  73. <script type="javascript">
  74. <![CDATA[
  75. var b_First = true;
  76. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  77. function fInitialize()
  78. {
  79. model.removenode("/root/main/list/astminfo");
  80. misfComboInstCdListMulti("cmb_instcd",getCurrentDate().substr(0, 8),"","Y");
  81. model.setValue("/root/send/retrparams/instcd", getUserInfo("dutplceinstcd"));
  82. model.setValue("/root/send/retrparams/year", getCurrentDate().substr(0, 4));
  83. model.refresh();
  84. }
  85. function fsaveCheckValue()
  86. {
  87. var iInsCnt = 0;
  88. var iDupCnt = 0;
  89. var bDel = false;
  90. var icolidx2 = grd_ovtmworkapplist.colRef("elemlrg");
  91. var icolidx3 = grd_ovtmworkapplist.colRef("elemmdl");
  92. for(var i=0; i<grd_ovtmworkapplist.rows; i++)
  93. {
  94. if(grd_ovtmworkapplist.rowStatus(i) == 1 || grd_ovtmworkapplist.rowStatus(i) == 3)
  95. {
  96. iInsCnt = i;
  97. break;
  98. }
  99. }
  100. for(var i=iInsCnt; i<grd_ovtmworkapplist.rows; i++)
  101. {
  102. for(var j=1; j<i; j++)
  103. {
  104. if(grd_ovtmworkapplist.valueMatrix(i, icolidx3) == grd_ovtmworkapplist.valueMatrix(j, icolidx3) && grd_ovtmworkapplist.valueMatrix(i, icolidx2) == grd_ovtmworkapplist.valueMatrix(j, icolidx2))
  105. {
  106. if(grd_ovtmworkapplist.rowStatus(i) == 1 || grd_ovtmworkapplist.rowStatus(i) == 3)
  107. {
  108. var ret= messageBox("같은 평가요소의 내용이 존재합니다. ", "Q001");
  109. if (ret != 6)
  110. { // not OK
  111. bDel = false;
  112. return false;
  113. }
  114. else
  115. {
  116. grd_ovtmworkapplist.deleteItem(i);
  117. iDupCnt++;
  118. bDel = true;
  119. }
  120. }
  121. }
  122. }
  123. if(bDel)
  124. {
  125. bDel = false;
  126. i--;
  127. }
  128. }
  129. if(iDupCnt > 0)
  130. {
  131. messageBox("[ " + iDupCnt + " ]" + " 건의 중복된 행이 삭제", "I001");
  132. }
  133. return true;
  134. }
  135. function fsaveCheckNull(){
  136. for(i=3; i< grd_ovtmworkapplist.rows; i++){
  137. var check_elemlrg = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/elemlrg");
  138. var check_elemmdl = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/elemmdl");
  139. var check_elemnm = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/elemnm");
  140. var check_cmt = model.getValue(grd_ovtmworkapplist.attribute("nodeset") + "[" + ( i - 2 ) + "]/cmt");
  141. var status=grd_ovtmworkapplist.rowStatus(i);
  142. if(check_elemlrg =="")
  143. {
  144. messageBox("평가요소(대)는","I003");
  145. return false;
  146. }
  147. if(check_elemmdl =="")
  148. {
  149. messageBox("평가요소는","I003");
  150. return false;
  151. }
  152. if(check_elemnm =="")
  153. {
  154. messageBox("평가요소명칭은","I003");
  155. return false;
  156. }
  157. if(check_cmt =="")
  158. {
  159. messageBox("평가내용은","I003");
  160. return false;
  161. }
  162. }
  163. return true;
  164. }
  165. ]]>
  166. </script>
  167. </xhtml:head>
  168. <xhtml:body pagewidth="1211" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  169. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  170. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">평가항목관리</caption>
  171. </group>
  172. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  173. <line id="line1" class="line_1" style="x1:0px; y1:68px; x2:1194px; y2:68px; "/>
  174. <group id="group4" style="left:0px; top:10px; width:1195px; height:35px; vertical-align:top; ">
  175. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:35px; "/>
  176. <caption id="caption1" class="search_name" style="left:272px; top:9px; width:86px; height:17px; ">평가년도 :</caption>
  177. <line id="line3" class="line_4" style="x1:1115px; y1:6px; x2:1115px; y2:28px; border-color:#ffe4bb; border-left-style:solid; "/>
  178. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:7px; width:56px; height:22px; text-align:left; ">
  179. <caption>조회</caption>
  180. <script type="javascript" ev:event="DOMActivate">
  181. <![CDATA[
  182. if (model.getValue("/root/send/retrparams/year") == ""){
  183. messageBox("평가년도는 필수 입력항목입니다", "E999", "");
  184. return;
  185. }
  186. if (model.getValue("/root/send/retrparams/flag") == ""){
  187. messageBox("평가유형은 필수 선택항목입니다", "E999", "");
  188. return;
  189. }
  190. model.removenode("/root/main/list/astminfo");
  191. model.refresh();
  192. submit("TRRPB19001");
  193. ]]>
  194. </script>
  195. </button>
  196. <input id="ipt_appfromdd" ref="/root/send/retrparams/year" class="input_s_essential" navindex="2" inputtype="date" format="yyyy" style="left:362px; top:8px; width:93px; height:19px; text-align:center; ">
  197. <script type="javascript" ev:event="xforms-value-changed">
  198. <![CDATA[
  199. btn_search.dispatch("DOMActivate");
  200. ]]>
  201. </script>
  202. </input>
  203. <select1 id="cmb_instcd" ref="/root/send/retrparams/instcd" class="combo_search" navindex="1" appearance="minimal" style="left:100px; top:8px; width:110px; height:19px; ">
  204. <choices>
  205. <itemset>
  206. <label/>
  207. <value/>
  208. </itemset>
  209. </choices>
  210. </select1>
  211. <caption id="caption7" class="search_name" style="left:10px; top:9px; width:86px; height:17px; ">소속기관 :</caption>
  212. <caption id="caption2" class="search_name" style="left:497px; top:9px; width:86px; height:17px; ">평가유형 :</caption>
  213. <select1 id="combo1" ref="/root/send/retrparams/flag" appearance="minimal" style="left:590px; top:8px; width:190px; height:19px; ">
  214. <choices>
  215. <item>
  216. <label>팀장,과장,실장용</label>
  217. <value>A</value>
  218. </item>
  219. <item>
  220. <label>계장급용</label>
  221. <value>B</value>
  222. </item>
  223. <item>
  224. <label>간호직용</label>
  225. <value>C</value>
  226. </item>
  227. <item>
  228. <label>의료기사직,직원용</label>
  229. <value>D</value>
  230. </item>
  231. <item>
  232. <label>의사용</label>
  233. <value>E</value>
  234. </item>
  235. <item>
  236. <label>시용평가</label>
  237. <value>F</value>
  238. </item>
  239. <item>
  240. <label>계약직평가</label>
  241. <value>G</value>
  242. </item>
  243. </choices>
  244. <script type="javascript" ev:event="xforms-value-changed">
  245. <![CDATA[
  246. btn_search.dispatch("DOMActivate");
  247. ]]>
  248. </script>
  249. </select1>
  250. </group>
  251. <caption id="caption9" class="tit_2" style="left:0px; top:54px; width:105px; height:13px; ">평가내용</caption>
  252. <button id="btn_grdadd" class="btn2_letter3" style="left:1088px; top:48px; width:53px; height:19px; ">
  253. <caption>행추가</caption>
  254. <script type="javascript" ev:event="DOMActivate">
  255. <![CDATA[
  256. if (model.getValue("/root/send/retrparams/flag") == ""){
  257. messageBox("평가유형을 선택한 후 진행하시기 바랍니다.", "E999", "");
  258. return;
  259. }
  260. fmisfGridIUD(grd_ovtmworkapplist, "A");
  261. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("year")) = model.getValue("/root/send/retrparams/year");
  262. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("flag")) = model.getValue("/root/send/retrparams/flag");
  263. ]]>
  264. </script>
  265. </button>
  266. <button id="btn_grddel" class="btn2_letter3" style="left:1142px; top:48px; width:53px; height:19px; ">
  267. <caption>행삭제</caption>
  268. <script type="javascript" ev:event="DOMActivate">
  269. <![CDATA[
  270. var iRowIdx=grd_ovtmworkapplist.row;
  271. // if (misfCheckDeleteYN(grd_ovtmworkapplist) == "Y")
  272. // {
  273. // // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
  274. // if(grd_ovtmworkapplist.rowstatus(iRowIdx) == 1 || grd_ovtmworkapplist.rowstatus(iRowIdx) == 3)
  275. // {
  276. // grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  277. // }
  278. // else
  279. // {
  280. // grd_ovtmworkapplist.addStatus(iRowIdx,"delete");
  281. // }
  282. // }
  283. if(grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 1 || grd_ovtmworkapplist.rowstatus(grd_ovtmworkapplist.row) == 3)
  284. {
  285. grd_ovtmworkapplist.deleteRow(grd_ovtmworkapplist.row, false);
  286. }
  287. else
  288. {
  289. grd_ovtmworkapplist.addStatus(grd_ovtmworkapplist.row,"delete");
  290. }
  291. model.refresh();
  292. ]]>
  293. </script>
  294. </button>
  295. <multilinegrid id="grd_ovtmworkapplist" nodeset="/root/main/list/astminfo" autoresize="true" caption="평가요소(대)^평가요소^평가요소명칭^평가내용^1차(A)^1차점수(A)^1차(B)^1차점수(B)^1차(C)^1차점수(C)^1차(D)^1차점수(D)^1차(E)^1차점수(E)^caption1^조출여부^휴일^야간^연장^연장^조출150|평가요소(대)^평가요소^평가요소명칭^평가내용^2차(A)^2차점수(A)^2차(B)^2차점수(B)^2차(C)^2차점수(C)^2차(D)^2차점수(D)^2차(E)^2차점수(E)^caption1^조출여부^휴일^야간^150^100^조출150" colsep="^" colwidth="116, 35, 124, 287, 54, 68, 49, 71, 48, 72, 45, 69, 49, 70, 100, 0, 0, 0, 0, 0, 0" rowheader="update" rowsep="|" mergecellsfixedrows="bycolrec" style="left:0px; top:73px; width:1194px; height:669px; ">
  296. <row>
  297. <col disabled="true" ref="elemlrg" rowspan="2" type="combo" style="font-family:굴림체; text-align:left; ">
  298. <choices>
  299. <item>
  300. <label>업무실적</label>
  301. <value>1</value>
  302. </item>
  303. <item>
  304. <label>업무수행능력</label>
  305. <value>2</value>
  306. </item>
  307. <item>
  308. <label>업무수행태도</label>
  309. <value>3</value>
  310. </item>
  311. <item>
  312. <label>업무성과</label>
  313. <value>4</value>
  314. </item>
  315. <item>
  316. <label>생활면</label>
  317. <value>5</value>
  318. </item>
  319. <item>
  320. <label>친절면</label>
  321. <value>6</value>
  322. </item>
  323. </choices>
  324. </col>
  325. <col disabled="true" imemode="hangul" ref="elemmdl" rowspan="2" type="input" format="99" style="text-align:center; "/>
  326. <col imemode="hangul" ref="elemnm" rowspan="2" type="input" style="font-family:굴림체; text-align:left; "/>
  327. <col imemode="hangul" ref="cmt" rowspan="2" type="input" style="font-family:굴림체; text-align:left; "/>
  328. <col checkvalue="Y,N" ref="asmta1yn" type="checkbox"/>
  329. <col ref="asmta1score" type="input" format="999" style="text-align:center; "/>
  330. <col checkvalue="Y,N" ref="asmtb1yn" type="checkbox"/>
  331. <col ref="asmtb1score" type="input" format="999" style="text-align:center; "/>
  332. <col checkvalue="Y,N" ref="asmtc1yn" type="checkbox"/>
  333. <col ref="asmtc1score" type="input" format="999" style="text-align:center; "/>
  334. <col checkvalue="Y,N" ref="asmtd1yn" type="checkbox"/>
  335. <col ref="asmtd1score" type="input" format="999" style="text-align:center; "/>
  336. <col checkvalue="Y,N" ref="asmte1yn" type="checkbox"/>
  337. <col ref="asmte1score" type="input" format="999" style="text-align:center; "/>
  338. <col ref="year" visibility="hidden"/>
  339. </row>
  340. <row>
  341. <col checkvalue="Y,N" ref="asmta2yn" type="checkbox"/>
  342. <col ref="asmta2score" type="input" step="999" style="text-align:center; "/>
  343. <col checkvalue="Y,N" ref="asmtb2yn" type="checkbox" style="text-align:center; "/>
  344. <col ref="asmtb2score" type="input" step="999" style="text-align:center; "/>
  345. <col checkvalue="Y,N" ref="asmtc2yn" type="checkbox" style="text-align:center; "/>
  346. <col ref="asmtc2score" type="input" step="999" style="text-align:center; "/>
  347. <col checkvalue="Y,N" ref="asmtd2yn" type="checkbox"/>
  348. <col ref="asmtd2score" type="input" step="999" style="text-align:center; "/>
  349. <col checkvalue="Y,N" ref="asmte2yn" type="checkbox"/>
  350. <col ref="asmte2score" type="input" step="999" style="text-align:center; "/>
  351. <col ref="flag" visibility="hidden"/>
  352. </row>
  353. </multilinegrid>
  354. </group>
  355. <group id="group3" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  356. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  357. <button id="btn_save" class="btn4_letter2" style="left:1063px; top:3px; width:56px; height:22px; ">
  358. <caption>저장</caption>
  359. <script type="javascript" ev:event="DOMActivate">
  360. <![CDATA[
  361. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  362. if (updtdata == "")
  363. {
  364. messageBox("변경된 데이터가","I004");
  365. return;
  366. }
  367. if(!fsaveCheckValue()) return;
  368. if(!fsaveCheckNull()) return;
  369. model.setValue("/root/send/execdata/astminfo", updtdata);
  370. if (submit("TXRPB19001")){
  371. btn_search.dispatch("DOMActivate");
  372. }
  373. ]]>
  374. </script>
  375. </button>
  376. <button id="btn_clear" class="btn4_letter3" style="left:1120px; top:3px; width:68px; height:22px; ">
  377. <caption>초기화</caption>
  378. <script type="javascript" ev:event="DOMActivate">
  379. <![CDATA[
  380. var updtdata = getGridUpdateData(grd_ovtmworkapplist);
  381. if (updtdata != "") {
  382. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 초기화 작업을","Q003");
  383. if (ret != 6) { // not OK
  384. return;
  385. }
  386. }
  387. fInitialize();
  388. ]]>
  389. </script>
  390. </button>
  391. <input id="ipt_popworkgbn" ref="/root/send/retrparams/popworkgbn" class="input_search" visibility="hidden" style="left:980px; top:3px; width:20px; height:19px; "/>
  392. <input id="ipt_temp" ref="/root/main/templist/emplno" class="input_search" visibility="hidden" style="left:900px; top:3px; width:20px; height:19px; ">
  393. <script type="javascript" ev:event="xforms-value-changed">
  394. <![CDATA[
  395. rpbfValidationCheck("EMPLNO", "emplno,emplnm,dutunitcd,dutunitnm");
  396. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  397. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  398. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  399. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  400. model.refresh();
  401. ]]>
  402. </script>
  403. </input>
  404. <output id="opt_temp" ref="/root/send/retrparams/temp" visibility="hidden" style="left:765px; top:4px; width:85px; height:19px; "/>
  405. <input id="ipt_temp2" ref="/root/main/templist/emplnm" class="input_search" visibility="hidden" style="left:920px; top:3px; width:20px; height:19px; ">
  406. <script type="javascript" ev:event="xforms-value-changed">
  407. <![CDATA[
  408. rpbfValidationCheck("EMPLNM", "emplno,emplnm,dutunitcd,dutunitnm");
  409. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplno")) = model.getValue("/root/main/templist/emplno");
  410. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("emplnm")) = model.getValue("/root/main/templist/emplnm");
  411. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptcd")) = model.getValue("/root/main/templist/dutunitcd");
  412. grd_ovtmworkapplist.valueMatrix(grd_ovtmworkapplist.row, grd_ovtmworkapplist.colRef("dutplcedeptnm")) = model.getValue("/root/main/templist/dutunitnm");
  413. model.refresh();
  414. ]]>
  415. </script>
  416. </input>
  417. <input id="ipt_dutym_s" ref="/root/send/retrparams/dutym_s" class="input_search" visibility="hidden" style="left:960px; top:3px; width:20px; height:19px; "/>
  418. <input id="ipt_instnm" ref="/root/send/retrparams/instnm" class="input_search" visibility="hidden" style="left:1020px; top:3px; width:30px; height:19px; "/>
  419. <input id="ipt_dutplceinstcd" ref="/root/send/retrparams/dutplceinstcd" class="input_search" visibility="hidden" style="left:1000px; top:3px; width:20px; height:19px; "/>
  420. <input id="input1" ref="/root/send/retrparams/retrflag" class="input_search" visibility="hidden" style="left:875px; top:5px; width:20px; height:19px; "/>
  421. <input id="ipt_dutym_e" ref="/root/send/retrparams/dutym_e" class="input_search" visibility="hidden" style="left:825px; top:5px; width:19px; height:19px; "/>
  422. </group>
  423. </xhtml:body>
  424. </xhtml:html>