SMRPS03700_교육신청및변경승인(부서장용).xrw 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  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>SMRPS03500_교육신청및변경승인</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list1>
  11. <educprcslist/>
  12. <educprcslist1/>
  13. </list1>
  14. <list2>
  15. <eductrgtemplist/>
  16. </list2>
  17. </main>
  18. <send>
  19. <retrparams1>
  20. <instcd/>
  21. <appyy/>
  22. <mainbdunit/>
  23. <educflag/>
  24. <dutunitcd/>
  25. <dutunitnm/>
  26. <emplno/>
  27. <emplnm/>
  28. <cmpltyn/>
  29. <dutinstcd/>
  30. <dutinstnm/>
  31. </retrparams1>
  32. <retrparams2>
  33. <educcd/>
  34. <educdg/>
  35. <instcd/>
  36. <dutdeptcd/>
  37. <appyy/>
  38. <dutinstcd/>
  39. <cmpltyn/>
  40. <emplno/>
  41. <gubun/>
  42. </retrparams2>
  43. <retrparams3>
  44. </retrparams3>
  45. </send>
  46. <init>
  47. <item>
  48. <value>N</value>
  49. <label>미처리</label>
  50. </item>
  51. <item>
  52. <value>Y</value>
  53. <label>승인</label>
  54. </item>
  55. <item>
  56. <value>R</value>
  57. <label>반려</label>
  58. </item>
  59. <itemset>
  60. <set1>
  61. <value/>
  62. <label/>
  63. </set1>
  64. </itemset>
  65. </init>
  66. <temp/>
  67. </root>
  68. </instance>
  69. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  70. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  72. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  73. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  74. <script type="javascript" src="../../../mis/educationmngtweb/js/RPS001.js"/>
  75. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  76. <script type="javascript" ev:event="xforms-ready">
  77. <![CDATA[
  78. fCheckAuth();
  79. fInit();
  80. ]]>
  81. </script>
  82. <script type="javascript">
  83. <![CDATA[
  84. var sAllSelYn = "N";
  85. //========================================================================================
  86. //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력/수정/삭제, P : 출력)
  87. //========================================================================================
  88. function fCheckAuth() {
  89. btn_search.disabled = !checkAuth("R") ;
  90. btn_save.disabled = !checkAuth("X") ;
  91. var userinstcd = getUserInfo("dutplceinstcd");
  92. var userdeptcd = getUserInfo("dutplcecd");
  93. if( checkAuth("X") ) { // 저장권한이 있으면(부서장권한이면)
  94. ipt_dutinstcd.disabled = true ;
  95. btn_dutinst.disabled = true;
  96. ipt_dutinstnm.disabled = true;
  97. ipt_dutunitcd.disabled = true;
  98. btn_dutunit.disabled = true;
  99. ipt_dutunitnm.disabled = true;
  100. ipt_emplno.disabled = false;
  101. btn_empl.disabled = false;
  102. ipt_emplnm.disabled = false;
  103. }
  104. model.refresh();
  105. }
  106. function fInit()
  107. {
  108. model.setValue("/root/send/retrparams1/appyy", getCurrentDate().substr(0, 4));
  109. model.removenode("/root/main/list1/educprcslist");
  110. model.removenode("/root/main/list1/educprcslist1");
  111. model.removenode("/root/main/list2/eductrgtemplist");
  112. misfMsterDetailSet(grd_educprcslist, null, "TRRPS03501", "N", "byRow");
  113. misfMsterDetailSet(grd_eductrgtemplist, null, "TRRPS03702", "Y");
  114. // 기관, 부서를 user session에 있는 내용을 세팅한다.
  115. model.setValue("/root/send/retrparams1/dutunitcd", getUserInfo("dutplcecd"));
  116. model.setValue("/root/send/retrparams1/dutunitnm", getUserInfo("dutplcenm"));
  117. model.setValue("/root/send/retrparams1/dutinstcd", getUserInfo("dutplceinstcd"));
  118. model.setValue("/root/send/retrparams1/dutinstnm", getUserInfo("dutplceinstnm"));
  119. fCheck() ;
  120. model.removenode("/root/main/list2/eductrgtemplist");
  121. model.refresh();
  122. grd_educprcslist1.rowHeight(0) = 43;
  123. grd_eductrgtemplist.fixedcellcheckbox(1,grd_eductrgtemplist.colRef("deptchk"))=true; // 그리드에 있는 전체선택 체크박스
  124. misfGetAndSetUserInfo(); // 사용자 정보를 가져오는 함수
  125. misfGetUserAuth();
  126. btn_search.dispatch("DOMActivate");
  127. }
  128. function fCheck() {
  129. var userinstcd = getUserInfo("dutplceinstcd");
  130. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("lastaprvyn") ) = true;
  131. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("lastchk") ) = true;
  132. model.refresh();
  133. }
  134. function fEducListRetrieve()
  135. {
  136. model.removeNodeset("/root/main/list2/eductrgtemplist");
  137. grd_eductrgtemplist.refresh();
  138. var iRowIdx = grd_educprcslist.row;
  139. submit("TRRPS03501");
  140. fListAddCombo() ;
  141. if(grd_educprcslist.rows > 1)
  142. {
  143. if(iRowIdx == -1) iRowIdx = 1;
  144. else
  145. if(iRowIdx > grd_educprcslist.rows) iRowIdx = grd_educprcslist.rows - 1;
  146. grd_educprcslist.row = iRowIdx;
  147. grd_educprcslist.select(iRowIdx, 1, iRowIdx, 10) = true;
  148. grd_educprcslist.dispatch("onrowchanged");
  149. }
  150. else
  151. {
  152. model.removeNodeset("/root/main/list2/eductrgtemplist");
  153. model.refresh();
  154. }
  155. }
  156. function feducdtlistRetrieve()
  157. {
  158. model.setValue("/root/send/retrparams2/educcd", grd_educprcslist1.valueMatrix(grd_educprcslist1.row, grd_educprcslist1.colRef("educcd"))); // 교육코드
  159. model.setValue("/root/send/retrparams2/educdg", grd_educprcslist1.valueMatrix(grd_educprcslist1.row, grd_educprcslist1.colRef("educdg"))); // 교육차수
  160. model.setValue("/root/send/retrparams2/gubun", grd_educprcslist1.valueMatrix(grd_educprcslist1.row, grd_educprcslist1.colRef("gubun"))); // 교육차수
  161. model.setValue("/root/send/retrparams2/appyy", ipt_yyyy.value); // 적용년도
  162. model.setValue("/root/send/retrparams2/cmpltyn", rdo_cmpltyn.value); // 승인여부
  163. model.setValue("/root/send/retrparams2/dutinstcd", ipt_dutinstcd.value); // 근무기관
  164. model.setValue("/root/send/retrparams2/dutdeptcd", ipt_dutunitcd.value); // 근무부서
  165. model.setValue("/root/send/retrparams2/emplno", ipt_emplno.value); // 사원번호
  166. submit("TRRPS03702");
  167. if( grd_educprcslist1.valueMatrix(grd_educprcslist1.row, grd_educprcslist1.colRef("gubun")) == "N" ) {
  168. grd_eductrgtemplist.fixedcellcheckbox(1,grd_eductrgtemplist.colRef("deptchk"))=false;
  169. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptaprvyn") ) = true;
  170. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptchk") ) = true;
  171. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptreturn") ) = true;
  172. }
  173. else {
  174. grd_eductrgtemplist.fixedcellcheckbox(1,grd_eductrgtemplist.colRef("deptchk"))=true;
  175. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptaprvyn") ) = false;
  176. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptchk") ) = false;
  177. grd_eductrgtemplist.colDisabled(grd_eductrgtemplist.colRef("deptreturn") ) = false;
  178. }
  179. fCheck() ;
  180. }
  181. function fRgstTrgtManList()
  182. {
  183. if(grd_educprcslist.rows == 1)
  184. {
  185. messageBox("교육내용을", "C002");
  186. return;
  187. }
  188. for(var i=1; i<grd_emplist.rows; i++)
  189. {
  190. var sChk = grd_emplist.valueMatrix(i, grd_emplist.colRef("chk"));
  191. if(sChk == "Y")
  192. {
  193. var sEmplno = model.getValue(grd_emplist.nodeset + "[" + i + "]/emplno");
  194. var iRowIdx = grd_eductrgtemplist.findRow(sEmplno, 0, grd_eductrgtemplist.colRef("emplno"));
  195. if(iRowIdx != -1) continue;
  196. misfGridIUD(grd_eductrgtemplist, "A");
  197. }
  198. }
  199. }
  200. function fSave()
  201. {
  202. model.makeNode("/root/send/retrparams3");
  203. model.setValue("/root/send/retrparams3", grd_eductrgtemplist.getUpdateData());
  204. if( submit("TXRPS03501") )
  205. messageBox("","I001");
  206. grd_eductrgtemplist.fixedcellischeck(1,grd_eductrgtemplist.colRef("deptchk"))=false;
  207. }
  208. function fListAddCombo() {
  209. // 교육명 세팅
  210. for(var i = grd_educprcslist.fixedRows, j = grd_educprcslist1.fixedRows; i < grd_educprcslist.rows; i++ ) {
  211. if( i == "1" ) { // grd_educprcslist1에 아무내용도 없을때는 무조건 addrow
  212. grd_educprcslist1.addRow(false);
  213. grd_educprcslist1.valueMatrix(i,grd_educprcslist1.colRef("educcd")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd"));
  214. grd_educprcslist1.valueMatrix(i,grd_educprcslist1.colRef("educcdnm")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcdnm"));
  215. grd_educprcslist1.valueMatrix(i,grd_educprcslist1.colRef("gubun")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("gubun"));
  216. j++;
  217. }
  218. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) == grd_educprcslist1.valueMatrix(1,grd_educprcslist1.colRef("educcd")) ) {
  219. continue;
  220. }
  221. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) == grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("educcd")) ) {
  222. continue;
  223. }
  224. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) != grd_educprcslist1.valueMatrix(j-1,grd_educprcslist1.colRef("educcd")) ) {
  225. // educcd가 다른경우
  226. grd_educprcslist1.addRow(false);
  227. grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("educcd")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd"));
  228. grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("educcdnm")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcdnm"));
  229. grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("gubun")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("gubun"));
  230. j++;
  231. }
  232. }
  233. // 차수 콤보 세팅
  234. var dg = 1;
  235. for(var i = grd_educprcslist.fixedRows, j = grd_educprcslist1.fixedRows; i < grd_educprcslist.rows; i++ ) {
  236. if( i == grd_educprcslist.fixedRows && j == grd_educprcslist1.fixedRows) { // 맨첫번째 row일때
  237. model.makeNode("/root/init/itemset/set"+i+"["+dg+"]/value");
  238. model.makeNode("/root/init/itemset/set"+i+"["+dg+"]/label");
  239. model.setValue("/root/init/itemset/set"+i+"["+dg+"]/value","");
  240. model.setValue("/root/init/itemset/set"+i+"["+dg+"]/label","전체");
  241. dg++;
  242. model.makeNode("/root/init/itemset/set"+i+"["+dg+"]/value");
  243. model.makeNode("/root/init/itemset/set"+i+"["+dg+"]/label");
  244. model.setValue("/root/init/itemset/set"+i+"["+dg+"]/value",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  245. model.setValue("/root/init/itemset/set"+i+"["+dg+"]/label",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  246. }
  247. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) == grd_educprcslist1.valueMatrix(1,grd_educprcslist1.colRef("educcd")) ) {
  248. // 첫번째 row의 educcd와 현재진행중인row의 educcd가 같으면 차수만 추가
  249. dg++;
  250. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/value");
  251. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/label");
  252. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/value",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  253. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/label",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  254. }
  255. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) == grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("educcd")) ) {
  256. dg++;
  257. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/value");
  258. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/label");
  259. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/value",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  260. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/label",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  261. }
  262. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) != grd_educprcslist1.valueMatrix(j,grd_educprcslist1.colRef("educcd")) ) {
  263. // educcd가 다른경우
  264. dg = 1;
  265. j++
  266. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/value");
  267. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/label");
  268. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/value","");
  269. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/label","전체");
  270. dg++;
  271. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/value");
  272. model.makeNode("/root/init/itemset/set"+j+"["+dg+"]/label");
  273. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/value",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  274. model.setValue("/root/init/itemset/set"+j+"["+dg+"]/label",grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")));
  275. }
  276. }
  277. // itemset을 row별로 설정..
  278. for(var i = grd_educprcslist1.fixedRows; i < grd_educprcslist1.rows; i++ ) {
  279. grd_educprcslist1.cellComboNodeset(i, 2) = "/root/init/itemset/set"+i;
  280. }
  281. grd_educprcslist1.row = 1; // grd_educprcslist1그리드의 1번 row를 선택한것과 같음.
  282. model.refresh();
  283. }
  284. function fCheckYN( row, col ) {
  285. if( grd_eductrgtemplist.colRef("deptchk") == col && grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("deptchk")) == 'Y' ) {
  286. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagd")) = "D";
  287. }
  288. else if( grd_eductrgtemplist.colRef("deptchk") == col ){
  289. }
  290. if( grd_eductrgtemplist.colRef("lastchk") == col && grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("lastchk")) == 'Y' ) {
  291. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagl")) = "L";
  292. }
  293. else if( grd_eductrgtemplist.colRef("lastchk") == col) {
  294. }
  295. if( grd_eductrgtemplist.colRef("deptaprvyn") == col ) {
  296. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagd")) = "D";
  297. }
  298. if( grd_eductrgtemplist.colRef("deptreturn") == col ) {
  299. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagd")) = "D";
  300. }
  301. if( grd_eductrgtemplist.colRef("lastaprvyn") == col ) {
  302. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagl")) = "L";
  303. }
  304. if( grd_eductrgtemplist.colRef("lastreturn") == col ) {
  305. grd_eductrgtemplist.valueMatrix(row,grd_eductrgtemplist.colRef("flagl")) = "L";
  306. }
  307. }
  308. function fSetColor() {
  309. grd_eductrgtemplist.rebuildStyle();
  310. for( var idx = grd_eductrgtemplist.fixedRows; idx <= grd_eductrgtemplist.rows; idx ++ ) {
  311. if( grd_eductrgtemplist.valueMatrix(idx, grd_eductrgtemplist.colRef("deptaprvyn")) == 'Y' ) { // 부서장승인상태이면
  312. grd_eductrgtemplist.rowStyle(idx, "data", "color") = "blue";
  313. }
  314. else if( grd_eductrgtemplist.valueMatrix(idx, grd_eductrgtemplist.colRef("lastaprvyn")) == 'Y' ) { // 인사팀확인상태이면
  315. grd_eductrgtemplist.rowStyle(idx, "data", "color") = "blue";
  316. }
  317. else if( grd_eductrgtemplist.valueMatrix(idx, grd_eductrgtemplist.colRef("deptaprvyn")) == 'R' ) { // 부서장승인상태이면
  318. grd_eductrgtemplist.rowStyle(idx, "data", "color") = "red";
  319. }
  320. else if( grd_eductrgtemplist.valueMatrix(idx, grd_eductrgtemplist.colRef("lastaprvyn")) == 'R' ) { // 인사팀확인상태이면
  321. grd_eductrgtemplist.rowStyle(idx, "data", "color") = "red";
  322. }
  323. }
  324. model.refresh();
  325. }
  326. ]]>
  327. </script>
  328. <submission id="TRRPS03501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams1" resultref="/root/main/list1"/>
  329. <submission id="TRRPS03702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams2" resultref="/root/main/list2"/>
  330. <submission id="TXRPS03501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams3" resultref="root/temp"/>
  331. </model>
  332. </xhtml:head>
  333. <xhtml:body pagewidth="1211" pageheight="784" guideline="1,1195;" style="margin-left:8; margin-right:8; ">
  334. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  335. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">교육신청 및 변경승인 (부서장용)</caption>
  336. </group>
  337. <group id="group2" scroll="auto" style="left:0px; top:39px; width:1195px; height:744px; ">
  338. <datagrid id="grd_eductrgtemplist" nodeset="/root/main/list2/eductrgtemplist" autoresize="true" caption="이전차수^차수^기관^부서^사번^이 름^교육기간^교육기간^변경사유^이수여부^부서장^부서장^부서장^인사팀^인사팀^flagD^flagL^caption1^caption2^caption3|이전차수^차수^기관^부서^사번^이 름^From^To^변경사유^이수여부^^승인여부^반려사유^^확인여부^flagD^flagL^caption1^caption2^caption3" colsep="^" colwidth="34, 35, 110, 100, 60, 65, 90, 90, 200, 35, 30, 70, 100, 30, 70, 44, 44, 6, 5, 5" dataheight="25" explorerbar="sortshow" mergecellsfixedrows="byrowrec" rowheader="update" rowsep="|" style="left:281px; top:71px; width:914px; height:669px; ">
  339. <col ref="appdg" visibility="hidden"/>
  340. <col ref="educdg" visibility="visible" style="text-align:center; "/>
  341. <col ref="dutinstcd"/>
  342. <col ref="deptnm"/>
  343. <col ref="emplno" visibility="visible" style="text-align:center; "/>
  344. <col ref="emplnm" visibility="visible"/>
  345. <col disabled="true" ref="educfromdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  346. <col disabled="true" ref="eductodd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  347. <col ref="updtresn" visibility="visible"/>
  348. <col checkvalue="Y,N" disabled="true" ref="cmpltcursstdyyn" type="checkbox" visibility="hidden"/>
  349. <col checkvalue="Y,N" ref="deptchk" type="checkbox"/>
  350. <col disabled="false" ref="deptaprvyn" type="combo">
  351. <choices>
  352. <itemset nodeset="/root/init/item">
  353. <label ref="label"/>
  354. <value ref="value"/>
  355. </itemset>
  356. </choices>
  357. </col>
  358. <col ref="deptreturn" type="input"/>
  359. <col checkvalue="Y,N" ref="lastchk" type="checkbox"/>
  360. <col disabled="true" ref="lastaprvyn" type="combo">
  361. <choices>
  362. <itemset nodeset="/root/init/item">
  363. <label ref="label"/>
  364. <value ref="value"/>
  365. </itemset>
  366. </choices>
  367. </col>
  368. <col ref="flagd" visibility="hidden"/>
  369. <col ref="flagl" visibility="hidden"/>
  370. <col ref="instcd" visibility="hidden"/>
  371. <col ref="appyy" visibility="hidden"/>
  372. <col ref="educcd" visibility="hidden"/>
  373. <script type="javascript" ev:event="onaftersort">
  374. <![CDATA[
  375. grd_eductrgtemplist.gridToInstance();
  376. // gridToInstance : 현재 화면에 보이는 값으로 그리드의 인스턴스를 재구성
  377. ]]>
  378. </script>
  379. <script type="javascript" ev:event="xforms-value-changed">
  380. <![CDATA[
  381. // 셀의 데이터가 변경되었을때 발생하는 이벤트..변경된 데이터가 부서장승인인지, 인사팀 승인인지 구분하기 위해서 필요..
  382. var row = grd_eductrgtemplist.row;
  383. var col = grd_eductrgtemplist.col;
  384. fCheckYN(row,col);
  385. ]]>
  386. </script>
  387. <script type="javascript" ev:event="onmouseup">
  388. <![CDATA[
  389. var row = grd_eductrgtemplist.row;
  390. var col = grd_eductrgtemplist.col;
  391. if( grd_eductrgtemplist.valueMatrix(1,grd_eductrgtemplist.colRef("deptchk")) == grd_eductrgtemplist.valueMatrix(row,col) ) {
  392. // 부서장승인여부 전체선택이 클릭되었을때
  393. }
  394. else if( grd_eductrgtemplist.valueMatrix(1,grd_eductrgtemplist.colRef("lastchk")) == grd_eductrgtemplist.valueMatrix(row,col) ) {
  395. // 인사팀확인여부 전체선택이 클릭되었을때
  396. }
  397. ]]>
  398. </script>
  399. </datagrid>
  400. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:2px; width:1194px; height:39px; background-color:#fffbf2; border-color:#ffd799; "/>
  401. <line id="line13" class="line_4" style="x1:1124px; y1:6px; x2:1124px; y2:35px; "/>
  402. <caption id="caption20" class="tit_2" style="left:10px; top:374px; width:169px; height:13px; ">교육대상자등록</caption>
  403. <caption id="caption10" class="search_name" style="left:12px; top:13px; width:90px; height:17px; ">년 도 :</caption>
  404. <line id="line5" class="line_1" style="x1:0px; y1:67px; x2:1194px; y2:68px; "/>
  405. <caption id="caption9" class="tit_2" style="left:5px; top:52px; width:169px; height:13px; ">교육과정 리스트</caption>
  406. <input id="ipt_yyyy" ref="/root/send/retrparams1/appyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:75px; top:13px; width:60px; height:19px; text-align:center; ">
  407. <script type="javascript" ev:event="xforms-value-changed">
  408. <![CDATA[
  409. model.setValue("/root/send/retrparams2/appyy", "/root/send/retrparams1/appyy");
  410. fEducListRetrieve();
  411. ]]>
  412. </script>
  413. </input>
  414. <line id="line2" class="line_1" style="x1:277px; y1:68px; x2:278px; y2:738px; "/>
  415. <caption id="caption13" class="tit_2" style="left:285px; top:52px; width:169px; height:13px; ">직원 리스트</caption>
  416. <datagrid id="grd_educprcslist1" nodeset="/root/main/list1/educprcslist1" autoresize="true" caption="교육코드^과정명^개인신청^차수" colsep="^" colwidth="78, 180, 40, 63" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="25" rowsep="|" style="left:0px; top:71px; width:275px; height:669px; ">
  417. <col ref="educcd" visibility="hidden" style="text-align:left; "/>
  418. <col ref="educcdnm" style="text-align:left; "/>
  419. <col ref="gubun" visibility="visible" style="text-align:center; "/>
  420. <col ref="educdg" type="combo" style="text-align:center; ">
  421. <choices>
  422. <itemset nodeset="/root/init/itemset/set1">
  423. <label ref="label"/>
  424. <value ref="value"/>
  425. </itemset>
  426. </choices>
  427. </col>
  428. <script type="javascript" ev:event="ondblclick">
  429. <![CDATA[
  430. var rowcnt = grd_eductrgtemplist.rows-1;
  431. for( var i = 0; i < rowcnt; i++ ) {
  432. model.removenode("/root/main/list2/eductrgtemplist");
  433. }
  434. grd_eductrgtemplist.refresh();
  435. misfMsterDetailSet(grd_eductrgtemplist, null, "TRRPS03702", "Y");
  436. grd_educprcslist1.row = grd_educprcslist1.row;
  437. grd_educprcslist1.col = grd_educprcslist1.colRef("educcd");
  438. grd_educprcslist1.editCell();
  439. grd_educprcslist1.endEditCell();
  440. feducdtlistRetrieve();
  441. fSetColor();
  442. ]]>
  443. </script>
  444. <script type="javascript" ev:event="xforms-value-changed">
  445. <![CDATA[
  446. // 콤보박스의 내용이 변경되었을때...
  447. for(var i = grd_educprcslist.fixedRows; i < grd_educprcslist.rows; i++ ) {
  448. if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) == grd_educprcslist1.valueMatrix(grd_educprcslist1.row,grd_educprcslist1.colRef("educcd"))
  449. && grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educdg")) == grd_educprcslist1.valueMatrix(grd_educprcslist1.row,grd_educprcslist1.colRef("educdg")) ) {
  450. grd_educprcslist1.valueMatrix(grd_educprcslist1.row,grd_educprcslist1.colRef("emplcnt")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("emplcnt"));
  451. grd_educprcslist1.valueMatrix(grd_educprcslist1.row,grd_educprcslist1.colRef("educcapa")) = grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcapa"));
  452. }
  453. else if( grd_educprcslist.valueMatrix(i,grd_educprcslist.colRef("educcd")) != grd_educprcslist1.valueMatrix(grd_educprcslist1.row,grd_educprcslist1.colRef("educcd")) ) {
  454. // educcd가 다른경우
  455. continue;
  456. }
  457. }
  458. feducdtlistRetrieve();
  459. fSetColor();
  460. ]]>
  461. </script>
  462. </datagrid>
  463. <button id="btn_search" class="btn1_letter2" style="left:1131px; top:11px; width:56px; height:22px; ">
  464. <caption>조회</caption>
  465. <script type="javascript" ev:event="DOMActivate">
  466. <![CDATA[
  467. grd_eductrgtemplist.fixedcellischeck(1,10) = false; // 전체 체크박스를 초기화
  468. grd_eductrgtemplist.fixedcellischeck(1,12) = false; // 전체 체크박스를 초기화
  469. if( grd_educprcslist1.rows != grd_educprcslist1.fixedRows ) {
  470. ;
  471. }
  472. else {
  473. fEducListRetrieve();
  474. }
  475. feducdtlistRetrieve(); // 직원리스트 세팅
  476. fSetColor();
  477. grd_educprcslist1.autoResize = true;
  478. model.refresh();
  479. ]]>
  480. </script>
  481. </button>
  482. <button id="btn_saveexcel" class="btn2_letter4" style="left:1026px; top:46px; width:64px; height:19px; ">
  483. <caption>엑셀저장</caption>
  484. <script type="javascript" ev:event="DOMActivate">
  485. <![CDATA[
  486. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  487. grd_eductrgtemplist.saveExcel(fileName,"sheetname:sheet1;colhiddenextend:false;rowhiddenextend:false;col_2:label;col_11:label;col_14:label;");
  488. ]]>
  489. </script>
  490. </button>
  491. <caption id="caption16" class="search_name" style="left:390px; top:13px; width:100px; height:17px; ">부 서 :</caption>
  492. <caption id="caption24" class="search_name" style="left:610px; top:13px; width:100px; height:17px; ">사원번호 :</caption>
  493. <caption id="caption26" class="search_name" style="left:145px; top:13px; width:100px; height:17px; ">기 관 :</caption>
  494. <button id="btn_empl" class="icon_search" disabled="true" style="left:766px; top:13px; width:16px; height:16px; ">
  495. <caption/>
  496. <script type="javascript" ev:event="DOMActivate">
  497. <![CDATA[
  498. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm", "", "N");
  499. model.setValue("/root/send/retrparams2/emplno", ipt_emplno.value);
  500. model.refresh();
  501. ]]>
  502. </script>
  503. </button>
  504. <input id="ipt_emplnm" ref="/root/send/retrparams1/emplnm" class="input_search" disabled="true" navindex="7" style="left:782px; top:13px; width:50px; height:19px; text-align:center; "/>
  505. <input id="ipt_emplno" ref="/root/send/retrparams1/emplno" class="input_s_essential" disabled="true" navindex="6" style="left:697px; top:13px; width:68px; height:19px; text-align:center; "/>
  506. <caption id="caption4" class="search_name" style="left:835px; top:13px; width:91px; height:17px; ">승인여부 :</caption>
  507. <select1 id="rdo_cmpltyn" ref="/root/send/retrparams1/cmpltyn" appearance="full" cellspacing="2" cols="4" overflow="visible" style="left:920px; top:13px; width:199px; height:20px; border-style:none; ">
  508. <choices>
  509. <item>
  510. <label>전체</label>
  511. <value/>
  512. </item>
  513. <item>
  514. <label>미처리</label>
  515. <value>N</value>
  516. </item>
  517. <item>
  518. <label>승인</label>
  519. <value>Y</value>
  520. </item>
  521. <item>
  522. <label>반려</label>
  523. <value>R</value>
  524. </item>
  525. </choices>
  526. </select1>
  527. <button id="btn_dutunit" class="icon_search" disabled="true" style="left:588px; top:14px; width:16px; height:16px; ">
  528. <caption/>
  529. <script type="javascript" ev:event="DOMActivate">
  530. <![CDATA[
  531. misfOpenPopUpList("02", ipt_dutunitnm, "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  532. model.refresh();
  533. ]]>
  534. </script>
  535. </button>
  536. <input id="ipt_dutunitnm" ref="/root/send/retrparams1/dutunitnm" class="input_search" disabled="true" navindex="3" style="left:455px; top:13px; width:131px; height:19px; ">
  537. <script type="javascript" ev:event="xforms-value-changed">
  538. <![CDATA[
  539. misfValidationCheck("02", "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  540. model.refresh();
  541. ]]>
  542. </script>
  543. <script type="javascript" ev:event="onkeypress">
  544. <![CDATA[
  545. if(event.keyCode == 13) {
  546. ipt_dutunitnm.value = ipt_dutunitnm.currentText;
  547. misfValidationCheck("02", "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  548. model.refresh();
  549. }
  550. ]]>
  551. </script>
  552. </input>
  553. <input id="ipt_dutunitcd" ref="/root/send/retrparams1/dutunitcd" class="input_search" disabled="true" navindex="2" visibility="hidden" maxlength="10" style="left:495px; top:25px; width:70px; height:19px; text-align:center; ">
  554. <script type="javascript" ev:event="xforms-value-changed">
  555. <![CDATA[
  556. misfValidationCheck("02", "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  557. model.refresh();
  558. ]]>
  559. </script>
  560. <script type="javascript" ev:event="onkeypress">
  561. <![CDATA[
  562. if(event.keyCode == 13)
  563. {
  564. ipt_dutunitcd.value = ipt_dutunitcd.currentText;
  565. misfValidationCheck("02", "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  566. model.refresh();
  567. }
  568. ]]>
  569. </script>
  570. </input>
  571. <datagrid id="grd_educprcslist" nodeset="/root/main/list1/educprcslist" visibility="hidden" autoresize="true" caption="교육코드^과정명^차수^구분" colsep="^" colwidth="78, 180, 50, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="25" rowsep="|" style="left:0px; top:350px; width:245px; height:184px; ">
  572. <col ref="educcd" visibility="hidden" style="text-align:left; "/>
  573. <col ref="educcdnm" style="text-align:left; "/>
  574. <col ref="educdg" style="text-align:center; "/>
  575. <col ref="gubun"/>
  576. </datagrid>
  577. <button id="button1" class="btn5_letter2" style="left:1107px; top:46px; width:42px; height:19px; ">
  578. <caption>승인</caption>
  579. <script type="javascript" ev:event="DOMActivate">
  580. <![CDATA[
  581. if( messageBox("승인 하시겠습니까?","Q999") == '6' ) {
  582. for(var i = grd_eductrgtemplist.fixedRows; i < grd_eductrgtemplist.rows; i++){
  583. if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptchk")) == "Y") {
  584. grd_eductrgtemplist.addStatus(i, "update");
  585. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("flagd")) = "D";
  586. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptaprvyn")) = "Y";
  587. }
  588. else ;
  589. if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastchk")) == "Y") {
  590. grd_eductrgtemplist.addStatus(i, "update");
  591. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("flagl")) = "L";
  592. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastaprvyn")) = "Y";
  593. }
  594. else ;
  595. }
  596. }
  597. ]]>
  598. </script>
  599. </button>
  600. <button id="button2" class="btn5_letter2" style="left:1150px; top:46px; width:42px; height:19px; ">
  601. <caption>반려</caption>
  602. <script type="javascript" ev:event="DOMActivate">
  603. <![CDATA[
  604. if( messageBox("반려 하시겠습니까?","Q999") == '6' ) {
  605. for(var i = grd_eductrgtemplist.fixedRows; i < grd_eductrgtemplist.rows; i++){
  606. if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptchk")) == "Y") {
  607. grd_eductrgtemplist.addStatus(i, "update");
  608. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("flagd")) = "D";
  609. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptaprvyn")) = "R";
  610. }
  611. else if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastchk")) == "Y") {
  612. grd_eductrgtemplist.addStatus(i, "update");
  613. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("flagl")) = "L";
  614. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastaprvyn")) = "R";
  615. }
  616. else ;
  617. }
  618. }
  619. ]]>
  620. </script>
  621. </button>
  622. <button id="btn_dutinst" class="icon_search" style="left:364px; top:13px; width:16px; height:16px; ">
  623. <caption/>
  624. <script type="javascript" ev:event="DOMActivate">
  625. <![CDATA[
  626. var recv_list = "dutinstcd,dutinstnm";
  627. misfOpenPopUpList("03", ipt_dutinstnm,"Z0007", recv_list, "", "") ;
  628. model.refresh();
  629. ]]>
  630. </script>
  631. </button>
  632. <input id="ipt_dutinstnm" ref="/root/send/retrparams1/dutinstnm" class="input_search" appearance="input" style="left:210px; top:13px; width:151px; height:19px; ">
  633. <script type="javascript" ev:event="xforms-value-changed">
  634. <![CDATA[
  635. if( ipt_dutinstnm.value.getByteLength() == '0' ) {
  636. ipt_dutinstcd.value = "" ;
  637. }
  638. model.refresh();
  639. ]]>
  640. </script>
  641. </input>
  642. <input id="ipt_dutinstcd" ref="/root/send/retrparams1/dutinstcd" disabled="true" visibility="hidden" style="left:270px; top:20px; width:50px; height:19px; "/>
  643. </group>
  644. <group id="grp_btn" scroll="auto" style="left:0px; top:13px; width:1195px; height:27px; ">
  645. <button id="btn_save" class="btn4_letter2" navindex="20000" style="left:1139px; top:3px; width:56px; height:22px; ">
  646. <caption>저장</caption>
  647. <script type="javascript" ev:event="DOMActivate">
  648. <![CDATA[
  649. fSave();
  650. submit("TRRPS03702");
  651. grd_eductrgtemplist.fixedcellischeck(1,10) = false; // 전체 체크박스를 초기화
  652. for(var i = grd_eductrgtemplist.fixedRows; i < grd_eductrgtemplist.rows; i++){
  653. if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptchk")) == "Y") {
  654. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("deptchk")) = "N";
  655. }
  656. if(grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastchk")) == "Y") {
  657. grd_eductrgtemplist.valueMatrix(i,grd_eductrgtemplist.colRef("lastchk")) = "N"
  658. }
  659. }
  660. fSetColor();
  661. model.refresh();
  662. ]]>
  663. </script>
  664. </button>
  665. </group>
  666. </xhtml:body>
  667. </xhtml:html>