SMRPD04600_외국시찰및연수등록.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  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. <dutsumlist>
  12. <emplno/>
  13. <emplnm/>
  14. <giganfrom/>
  15. <giganto/>
  16. <nationcd/>
  17. <stdobject/>
  18. <stdkind/>
  19. <gigwancd/>
  20. <oldgiganfrom/>
  21. </dutsumlist>
  22. </list>
  23. </main>
  24. <send>
  25. <retrparams>
  26. <instcd/>
  27. <frdutym/>
  28. <todutym/>
  29. <dutunitcd/>
  30. <dutunitnm/>
  31. <retrflag>0510</retrflag>
  32. <emplno/>
  33. <emplnm/>
  34. <deptgb/>
  35. <gb/>
  36. </retrparams>
  37. <save>
  38. <dutsumlist/>
  39. </save>
  40. </send>
  41. <init/>
  42. <temp/>
  43. </root>
  44. </instance>
  45. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  46. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  47. <submission id="TRRPD04601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams" resultref="/root/main/list"/>
  48. <submission id="TXRPD04601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  49. </model>
  50. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  51. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  52. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  53. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  54. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  55. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  56. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  57. <script type="javascript" ev:event="xforms-ready">
  58. <![CDATA[
  59. fInitialize();
  60. ]]>
  61. </script>
  62. <script type="javascript">
  63. <![CDATA[
  64. // var DUT_UNIT_CD = "";
  65. // var DUT_UNIT_NM = "";
  66. // var DUTY_RESP_YN = ""; // 복무 책임자
  67. // var DUTY_PART_YN = ""; // 인사 복무 담당자
  68. function fInitialize()
  69. {
  70. //model.removenode("/root/main/list/dutsumlist");
  71. model.removeNodeset("/root/main/list/dutsumlist");
  72. //misfComboComCdListMulti("R0393,R0400,R0416,R0417","grd_dutsumlist.gigwancd,grd_dutsumlist.stdobject,grd_dutsumlist.nationcd,grd_dutsumlist.stdkind");
  73. //misfComboComCdListMulti("R0393","grd_dutsumlist.gigwancd");
  74. misfComboComCdList('R0416', grd_dutsumlist.nationcd);
  75. misfComboComCdList('R0400', grd_dutsumlist.stdobject);
  76. misfComboComCdList('R0417', grd_dutsumlist.stdkind);
  77. misfComboComCdList('R0393', grd_dutsumlist.gigwancd);
  78. misfComboComCdList('R0416', grd_dutsumlist.nationcd);
  79. model.setValue("/root/send/retrparams/frdutym", getCurrentDate().substr(0, 6) + "01");
  80. model.setValue("/root/send/retrparams/todutym", getCurrentDate());
  81. //model.setValue("/root/send/retrparams/todutym", getCurrentDate().substr(0, 6));
  82. misfComboInstCdListMulti("cmb_instcd", ipt_dutym.value+getCurrentDate().substr(6, 2),"","N");
  83. misfGetAndSetUserInfo();
  84. model.setValue("/root/send/retrparams/instcd", getUserInfo("dutplceinstcd"));
  85. cmb_instcd.disabled = true;
  86. model.setValue("/root/send/retrparams/deptgb", "1");
  87. btn_search.dispatch("DOMActivate");
  88. model.refresh();
  89. }
  90. ]]>
  91. </script>
  92. </xhtml:head>
  93. <xhtml:body pagewidth="1211" pageheight="784" style="margin-left:8; margin-right:8; ">
  94. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  95. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">외국시찰및연수등록</caption>
  96. </group>
  97. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  98. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:10px; width:1195px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  99. <line id="line13" class="line_4" style="x1:1110px; y1:16px; x2:1110px; y2:38px; "/>
  100. <caption id="caption278" class="tit_2" style="left:5px; top:54px; width:162px; height:14px; ">내역</caption>
  101. <line id="line207" class="line_1" style="x1:0px; y1:69px; x2:1195px; y2:69px; "/>
  102. <datagrid id="grd_dutsumlist" nodeset="/root/main/list/dutsumlist" caption="사원번호^성명^기간(FROM)^기간(TO)^국가^교육목적^교육종류^교육기관^지급액^caption7^caption2" colsep="^" colwidth="101, 73, 107, 112, 114, 202, 169, 165, 113, 100" dataheight="25" explorerbar="sortshow" extendlastcol="scroll" frozencols="4" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:74px; width:1195px; height:670px; border-right-color:#3366ff; ">
  103. <col disabled="true" ref="emplno" type="inputbutton" style="text-align:center; "/>
  104. <col ref="emplnm"/>
  105. <col ref="giganfrom" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  106. <col ref="giganto" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  107. <col id="nationcd" editmode="inputsearch" ref="nationcd" type="combo">
  108. <choices>
  109. <itemset>
  110. <label/>
  111. <value/>
  112. </itemset>
  113. </choices>
  114. </col>
  115. <col id="stdobject" editmode="inputsearch" ref="stdobject" type="combo">
  116. <choices>
  117. <itemset>
  118. <label/>
  119. <value/>
  120. </itemset>
  121. </choices>
  122. </col>
  123. <col id="stdkind" editmode="inputsearch" ref="stdkind" type="combo">
  124. <choices>
  125. <itemset>
  126. <label/>
  127. <value/>
  128. </itemset>
  129. </choices>
  130. </col>
  131. <col id="gigwancd" editmode="inputsearch" ref="gigwancd" type="combo">
  132. <choices>
  133. <itemset>
  134. <label/>
  135. <value/>
  136. </itemset>
  137. </choices>
  138. </col>
  139. <col ref="jigeubamt" type="input" format="(-)#,###" style="text-align:right; "/>
  140. <col ref="oldgiganfrom" visibility="hidden"/>
  141. <script type="javascript" ev:event="onaftersort">
  142. <![CDATA[
  143. grd_dutsumlist.gridToInstance();
  144. ]]>
  145. </script>
  146. <script type="javascript" ev:event="onbuttonclick">
  147. <![CDATA[
  148. if (grd_dutsumlist.colAttribute(grd_dutsumlist.col,"ref") == "emplno" ) { //계산기준코드
  149. var recv_list = "emplno,emplnm";
  150. rpbfOpenPopUpList("SPRPB00101", grd_dutsumlist, recv_list,"","N");
  151. model.refresh();
  152. }
  153. ]]>
  154. </script>
  155. <script type="javascript" ev:event="xforms-value-changed">
  156. <![CDATA[
  157. if (grd_dutsumlist.colAttribute(grd_dutsumlist.col,"ref") == "giganfrom" ) {
  158. var ymd = model.getValue("/root/main/list/dutsumlist[" + grd_dutsumlist.row + "]/giganfrom");
  159. if (isValidDateTime(ymd) == false){
  160. messageBox("일자가 잘못 입력되었습니다.", "E999", "");
  161. return;
  162. }
  163. model.refresh();
  164. }
  165. if (grd_dutsumlist.colAttribute(grd_dutsumlist.col,"ref") == "giganto" ) {
  166. var ymd = model.getValue("/root/main/list/dutsumlist[" + grd_dutsumlist.row + "]/giganto");
  167. if (isValidDateTime(ymd) == false){
  168. messageBox("일자가 잘못 입력되었습니다.", "E999", "");
  169. return;
  170. }
  171. model.refresh();
  172. }
  173. ]]>
  174. </script>
  175. </datagrid>
  176. <caption id="caption5" class="search_name" visibility="hidden" style="left:420px; top:46px; width:86px; height:17px; ">소속기관 :</caption>
  177. <caption id="caption1" class="search_name" style="left:440px; top:19px; width:66px; height:17px; ">기간 :</caption>
  178. <input id="ipt_dutym" ref="/root/send/retrparams/frdutym" class="input_search" navindex="2" inputtype="date" format="yyyy-mm-dd" style="left:505px; top:18px; width:105px; height:19px; text-align:center; ">
  179. <script type="javascript" ev:event="xforms-value-changed">
  180. <![CDATA[
  181. /*
  182. var instcd = cmb_instcd.value;
  183. if( getStringLength(ipt_dutym.value) == "6" ) {
  184. model.removeNodeset(cmb_instcd.attribute("ref"));
  185. model.makeNode("/root/send/retrparams/instcd");
  186. misfComboInstCdListMulti("cmb_instcd",ipt_dutym.value+"31","","N");
  187. cmb_instcd.value = instcd;
  188. model.refresh();
  189. }
  190. */
  191. btn_search.dispatch("DOMActivate");
  192. ]]>
  193. </script>
  194. </input>
  195. <select1 id="cmb_instcd" ref="/root/send/retrparams/instcd" class="combo_search" navindex="1" visibility="hidden" appearance="minimal" style="left:510px; top:45px; width:140px; height:19px; ">
  196. <choices>
  197. <itemset>
  198. <label/>
  199. <value/>
  200. </itemset>
  201. </choices>
  202. <script type="javascript" ev:event="xforms-value-changed">
  203. <![CDATA[
  204. btn_search.dispatch("DOMActivate");
  205. ]]>
  206. </script>
  207. </select1>
  208. <button id="btn_dutdept" class="icon_search" navindex="5" style="left:273px; top:20px; width:16px; height:16px; ">
  209. <caption/>
  210. <script type="javascript" ev:event="DOMActivate">
  211. <![CDATA[
  212. misfOpenPopUpList("02", ipt_dutdeptcd, "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  213. model.refresh();
  214. ]]>
  215. </script>
  216. </button>
  217. <caption id="caption2" class="search_name" style="left:17px; top:19px; width:88px; height:17px; ">근무부서 :</caption>
  218. <input id="ipt_dutdeptnm" ref="/root/send/retrparams/dutunitnm" class="input_search" navindex="6" style="left:291px; top:18px; width:114px; height:19px; ">
  219. <script type="javascript" ev:event="onkeypress">
  220. <![CDATA[
  221. if(event.keyCode == 13)
  222. {
  223. if(ipt_dutdeptnm.value == ipt_dutdeptnm.currentText) return;
  224. ipt_dutdeptnm.value = ipt_dutdeptnm.currentText;
  225. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  226. model.refresh();
  227. }
  228. ]]>
  229. </script>
  230. <script type="javascript" ev:event="xforms-value-changed">
  231. <![CDATA[
  232. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  233. model.refresh();
  234. ]]>
  235. </script>
  236. </input>
  237. <input id="ipt_dutdeptcd" ref="/root/send/retrparams/dutunitcd" class="input_search" navindex="4" maxlength="10" style="left:200px; top:18px; width:70px; height:19px; text-align:center; ">
  238. <script type="javascript" ev:event="onkeypress">
  239. <![CDATA[
  240. if(event.keyCode == 13)
  241. {
  242. if(ipt_dutdeptcd.value == ipt_dutdeptcd.currentText) return;
  243. ipt_dutdeptcd.value = ipt_dutdeptcd.currentText;
  244. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  245. model.refresh();
  246. }
  247. ]]>
  248. </script>
  249. <script type="javascript" ev:event="xforms-value-changed">
  250. <![CDATA[
  251. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  252. model.refresh();
  253. ]]>
  254. </script>
  255. </input>
  256. <button id="btn_search" class="btn1_letter2" navindex="10" style="left:1125px; top:17px; width:56px; height:22px; ">
  257. <caption>조회</caption>
  258. <script type="javascript" ev:event="DOMActivate">
  259. <![CDATA[
  260. submit("TRRPD04601");
  261. ]]>
  262. </script>
  263. </button>
  264. <button id="btn_excsave" class="btn2_letter4" style="left:1127px; top:49px; width:64px; height:19px; ">
  265. <caption>엑셀저장</caption>
  266. <script type="javascript" ev:event="DOMActivate">
  267. <![CDATA[
  268. misfSaveExcel(grd_dutsumlist);
  269. ]]>
  270. </script>
  271. </button>
  272. <caption id="caption3" class="search_name" style="left:775px; top:19px; width:63px; height:17px; ">사번 :</caption>
  273. <button id="btn_emplno" class="icon_search" navindex="8" style="left:908px; top:18px; width:16px; height:16px; ">
  274. <caption/>
  275. <script type="javascript" ev:event="DOMActivate">
  276. <![CDATA[
  277. var recv_list = "emplno,emplnm" ;
  278. rpbfOpenPopUpList("SPRPB00101", ipt_emplnos, recv_list,"","N");
  279. model.refresh();
  280. if (model.getValue(ipt_emplnos.attribute("ref")).length > 0) {
  281. //btn_search.dispatch("DOMActivate");
  282. ipt_emplnos.dispatch("xforms-value-changed");
  283. }
  284. ]]>
  285. </script>
  286. </button>
  287. <input id="ipt_emplnos" ref="/root/send/retrparams/emplno" class="input_default" navindex="7" style="left:836px; top:18px; width:67px; height:19px; ">
  288. <script type="javascript" ev:event="onkeyup">
  289. <![CDATA[
  290. if (ipt_emplnos.currentText != null && ipt_emplnos.currentText != "" ) {
  291. inputEnterKey("ipt_emplnos", "xforms-value-changed");
  292. }
  293. ]]>
  294. </script>
  295. <script type="javascript" ev:event="xforms-value-changed">
  296. <![CDATA[
  297. var recv_list = "emplno,emplnm" ;
  298. rpbfValidationCheck("EMPLNO", recv_list);
  299. model.refresh();
  300. if (model.getValue(ipt_emplnos.attribute("ref")).length > 0) {
  301. btn_search.dispatch("DOMActivate");
  302. }
  303. ]]>
  304. </script>
  305. </input>
  306. <input id="ipt_emplnms" ref="/root/send/retrparams/emplnm" class="input_default" navindex="9" style="left:927px; top:18px; width:96px; height:19px; ">
  307. <script type="javascript" ev:event="onkeyup">
  308. <![CDATA[
  309. if (ipt_emplnms.currentText != null && ipt_emplnms.currentText != "" ) {
  310. inputEnterKey("ipt_emplnms", "xforms-value-changed");
  311. }
  312. ]]>
  313. </script>
  314. <script type="javascript" ev:event="xforms-value-changed">
  315. <![CDATA[
  316. var recv_list = "emplno,emplnm" ;
  317. rpbfValidationCheck("EMPLNM", recv_list);
  318. model.refresh();
  319. if (model.getValue(ipt_emplnos.attribute("ref")).length > 0) {
  320. btn_search.dispatch("DOMActivate");
  321. }
  322. ]]>
  323. </script>
  324. </input>
  325. <button id="btn_grddelpaydedulist" class="btn2_letter3" style="left:1071px; top:49px; width:53px; height:19px; ">
  326. <caption>행삭제</caption>
  327. <script type="javascript" ev:event="DOMActivate">
  328. <![CDATA[
  329. //grd_dutsumlist.deleteRow(grd_dutsumlist.row);
  330. deleteSelectedRows(grd_dutsumlist, true);
  331. ]]>
  332. </script>
  333. </button>
  334. <button id="btn_grdaddpaydedulist" class="btn2_letter3" style="left:1015px; top:49px; width:53px; height:19px; ">
  335. <caption>행추가</caption>
  336. <script type="javascript" ev:event="DOMActivate">
  337. <![CDATA[
  338. grd_dutsumlist.addRow();
  339. var irow = grd_dutsumlist.row;
  340. grd_dutsumlist.topRow = irow;
  341. model.refresh();
  342. ]]>
  343. </script>
  344. </button>
  345. <select1 id="combo1" ref="/root/send/retrparams/deptgb" navindex="3" appearance="minimal" style="left:105px; top:18px; width:90px; height:19px; ">
  346. <choices>
  347. <item>
  348. <label>근무지</label>
  349. <value>1</value>
  350. </item>
  351. <item>
  352. <label>근무부서</label>
  353. <value>2</value>
  354. </item>
  355. <item>
  356. <label>근무과(팀)</label>
  357. <value>3</value>
  358. </item>
  359. <item>
  360. <label>근무부(실)</label>
  361. <value>4</value>
  362. </item>
  363. </choices>
  364. </select1>
  365. <caption id="caption4" style="left:617px; top:18px; width:15px; height:20px; ">~</caption>
  366. <input id="input1" ref="/root/send/retrparams/todutym" class="input_search" navindex="2" inputtype="date" format="yyyy-mm-dd" style="left:635px; top:18px; width:105px; height:19px; text-align:center; ">
  367. <script type="javascript" ev:event="xforms-value-changed">
  368. <![CDATA[
  369. /*
  370. var instcd = cmb_instcd.value;
  371. if( getStringLength(ipt_dutym.value) == "6" ) {
  372. model.removeNodeset(cmb_instcd.attribute("ref"));
  373. model.makeNode("/root/send/retrparams/instcd");
  374. misfComboInstCdListMulti("cmb_instcd",ipt_dutym.value+"31","","N");
  375. cmb_instcd.value = instcd;
  376. model.refresh();
  377. }
  378. */
  379. btn_search.dispatch("DOMActivate");
  380. ]]>
  381. </script>
  382. </input>
  383. </group>
  384. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  385. <line id="line4" class="line_6" style="x1:0px; y1:25; x2:1195px; y2:25; "/>
  386. <button id="button36" class="btn4_letter2" style="left:1139px; top:3; width:56px; height:22px; ">
  387. <caption>저장</caption>
  388. <script type="javascript" ev:event="DOMActivate">
  389. <![CDATA[
  390. for (var i = 1; i < grd_dutsumlist.rows; i ++){
  391. var emplno1 = model.getValue("/root/main/list/dutsumlist[" + i + "]/emplno");
  392. var ymd1 = model.getValue("/root/main/list/dutsumlist[" + i + "]/giganfrom");
  393. if (model.getValue("/root/main/list/dutsumlist[" + i + "]/emplno") == ""){
  394. messageBox(i + "번째의 사원번호는 필수 입력항목입니다.", "E999", "");
  395. return;
  396. }
  397. if (model.getValue("/root/main/list/dutsumlist[" + i + "]/giganfrom") == ""){
  398. messageBox(i + "번째의 기간(FROM)은 필수 입력항목입니다.", "E999", "");
  399. return;
  400. }
  401. for (var j = 1; j < grd_dutsumlist.rows; j ++){
  402. var emplno2 = model.getValue("/root/main/list/dutsumlist[" + j + "]/emplno");
  403. var ymd2 = model.getValue("/root/main/list/dutsumlist[" + j + "]/giganfrom");
  404. if (i != j){
  405. if (emplno1 == emplno2 && ymd1 == ymd2){
  406. messageBox(j + "번째에서 중복된 자료가 존재합니다", "E999", "");
  407. return;
  408. }
  409. }
  410. }
  411. }
  412. var update = getGridUpdateData(grd_dutsumlist);
  413. if(update == ""){
  414. messageBox("업데이트 정보가 없습니다.", "E999", "");
  415. return 0;
  416. } else {
  417. model.setValue("/root/send/save/dutsumlist", update);
  418. if (submit("TXRPD04601")){
  419. messageBox("정상적으로 처리되었습니다.", "E999", "");
  420. btn_search.dispatch("DOMActivate");
  421. }
  422. }
  423. ]]>
  424. </script>
  425. </button>
  426. </group>
  427. </xhtml:body>
  428. </xhtml:html>