SMRPH01300_재임용회차관리.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453
  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. <list>
  11. <reapntlist/>
  12. <examitemlist/>
  13. </list>
  14. <edit>
  15. <valubase/>
  16. <etc/>
  17. <grdrow/>
  18. </edit>
  19. </main>
  20. <send>
  21. <condition>
  22. <instcd/>
  23. <reapntyy/>
  24. </condition>
  25. <save>
  26. <reapntlist/>
  27. <examitemlist/>
  28. </save>
  29. <condition2>
  30. <instcd/>
  31. <reapntyy/>
  32. <reapntseq/>
  33. </condition2>
  34. </send>
  35. <init>
  36. <checkall/>
  37. </init>
  38. <hidden>
  39. <temp/>
  40. </hidden>
  41. <temp>
  42. </temp>
  43. </root>
  44. </instance>
  45. <script type="javascript" ev:event="xforms-ready">
  46. <![CDATA[
  47. btn_save. disabled = !checkAuth("X");
  48. fInit();
  49. // model.removenode("/root/main/promotnflag");
  50. // model.removenode("/root/main/promotnflagdetl");
  51. misfGridInit(grd_reapnttime);
  52. misfMsterDetailSet(grd_reapnttime, null, "TRRPH01301", "N"); // 재임용회차관리 조회
  53. ]]>
  54. </script>
  55. <script type="javascript">
  56. <![CDATA[
  57. //화면 실행시 기준일자에 현제 날짜를 넣는다.
  58. function fInit()
  59. {
  60. setCurDate();
  61. fInitialize();
  62. }
  63. function setCurDate()
  64. {
  65. var curDate = getCurrentDate().toDate();
  66. model.setValue("/root/send/condition/reapntyy", curDate.getDateFormat('YYYY'));
  67. model.setValue("/root/send/condition/instcd", getUserInfo("dutplceinstcd"));
  68. }
  69. function fAddDelRow(sStatus)
  70. {
  71. if(sStatus == "A")
  72. {
  73. misfGridIUD(grd_reapnttime, sStatus);
  74. grd_reapnttime.valueMatrix(grd_reapnttime.row, grd_reapnttime.colRef("instcd")) = getUserInfo("dutplceinstcd");
  75. grd_reapnttime.valueMatrix(grd_reapnttime.row, grd_reapnttime.colRef("reapntyy")) = model.getValue("/root/send/condition/reapntyy");
  76. }
  77. else
  78. {
  79. misfGridIUD(grd_reapnttime, sStatus);
  80. }
  81. model.refresh();
  82. }
  83. function fRetrieve()
  84. {
  85. model.removeNodeset("/root/main/list/reapntlist");
  86. model.removeNodeset("/root/main/list/examitemlist");
  87. model.refresh();
  88. misfMsterDetailRetrieve();
  89. }
  90. function fEditBaseEtc(pRow)
  91. {
  92. if ( pRow > 0 )
  93. {
  94. model.reset("/root/main/edit");
  95. model.setValue("/root/main/edit/grdrow",pRow);
  96. var strValuBase
  97. strValuBase = grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("valubase"));
  98. model.setValue("/root/main/edit/valubase",strValuBase);
  99. var strEtc
  100. strEtc = grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("etc"));
  101. model.setValue("/root/main/edit/etc",strEtc);
  102. model.refresh();
  103. }
  104. }
  105. function fChangeBaseEtcInfo(para)
  106. {
  107. var strrow ;
  108. var pRow ;
  109. strrow = model.getValue("/root/main/edit/grdrow");
  110. pRow = parseInt(strrow);
  111. var rowStaus = grd_examitemlist.rowStatus(pRow);
  112. // model.alert("row:" + pRow + "status :" + rowStaus);
  113. if ( para == '1')
  114. {
  115. grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("valubase")) = model.getValue("/root/main/edit/valubase");
  116. } else
  117. {
  118. grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("etc")) = model.getValue("/root/main/edit/etc");
  119. }
  120. if ( rowStaus != 3 && rowStaus != 1 ) {
  121. grd_examitemlist.rowStatus(pRow) = 2;
  122. }
  123. model.refresh();
  124. }
  125. // 재임용 회차별 평가항목 조회
  126. function fRetriveTestItem(pRow)
  127. {
  128. if ( pRow > 0 )
  129. {
  130. model.resetInstanceNode("/root/main/list/examitemlist");
  131. model.removeNodeset("/root/main/list/examitemlist");
  132. model.refresh();
  133. model.setValue("/root/send/condition2/instcd",getUserInfo("dutplceinstcd"));
  134. var strYy
  135. strYy = grd_reapnttime.valueMatrix(pRow, grd_reapnttime.colRef("reapntyy"));
  136. model.setValue("/root/send/condition2/reapntyy",strYy);
  137. var strSeq
  138. strSeq = grd_reapnttime.valueMatrix(pRow, grd_reapnttime.colRef("reapntseq"));
  139. model.setValue("/root/send/condition2/reapntseq",strSeq);
  140. submit("TRRPH01303");
  141. model.refresh();
  142. }
  143. }
  144. // 평가항목 등록을 위한 그리드 상태 변경
  145. function fValueChage(pRow,pCol)
  146. {
  147. var sExits = grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("chck2"));
  148. var sInsChk = grd_examitemlist.valueMatrix(pRow, grd_examitemlist.colRef("chck"));
  149. // 원래 입력되지 않음
  150. if (sExits == 'N' ) {
  151. if ( sInsChk == 'Y' ) {
  152. // 입력 선택
  153. grd_examitemlist.rowStatus(pRow) = 1;
  154. } else
  155. {
  156. // 입력 선택 되지 않음
  157. grd_examitemlist.rowStatus(pRow) = 0;
  158. }
  159. }
  160. // 기존 입력 되어 있음
  161. if (sExits == 'Y' ) {
  162. if ( sInsChk == 'Y' ) {
  163. // 입력 선택
  164. grd_examitemlist.rowStatus(pRow) = 2;
  165. } else
  166. {
  167. // 입력 선택 되지 않음
  168. grd_examitemlist.rowStatus(pRow) = 4;
  169. }
  170. }
  171. }
  172. function fTestItemCheck()
  173. {
  174. var sCheckVal = model.getValue("/root/init/checkall");
  175. var oldStatus;
  176. if (sCheckVal = 'Y') {
  177. var grdTolCnt;
  178. grdTolCnt = grd_examitemlist.rows;
  179. if (grdTolCnt > 1 )
  180. {
  181. for ( i = 1; i <= grdTolCnt; i++)
  182. {
  183. oldStatus = grd_examitemlist.valueMatrix(i, grd_examitemlist.colRef("chck")) ;
  184. if ( oldStatus != 'Y' ) {
  185. grd_examitemlist.valueMatrix(i, grd_examitemlist.colRef("chck")) = 'Y';
  186. fValueChage(i, 1) ;
  187. }
  188. }
  189. }
  190. }
  191. }
  192. ]]>
  193. </script>
  194. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  195. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  196. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  197. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  198. <submission id="TRRPH01301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/condition" resultref="/root/main/reapntlist"/>
  199. <submission id="TXRPH01302" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save/reapntlist" resultref="/root/temp"/>
  200. <submission id="TRRPH01303" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/condition2" resultref="/root/main/examitemlist"/>
  201. <submission id="TXRPH01304" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save/examitemlist" resultref="/root/temp"/>
  202. </model>
  203. <script type="javascript">
  204. <![CDATA[
  205. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  206. function fInitialize() {
  207. // model.removeNodeset("/root/main/promotnflag");
  208. model.removeNodeset("/root/main/list/reapntlist");
  209. model.removeNodeset("/root/main/list/examitemlist");
  210. model.reset("/root/main/edit");
  211. // model.resetInstanceNode("/root/send");
  212. model.refresh();
  213. }
  214. ]]>
  215. </script>
  216. </xhtml:head>
  217. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  218. <group id="group5" scroll="auto" style="left:0px; top:38; width:1195px; height:744px; ">
  219. <group id="appdd1111" style="left:0px; top:10px; width:1195; height:35px; vertical-align:top; ">
  220. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:35px; "/>
  221. <caption id="caption21" class="search_name" style="left:15px; top:9px; width:99px; height:17px; ">년도 :</caption>
  222. <script type="javascript" ev:event="xforms-value-changed">
  223. <![CDATA[
  224. btn_search.dispatch("DOMActivate");
  225. ]]>
  226. </script>
  227. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:8px; width:56px; height:22px; ">
  228. <caption>조회</caption>
  229. <script type="javascript" ev:event="DOMActivate">
  230. <![CDATA[
  231. fRetrieve();
  232. //misfSetReadOnlyCol(grd_promotnflaglist, "promotnflag,promotnflagnm,appdd", true); // 읽기전용으로 바꾸는 공통코드
  233. ]]>
  234. </script>
  235. </button>
  236. <line id="line13" class="line_4" style="top:7; x1:1110px; y1:8px; x2:1110px; y2:30px; border-left-style:solid; "/>
  237. <input id="ipt_reapntyy" ref="/root/send/condition/reapntyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:120px; top:10px; width:120px; height:19px; "/>
  238. </group>
  239. <caption id="caption48" class="tit_2" style="left:10px; top:55px; width:100px; height:14px; ">재임용회차</caption>
  240. <line id="line20" class="line_1" style="x1:0px; y1:70px; x2:645px; y2:70px; "/>
  241. <datagrid id="grd_reapnttime" nodeset="/root/main/list/reapntlist" caption="기관코드^재임용^회차^재임용명^대상기간^대상기간^종료^기타|기관코드^년도^회차^재임용명^From^To^여부^기타" colsep="^" colwidth="0, 54, 36, 162, 90, 89, 32, 147" dataheight="23" defaultrows="0" ellipsis="true" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:75px; width:645px; height:655px; ">
  242. <col ref="instcd" visibility="hidden"/>
  243. <col ref="reapntyy" maxlength="4" style="text-align:center; vertical-align:middle; "/>
  244. <col ref="reapntseq" maxlength="2" style="text-align:center; vertical-align:middle; "/>
  245. <col ref="reapntnm" type="input" style="text-align:center; vertical-align:middle; "/>
  246. <col ref="trgtfrdt" type="inputdate"/>
  247. <col ref="trgttodt" type="inputdate"/>
  248. <col ref="endyn" type="combo" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; ">
  249. <choices>
  250. <item>
  251. <label>N</label>
  252. <value>N</value>
  253. </item>
  254. <item>
  255. <label>Y</label>
  256. <value>Y</value>
  257. </item>
  258. </choices>
  259. </col>
  260. <col ref="etc" type="input" style="text-align:left; vertical-align:middle; "/>
  261. <script type="javascript" ev:event="onrowchanged">
  262. <![CDATA[
  263. var cur_row = grd_reapnttime.row;
  264. fRetriveTestItem(cur_row);
  265. ]]>
  266. </script>
  267. <script type="javascript" ev:event="DOMFocusIn">
  268. <![CDATA[
  269. //grd_reapnttime.dispatch("onrowchanged");
  270. ]]>
  271. </script>
  272. </datagrid>
  273. <button id="btn_promotnflaglist" class="btn2_letter3" style="left:590px; top:50px; width:53px; height:19px; ">
  274. <caption>행삭제</caption>
  275. <script type="javascript" ev:event="onclick">
  276. <![CDATA[
  277. fAddDelRow("D");
  278. ]]>
  279. </script>
  280. </button>
  281. <button id="button2" class="btn2_letter3" style="left:535px; top:50px; width:53px; height:19px; ">
  282. <caption>행추가</caption>
  283. <script type="javascript" ev:event="onclick">
  284. <![CDATA[
  285. fAddDelRow("A");
  286. //misfGridIUD(grd_promotnflaglist, "A"); // grd_promotnflaglist에 들어 있는 그리드에 행을 추가한다.[공동코드 = misGridUD]
  287. ]]>
  288. </script>
  289. </button>
  290. <button id="button3" class="btn4_letter3" style="left:1115px; top:611px; width:68px; height:22px; ">
  291. <caption>적용</caption>
  292. <script type="javascript" ev:event="DOMActivate">
  293. <![CDATA[
  294. fChangeBaseEtcInfo("2");
  295. ]]>
  296. </script>
  297. </button>
  298. <caption id="caption1" class="tit_2" style="left:665px; top:55px; width:113px; height:13px; ">회차별 평가항목</caption>
  299. <line id="line1" class="line_1" style="x1:660px; y1:70px; x2:1185px; y2:70px; "/>
  300. <datagrid id="grd_examitemlist" nodeset="/root/main/list/examitemlist" caption="선택^기관코드^대분류^중분류^소분류^평가명^배점^평가기준^적용시작일^기타^체크^년도^회차" colsep="^" colwidth="30, 0, 42, 42, 42, 196, 30, 110, 0, 0, 0, 0, 0" dataheight="23" defaultrows="0" ellipsis="true" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:660px; top:75px; width:525px; height:395px; ">
  301. <col checkvalue="Y,N" ref="chck" type="checkbox"/>
  302. <col ref="instcd" visibility="hidden"/>
  303. <col ref="lrgcd" maxlength="2" style="text-align:center; vertical-align:middle; "/>
  304. <col ref="mldcd" maxlength="2" style="text-align:center; vertical-align:middle; "/>
  305. <col ref="smlcd" maxlength="2" style="text-align:center; vertical-align:middle; "/>
  306. <col ref="cdnm"/>
  307. <col ref="valuscor" type="input" format="####.#" style="text-align:right; vertical-align:middle; "/>
  308. <col ref="valubase" type="input"/>
  309. <col ref="appfrdt" type="input" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; "/>
  310. <col ref="etc" type="input" style="text-align:left; vertical-align:middle; "/>
  311. <col ref="chck2" style="text-align:left; vertical-align:middle; "/>
  312. <col ref="reapntyy" style="text-align:left; vertical-align:middle; "/>
  313. <col ref="reapntseq" style="text-align:left; vertical-align:middle; "/>
  314. <script type="javascript" ev:event="onrowchanged">
  315. <![CDATA[
  316. var cur_row = grd_examitemlist.row;
  317. fEditBaseEtc(cur_row);
  318. ]]>
  319. </script>
  320. <script type="javascript" ev:event="DOMFocusIn">
  321. <![CDATA[
  322. grd_examitemlist.dispatch("onrowchanged");
  323. ]]>
  324. </script>
  325. <script type="javascript" ev:event="xforms-value-changed">
  326. <![CDATA[
  327. var cur_row = grd_examitemlist.row;
  328. var cur_col = grd_examitemlist.col;
  329. fValueChage(cur_row,cur_col );
  330. ]]>
  331. </script>
  332. </datagrid>
  333. <textarea id="textarea1" ref="/root/main/edit/valubase" style="left:660px; top:500px; width:525px; height:100px; "/>
  334. <textarea id="textarea2" ref="/root/main/edit/etc" style="left:660px; top:635px; width:525px; height:95px; "/>
  335. <button id="button1" class="btn4_letter3" style="left:1115px; top:475px; width:68px; height:22px; ">
  336. <caption>적용</caption>
  337. <script type="javascript" ev:event="DOMActivate">
  338. <![CDATA[
  339. fChangeBaseEtcInfo("1");
  340. ]]>
  341. </script>
  342. </button>
  343. <caption id="caption2" class="tit_2" style="left:660px; top:485px; width:75px; height:13px; ">평가기준</caption>
  344. <caption id="caption3" class="tit_2" style="left:660px; top:620px; width:75px; height:13px; ">기타</caption>
  345. <button id="button4" class="btn4_letter3" style="left:1115px; top:476px; width:68px; height:22px; ">
  346. <caption>적용</caption>
  347. <script type="javascript" ev:event="DOMActivate">
  348. <![CDATA[
  349. fChangeBaseEtcInfo("1");
  350. ]]>
  351. </script>
  352. </button>
  353. <caption id="caption4" class="tit_2" style="left:660px; top:485px; width:75px; height:13px; ">평가기준</caption>
  354. <select id="chkall" ref="/root/init/checkall" overflow="visible" appearance="full" style="left:1085px; top:55px; width:100px; height:20px; border-style:none; ">
  355. <choices>
  356. <item>
  357. <label>전체선택</label>
  358. <value>Y</value>
  359. </item>
  360. </choices>
  361. <script type="javascript" ev:event="onclick">
  362. <![CDATA[
  363. fTestItemCheck();
  364. ]]>
  365. </script>
  366. </select>
  367. </group>
  368. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  369. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">재임용회차관리</caption>
  370. </group>
  371. <group id="group4" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  372. <line id="line75" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25px; "/>
  373. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:3; width:56px; height:22px; ">
  374. <caption>저장</caption>
  375. <script type="javascript" ev:event="DOMActivate">
  376. <![CDATA[
  377. model.reset("/root/send/save/reapntlist");
  378. model.setValue("/root/send/save/reapntlist", grd_reapnttime.getUpdateData());
  379. model.refresh();
  380. misfSave("TXRPH01302");
  381. model.reset("/root/send/save/examitemlist");
  382. model.setValue("/root/send/save/examitemlist", grd_examitemlist.getUpdateData());
  383. model.refresh();
  384. misfSave("TXRPH01304");
  385. fRetrieve();
  386. ]]>
  387. </script>
  388. </button>
  389. <button id="btn_init" class="btn4_letter3" style="left:1069px; top:3px; width:68px; height:22px; ">
  390. <caption>초기화</caption>
  391. <script type="javascript" ev:event="DOMActivate">
  392. <![CDATA[
  393. var updtdata = grd_examitemlist(grd_datalist);
  394. if (updtdata != "") {
  395. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 초기화 작업을","Q003");
  396. if (ret != 6) { // not OK
  397. return;
  398. }
  399. }
  400. fInitialize();
  401. ]]>
  402. </script>
  403. </button>
  404. </group>
  405. </xhtml:body>
  406. </xhtml:html>