SMRPS03400_교육신청및변경요청.xrw 46 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013
  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>SMRPS03400_교육신청및변경요청</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list1>
  11. <educlist/>
  12. <educlist1/>
  13. </list1>
  14. <list2>
  15. <educdtlist/>
  16. <filelist/>
  17. </list2>
  18. <list3>
  19. <educdtlist/>
  20. <filelist/>
  21. </list3>
  22. <list4>
  23. <educapplist/>
  24. </list4>
  25. <grid>
  26. <filelist/>
  27. </grid>
  28. </main>
  29. <send>
  30. <retrparams1>
  31. <instcd/>
  32. <appyy/>
  33. <mainbdunit/>
  34. <educflag/>
  35. <appyn/>
  36. <dutunitcd/>
  37. <dutunitnm/>
  38. <emplno/>
  39. <emplnm/>
  40. <dutinstcd/>
  41. <instnm/>
  42. <dutinstnm/>
  43. </retrparams1>
  44. <retrparams2>
  45. <appyy/>
  46. <educcd/>
  47. <emplno/>
  48. <gubun/>
  49. <instcd/>
  50. <appyn/>
  51. </retrparams2>
  52. <educdtlist>
  53. </educdtlist>
  54. <attach/>
  55. <educdtlist1/>
  56. <capachk>
  57. <appyy/>
  58. <educcd/>
  59. <educdg/>
  60. </capachk>
  61. </send>
  62. <init>
  63. <item>
  64. <value/>
  65. <label>전체</label>
  66. </item>
  67. <item>
  68. <value>Y</value>
  69. <label>신청</label>
  70. </item>
  71. <item>
  72. <value>N</value>
  73. <label>미신청</label>
  74. </item>
  75. <item1>
  76. <value>Y</value>
  77. <label>승인</label>
  78. </item1>
  79. <item1>
  80. <value>R</value>
  81. <label>반려</label>
  82. </item1>
  83. <item1>
  84. <value>N</value>
  85. <label>처리중</label>
  86. </item1>
  87. <item1>
  88. <value>A</value>
  89. <label>미신청</label>
  90. </item1>
  91. </init>
  92. <temp/>
  93. <save>
  94. <resultcapa/>
  95. </save>
  96. </root>
  97. </instance>
  98. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  100. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  101. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  102. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  103. <script type="javascript" src="../../../mis/educationmngtweb/js/RPS001.js"/>
  104. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  105. <script type="javascript" ev:event="xforms-ready">
  106. <![CDATA[
  107. fInit();
  108. ]]>
  109. </script>
  110. <script type="javascript">
  111. <![CDATA[
  112. var SIZE_FLAG = true;
  113. function fInit() {
  114. model.setValue("/root/send/retrparams1/appyy", getCurrentDate().substr(0, 4));
  115. rpsEducSetComboList("M01-001,M01-002", "cmb_mainbdunit,cmb_educflag", "Y");
  116. model.removenode("/root/main/list1/educlist");
  117. model.removenode("/root/main/list1/educlist1");
  118. model.removenode("/root/main/list2/educdtlist");
  119. model.removenode("/root/main/list2/filelist");
  120. model.removenode("/root/main/list3/educdtlist");
  121. model.removenode("/root/main/list3/filelist");
  122. model.removenode("/root/main/list4/educapplist");
  123. misfMsterDetailSet(grd_educlist, null, "TRRPS03401", "N", "byRow");
  124. misfMsterDetailSet(grd_educdtlist, null, "TRRPS03402", "Y");
  125. misfMsterDetailSet(grd_educdtlist1, null, "TRRPS03402", "Y");
  126. misfMsterDetailSet(grd_educapplist, null, "TRRPS03403", "Y");
  127. var userinstcd = getUserInfo("dutplceinstcd");
  128. var userdeptcd = getUserInfo("dutplcecd");
  129. if( userinstcd == '001' || (userinstcd == '012' && ( userdeptcd == '4020500000' || userdeptcd == '4020503000' ))) {
  130. ipt_dutinstnm.disabled = false;
  131. btn_dutinst.disabled = false;
  132. }
  133. if(userdeptcd == '4020500000' || userdeptcd == '4020503000' ) {
  134. // 인사팀과 인사팀아래 교육unit은 보여져야 한다.
  135. ipt_dutunitnm.disabled = false;
  136. btn_dutunit.disabled = false;
  137. ipt_emplno.disabled = false;
  138. btn_empl.disabled = false;
  139. ipt_emplnm.disabled = false;
  140. }
  141. model.setValue("/root/send/retrparams1/instnm", getUserInfo("dutplceinstnm"));
  142. model.setValue("/root/send/retrparams1/instcd", getUserInfo("dutplceinstcd"));
  143. model.setValue("/root/send/retrparams1/emplno", getUserInfo("userid"));
  144. model.setValue("/root/send/retrparams1/emplnm", getUserInfo("usernm"));
  145. model.setValue("/root/send/retrparams1/dutunitcd", getUserInfo("dutplcecd"));
  146. model.setValue("/root/send/retrparams1/dutunitnm", getUserInfo("dutplcenm"));
  147. model.setValue("/root/send/retrparams1/dutinstnm", getUserInfo("dutplceinstnm"));
  148. model.setValue("/root/send/retrparams1/dutinstcd", getUserInfo("dutplceinstcd"));
  149. grd_educlist.rowHeight(0) = 43;
  150. grd_educlist1.rowHeight(0) = 43;
  151. grd_attach.rowHeight(0) = 43;
  152. grd_attach1.rowHeight(0) = 43;
  153. model.refresh();
  154. }
  155. function fEducListRetrieve() {
  156. var iRowIdx = grd_educlist.row;
  157. submit("TRRPS03401");
  158. rpsEducSetComboList("M01-001,M01-002", "cmb_mainbdunit,cmb_educflag", "Y");
  159. if(grd_educlist.rows > 1){
  160. if(iRowIdx == -1) iRowIdx = 1;
  161. else
  162. if(iRowIdx > grd_educlist.rows) iRowIdx = grd_educlist.rows - 1;
  163. grd_educlist.row = iRowIdx;
  164. grd_educlist.select(iRowIdx, 1, iRowIdx, 10) = true;
  165. grd_educlist.dispatch("ondblclick");
  166. }
  167. else {
  168. model.removeNodeset("/root/main/list2/educdtlist");
  169. model.removeNodeset("/root/main/list2/filelist");
  170. model.refresh();
  171. }
  172. }
  173. function fEducListRetrieve1() {
  174. var iRowIdx = grd_educlist.row;
  175. if (grd_educlist1.rows > 1){
  176. if(iRowIdx == -1) iRowIdx = 1;
  177. else
  178. if(iRowIdx > grd_educlist1.rows) iRowIdx = grd_educlist1.rows - 1;
  179. grd_educlist1.row = iRowIdx;
  180. grd_educlist1.select(iRowIdx, 1, iRowIdx, 10) = true;
  181. grd_educlist1.dispatch("ondblclick");
  182. }
  183. else{
  184. model.removeNodeset("/root/main/list3/educdtlist");
  185. model.removeNodeset("/root/main/list3/filelist");
  186. model.refresh();
  187. }
  188. }
  189. function feducdtlistRetrieve() {
  190. model.setValue("/root/send/retrparams2/appyy", grd_educlist.valueMatrix(grd_educlist.row, grd_educlist.colRef("appyy")));
  191. model.setValue("/root/send/retrparams2/educcd", grd_educlist.valueMatrix(grd_educlist.row, grd_educlist.colRef("educcd")));
  192. model.setValue("/root/send/retrparams2/gubun", grd_educlist.valueMatrix(grd_educlist.row, grd_educlist.colRef("gubun")));
  193. model.setValue("/root/send/retrparams2/emplno", ipt_emplno.value);
  194. submit("TRRPS03402");
  195. fSetColor();
  196. }
  197. function feducdtlistRetrieve1() {
  198. model.setValue("/root/send/retrparams2/appyy", grd_educlist1.valueMatrix(grd_educlist1.row, grd_educlist1.colRef("appyy")));
  199. model.setValue("/root/send/retrparams2/educcd", grd_educlist1.valueMatrix(grd_educlist1.row, grd_educlist1.colRef("educcd")));
  200. model.setValue("/root/send/retrparams2/gubun", grd_educlist1.valueMatrix(grd_educlist1.row, grd_educlist1.colRef("gubun")));
  201. model.setValue("/root/send/retrparams2/emplno", ipt_emplno.value);
  202. submit("TRRPS03404");
  203. fSetColor1();
  204. }
  205. function fSave() {
  206. model.setValue("/root/send/educdtlist",grd_educdtlist.getUpdateData());
  207. model.setValue("/root/send/educdtlist1",grd_educdtlist1.getUpdateData());
  208. var count_1 = 0;
  209. var count_2 = 0;
  210. for(var i = grd_educdtlist.fixedRows; i <= grd_educdtlist.rows; i++) {
  211. if ( grd_educdtlist.rowStatus(i) == 3 ) {
  212. count_1++;
  213. }
  214. }
  215. for(var i = grd_educdtlist1.fixedRows; i <= grd_educdtlist1.rows; i++) {
  216. if ( grd_educdtlist1.rowStatus(i) == 3 ) {
  217. count_2++;
  218. }
  219. }
  220. if(count_1 > 0 ) {
  221. fCheckAppYN();
  222. if( model.getValue("/root/save/resultcapa/capa") > "0" ) {
  223. if(submit("TXRPS03401") ) {
  224. messageBox("","I001");
  225. grd_educlist.dispatch("ondblclick");
  226. }
  227. }
  228. else {
  229. messageBox("다시 신청해 주시기 바랍니다.","I999");
  230. grd_educlist.dispatch("ondblclick");
  231. }
  232. }
  233. if( count_2 > 0 ) {
  234. fCheckAppYN1();
  235. if( model.getValue("/root/save/resultcapa/capa") > "0" ) {
  236. if(submit("TXRPS03402") ) {
  237. messageBox("","I001");
  238. grd_educlist1.dispatch("ondblclick");
  239. }
  240. }
  241. else {
  242. messageBox("다시 신청해 주시기 바랍니다.","I999");
  243. grd_educlist1.dispatch("ondblclick");
  244. }
  245. }
  246. model.refresh();
  247. }
  248. function fSetColor() {
  249. for(var i = grd_educdtlist.fixedRows; i < grd_educdtlist.rows; i++ ) {
  250. if( grd_educdtlist.valueMatrix(i, grd_educdtlist.colRef("gubun")) == 'U' ) {
  251. if ( grd_educdtlist.valueMatrix(i, grd_educdtlist.colRef("flag")) == 'N' ) {
  252. grd_educdtlist.rowStyle(i, "all", "background-color") ="#808080";
  253. }
  254. }
  255. var emplcnt = grd_educdtlist.valueMatrix(i, grd_educdtlist.colRef("emplcnt"));
  256. var educcapa = grd_educdtlist.valueMatrix(i, grd_educdtlist.colRef("educcapa"));
  257. if( parseInt(emplcnt) >= parseInt(educcapa) ){
  258. grd_educdtlist.rowStyle(i, "all", "background-color") ="#dddddd";
  259. grd_educdtlist.isReadOnly(i, grd_educdtlist.colRef("appyn")) = true;
  260. }
  261. }
  262. }
  263. function fSetColor1() {
  264. for(var i = grd_educdtlist1.fixedRows; i < grd_educdtlist1.rows; i++ ) {
  265. if( grd_educdtlist1.valueMatrix(i, grd_educdtlist1.colRef("gubun")) == 'U' ) {
  266. if ( grd_educdtlist1.valueMatrix(i, grd_educdtlist1.colRef("flag")) == 'N' ) {
  267. grd_educdtlist1.rowStyle(i, "all", "background-color") ="#808080";
  268. }
  269. }
  270. var emplcnt = grd_educdtlist1.valueMatrix(i, grd_educdtlist1.colRef("emplcnt"));
  271. var educcapa = grd_educdtlist1.valueMatrix(i, grd_educdtlist1.colRef("educcapa"));
  272. if( parseInt(emplcnt) >= parseInt(educcapa) ){
  273. grd_educdtlist1.rowStyle(i, "all", "background-color") ="#dddddd";
  274. grd_educdtlist1.isReadOnly(i, grd_educdtlist1.colRef("appyn")) = true;
  275. }
  276. }
  277. }
  278. function fLoadExcel() {
  279. if(grd_educlist.rows == 1)
  280. {
  281. messageBox("교육내용을", "C002");
  282. return;
  283. }
  284. var fileName = window.fileDialog("open", ",", false, "", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  285. grd_loadexcel.loadExcel(fileName);
  286. grd_loadexcel.rebuild();
  287. var sEmplno = "";
  288. var iRowIdx = -1;
  289. for(var i=1; i<grd_loadexcel.rows; i++) {
  290. sEmplno = grd_loadexcel.valueMatrix(i, grd_loadexcel.colRef("emplno"));
  291. if(sEmplno == "") continue;
  292. iRowIdx = grd_educdtlist.findRow(sEmplno, 0, grd_educdtlist.colRef("emplno"));
  293. if(iRowIdx != -1){
  294. continue;
  295. }
  296. else{
  297. misfGridIUD(grd_educdtlist, "A");
  298. model.setValue(grd_educdtlist.nodeset + "[" + grd_educdtlist.row + "]/instcd", model.getValue(grd_educlist.nodeset + "[" + grd_educlist.row + "]/instcd"));
  299. model.setValue(grd_educdtlist.nodeset + "[" + grd_educdtlist.row + "]/educdg", model.getValue(grd_educlist.nodeset + "[" + grd_educlist.row + "]/educdg"));
  300. model.setValue(grd_educdtlist.nodeset + "[" + grd_educdtlist.row + "]/educcd", model.getValue(grd_educlist.nodeset + "[" + grd_educlist.row + "]/educcd"));
  301. model.setValue(grd_educdtlist.nodeset + "[" + grd_educdtlist.row + "]/appyy", model.getValue(grd_educlist.nodeset + "[" + grd_educlist.row + "]/appyy"));
  302. model.setValue(grd_educdtlist.nodeset + "[" + grd_educdtlist.row + "]/emplno", model.getValue(grd_loadexcel.nodeset + "[" + i + "]/emplno"));
  303. }
  304. }
  305. model.refresh();
  306. }
  307. function fCheckAppYN () {
  308. if(grd_educlist.rows == 1) {
  309. messageBox("교육내용을", "C002");
  310. return;
  311. }
  312. var educcapa = model.getValue("/root/main/list2/educdtlist["+(grd_educdtlist.row-1)+"]/educcapa");
  313. var emplcnt = model.getValue("/root/main/list2/educdtlist["+(grd_educdtlist.row-1)+"]/emplcnt");
  314. model.setValue("/root/send/capachk/appyy",model.getValue("/root/main/list2/educdtlist["+(grd_educdtlist.row-1)+"]/appyy"));
  315. model.setValue("/root/send/capachk/educcd",model.getValue("/root/main/list2/educdtlist["+(grd_educdtlist.row-1)+"]/educcd"));
  316. model.setValue("/root/send/capachk/educdg",model.getValue("/root/main/list2/educdtlist["+(grd_educdtlist.row-1)+"]/educdg"));
  317. submit("TRRPS03400");
  318. if( educcapa == emplcnt || model.getValue("/root/save/resultcapa/capa") == '0' ) {
  319. messageBox("정원이 초과되어 더이상 등록","E001");
  320. return;
  321. }
  322. }
  323. function fCheckAppYN1 () {
  324. if(grd_educlist1.rows == 1) {
  325. messageBox("교육내용을", "C002");
  326. return;
  327. }
  328. var educcapa = model.getValue("/root/main/list3/educdtlist["+(grd_educdtlist1.row-1)+"]/educcapa");
  329. var emplcnt = model.getValue("/root/main/list3/educdtlist["+(grd_educdtlist1.row-1)+"]/emplcnt");
  330. model.setValue("/root/send/capachk/appyy",model.getValue("/root/main/list3/educdtlist["+(grd_educdtlist1.row-1)+"]/appyy"));
  331. model.setValue("/root/send/capachk/educcd",model.getValue("/root/main/list3/educdtlist["+(grd_educdtlist1.row-1)+"]/educcd"));
  332. model.setValue("/root/send/capachk/educdg",model.getValue("/root/main/list3/educdtlist["+(grd_educdtlist1.row-1)+"]/educdg"));
  333. submit("TRRPS03400");
  334. if( educcapa == emplcnt || model.getValue("/root/save/resultcapa/capa") == '0' ) {
  335. messageBox("정원이 초과되어 더이상 등록","E001");
  336. return;
  337. }
  338. }
  339. function fCheckAppdgDisable() {
  340. for( var idx = grd_educdtlist.fixedRows; idx < grd_educdtlist.rows; idx++) {
  341. if(grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("appyn")) == 'Y' ) {
  342. grd_educdtlist.rowStyle(idx, "all", "background-color") ="#dddddd";
  343. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("appyn")) = true;
  344. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("updtresn")) = true;
  345. }
  346. else {
  347. grd_educdtlist.rowStyle(idx, "all", "background-color") = "transparent";
  348. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("appyn")) = false;
  349. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("updtresn")) = false;
  350. }
  351. }
  352. var todate = getCurrentDate();
  353. var totime = getCurrentTime().substr(0,4);
  354. for(var idx = grd_educdtlist.fixedRows; idx < grd_educdtlist.rows; idx++) {
  355. if( grd_educdtlist.valueMatrix(idx, grd_educdtlist.colRef("educappfromdd")) <= todate &&
  356. todate <= grd_educdtlist.valueMatrix(idx, grd_educdtlist.colRef("educapptodd")) ) {
  357. if (grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("educapptodd")) == todate &&
  358. grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("educappendtm")) <= totime ) {
  359. grd_educdtlist.rowStyle(idx, "all", "background-color") ="#dddddd";
  360. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("appyn")) = true;
  361. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("updtresn")) = true;
  362. }
  363. }
  364. else if( grd_educdtlist.valueMatrix(idx, grd_educdtlist.colRef("educappfromdd")) > todate ){
  365. }
  366. else {
  367. grd_educdtlist.rowStyle(idx, "all", "background-color") ="#dddddd";
  368. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("appyn")) = true;
  369. grd_educdtlist.isReadOnly(idx, grd_educdtlist.colRef("updtresn")) = true;
  370. }
  371. }
  372. model.refresh();
  373. }
  374. function fCheckAppdgDisable1() {
  375. for( var idx = grd_educdtlist1.fixedRows; idx < grd_educdtlist1.rows; idx++) {
  376. if(grd_educdtlist1.valueMatrix(idx,grd_educdtlist1.colRef("appyn")) == 'Y' ) {
  377. grd_educdtlist1.rowStyle(idx, "all", "background-color") ="#dddddd";
  378. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("appyn")) = true;
  379. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("updtresn")) = true;
  380. }
  381. else {
  382. grd_educdtlist1.rowStyle(idx, "all", "background-color") = "transparent";
  383. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("appyn")) = false;
  384. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("updtresn")) = false;
  385. }
  386. }
  387. var todate = getCurrentDate();
  388. var totime = getCurrentTime().substr(0,4);
  389. for(var idx = grd_educdtlist1.fixedRows; idx < grd_educdtlist1.rows; idx++) {
  390. if( grd_educdtlist1.valueMatrix(idx, grd_educdtlist1.colRef("educappfromdd")) <= todate &&
  391. todate <= grd_educdtlist1.valueMatrix(idx, grd_educdtlist1.colRef("educapptodd")) ) {
  392. if (grd_educdtlist1.valueMatrix(idx,grd_educdtlist1.colRef("educapptodd")) == todate &&
  393. grd_educdtlist1.valueMatrix(idx,grd_educdtlist1.colRef("educappendtm")) <= totime ) {
  394. grd_educdtlist1.rowStyle(idx, "all", "background-color") ="#dddddd";
  395. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("appyn")) = true;
  396. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("updtresn")) = true;
  397. }
  398. }
  399. else if( grd_educdtlist1.valueMatrix(idx, grd_educdtlist1.colRef("educappfromdd")) > todate ){
  400. }
  401. else {
  402. grd_educdtlist1.rowStyle(idx, "all", "background-color") ="#dddddd";
  403. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("appyn")) = true;
  404. grd_educdtlist1.isReadOnly(idx, grd_educdtlist1.colRef("updtresn")) = true;
  405. }
  406. }
  407. model.refresh();
  408. }
  409. ]]>
  410. </script>
  411. <submission id="TRRPS03400" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/capachk" resultref="/root/save/resultcapa"/>
  412. <submission id="TRRPS03401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams1" resultref="/root/main/list1"/>
  413. <submission id="TRRPS03402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams2" resultref="/root/main/list2"/>
  414. <submission id="TRRPS03403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams1" resultref="/root/main/list4"/>
  415. <submission id="TRRPS03404" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/retrparams2" resultref="/root/main/list3"/>
  416. <submission id="TXRPS03401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/educdtlist" resultref="/root/temp"/>
  417. <submission id="TXRPS03402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/educdtlist1" resultref="/root/temp"/>
  418. <submission id="TRRPS00205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/attach" resultref="/root/temp"/>
  419. </model>
  420. </xhtml:head>
  421. <xhtml:body pagewidth="1211" pageheight="784" guideline="1,1230;" style="margin-left:8; margin-right:8; ">
  422. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  423. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">개인별 교육신청 및 조회</caption>
  424. </group>
  425. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  426. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:1px; width:1194px; height:62px; background-color:#fffbf2; border-color:#ffd799; "/>
  427. <line id="line13" class="line_4" style="x1:1095px; y1:8px; x2:1095px; y2:57px; "/>
  428. <caption id="caption1" class="search_name" style="left:541px; top:11px; width:97px; height:17px; ">주체기관 :</caption>
  429. <caption id="caption10" class="search_name" style="left:22px; top:11px; width:90px; height:17px; ">년 도 :</caption>
  430. <caption id="caption2" class="search_name" style="left:285px; top:11px; width:86px; height:17px; ">주체단위 :</caption>
  431. <caption id="caption3" class="search_name" style="left:836px; top:11px; width:91px; height:17px; ">교육구분 :</caption>
  432. <line id="line5" class="line_1" style="x1:0px; y1:87px; x2:1190px; y2:88px; "/>
  433. <caption id="caption9" class="tit_2" style="left:5px; top:72px; width:169px; height:13px; ">교육과정</caption>
  434. <input id="ipt_yyyy" ref="/root/send/retrparams1/appyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:110px; top:11px; width:82px; height:19px; text-align:center; ">
  435. <script type="javascript" ev:event="xforms-value-changed">
  436. <![CDATA[
  437. model.setValue("/root/send/retrparams2/appyy", "/root/send/retrparams1/appyy");
  438. fEducListRetrieve();
  439. ]]>
  440. </script>
  441. </input>
  442. <select1 id="cmb_mainbdunit" ref="/root/send/retrparams1/mainbdunit" class="combo_search" appearance="minimal" style="left:370px; top:11px; width:145px; height:19px; ">
  443. <choices>
  444. <itemset>
  445. <label/>
  446. <value/>
  447. </itemset>
  448. </choices>
  449. <script type="javascript" ev:event="xforms-value-changed">
  450. <![CDATA[
  451. fEducListRetrieve();
  452. ]]>
  453. </script>
  454. </select1>
  455. <select1 id="cmb_educflag" ref="/root/send/retrparams1/educflag" class="combo_search" appearance="minimal" style="left:923px; top:11px; width:142px; height:19px; ">
  456. <choices>
  457. <itemset>
  458. <label/>
  459. <value/>
  460. </itemset>
  461. </choices>
  462. <script type="javascript" ev:event="xforms-value-changed">
  463. <![CDATA[
  464. fEducListRetrieve();
  465. ]]>
  466. </script>
  467. </select1>
  468. <line id="line2" class="line_1" style="x1:297px; y1:87px; x2:298px; y2:543px; "/>
  469. <caption id="caption13" class="tit_2" style="left:301px; top:72px; width:169px; height:13px; ">세부내역</caption>
  470. <datagrid id="grd_educlist" nodeset="/root/main/list1/educlist" autoresize="true" caption="적용년도^교육코드^개인신청 필수교육^구분^주체기관" colsep="^" colwidth="73, 81, 177, 40, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="25" rowsep="|" style="left:0px; top:91px; width:295px; height:218px; ">
  471. <col ref="appyy" visibility="hidden"/>
  472. <col ref="educcd" visibility="hidden"/>
  473. <col ref="educcdnm" style="text-align:left; "/>
  474. <col ref="gubun" visibility="hidden"/>
  475. <col ref="instcd" visibility="hidden"/>
  476. <col ref="appdg" visibility="hidden"/>
  477. <script type="javascript" ev:event="ondblclick">
  478. <![CDATA[
  479. var rowcnt = grd_educdtlist.rows-1;
  480. for( var i = 0; i < rowcnt; i++ ) {
  481. model.removenode("/root/main/list2/educdtlist");
  482. }
  483. grd_educdtlist.refresh();
  484. feducdtlistRetrieve();
  485. misfMsterDetailSet(grd_educdtlist, null, "TRRPS03402", "Y");
  486. fCheckAppdgDisable();
  487. model.refresh();
  488. ]]>
  489. </script>
  490. </datagrid>
  491. <button id="btn_search" class="btn1_letter2" style="left:1119px; top:23px; width:56px; height:22px; ">
  492. <caption>조회</caption>
  493. <script type="javascript" ev:event="DOMActivate">
  494. <![CDATA[
  495. model.removenode("/root/main/list3/educapplist");
  496. fEducListRetrieve();
  497. fEducListRetrieve1();
  498. submit("TRRPS03403");
  499. model.refresh();
  500. ]]>
  501. </script>
  502. </button>
  503. <datagrid id="grd_educdtlist" nodeset="/root/main/list2/educdtlist" caption="적용년도^기관코드^사원번호^교육코드^변경전차수^차수^신청기간^신청기간^신청마감시간^교육기간^교육기간^교육&#xA;소요시간^신청인원/정원^신청인원/정원^신청^변경사유^부서장^부서장^부서장^인사팀^인사팀^인사팀^구분|적용년도^기관코드^사원번호^교육코드^변경전차수^차수^From^To^신청마감시간^From^To^교육&#xA;소요시간^신청인원/정원^신청인원/정원^신청^변경사유^승인여부^반려사유^승인시간^확인여부^반려사유^확인시간^구분" colsep="^" colwidth="19, 20, 18, 21, 46, 50, 100, 100, 56, 100, 100, 49, 50, 50, 40, 120, 60, 150, 80, 60, 150, 80, 40" dataheight="25" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:301px; top:91px; width:889px; height:218px; ">
  504. <col ref="appyy" visibility="hidden"/>
  505. <col ref="instcd" visibility="hidden"/>
  506. <col ref="emplno" visibility="hidden"/>
  507. <col ref="educcd" visibility="hidden"/>
  508. <col ref="appdg" visibility="hidden" style="text-align:center; "/>
  509. <col ref="educdg" style="text-align:center; vertical-align:middle; "/>
  510. <col disabled="true" ref="educappfromdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  511. <col disabled="true" ref="educapptodd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  512. <col ref="educappendtm" format="hh:nn" style="text-align:center; "/>
  513. <col disabled="true" ref="educfromdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  514. <col disabled="true" ref="eductodd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  515. <col ref="eductm" visibility="hidden" format="hh:nn" style="text-align:right; "/>
  516. <col ref="emplcnt" style="text-align:right; "/>
  517. <col ref="educcapa" style="text-align:right; "/>
  518. <col checkvalue="Y,N" ref="appyn" type="checkbox"/>
  519. <col ref="updtresn" type="input" maxlength="100"/>
  520. <col disabled="true" ref="deptaprvyn" type="combo" style="text-align:center; ">
  521. <choices>
  522. <itemset nodeset="/root/init/item1">
  523. <label ref="label"/>
  524. <value ref="value"/>
  525. </itemset>
  526. </choices>
  527. </col>
  528. <col ref="deptreturn"/>
  529. <col ref="deptaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  530. <col disabled="true" ref="lastaprvyn" type="combo" style="text-align:center; ">
  531. <choices>
  532. <itemset nodeset="/root/init/item1">
  533. <label ref="label"/>
  534. <value ref="value"/>
  535. </itemset>
  536. </choices>
  537. </col>
  538. <col ref="lastreturn"/>
  539. <col ref="lastaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  540. <col ref="gubun" visibility="hidden"/>
  541. <script type="javascript" ev:event="onaftersort">
  542. <![CDATA[
  543. grd_educdtlist.gridToInstance();
  544. ]]>
  545. </script>
  546. <script type="javascript" ev:event="onmouseup">
  547. <![CDATA[
  548. if( grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("gubun")) == 'U' ) {
  549. if( grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("flag")) == 'N' ) {
  550. messageBox("신청할수 없는 교육","E008");
  551. grd_educdtlist.removeStatus(grd_educdtlist.row,"update");
  552. grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("appyn")) = "false";
  553. }
  554. }
  555. ]]>
  556. </script>
  557. <script type="javascript" ev:event="xforms-value-changed">
  558. <![CDATA[
  559. var row = grd_educdtlist.row;
  560. var col = grd_educdtlist.colRef("appyn");
  561. for( var idx = grd_educdtlist.fixedRows; idx <= grd_educdtlist.rows; idx++ ) {
  562. if(row != idx
  563. && grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("appyn")) == 'Y' ) {
  564. if( messageBox("다른차수에 이미 신청되어 있습니다. 변경하시겠습니까?","Q999") == '6') { // yes눌렀을때.
  565. grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("appyn")) = 'N';
  566. grd_educdtlist.rowStatus(idx) = 2;
  567. grd_educdtlist.valueMatrix(row,grd_educdtlist.colRef("appyn")) = 'Y';
  568. grd_educdtlist.addStatus(row, "insert");
  569. return;
  570. }
  571. else { // no눌렀을때
  572. grd_educdtlist.valueMatrix(row,grd_educdtlist.colRef("appyn")) = 'N';
  573. grd_educdtlist.addStatus(row, "update");
  574. return;
  575. }
  576. }
  577. else {
  578. grd_educdtlist.valueMatrix(row,grd_educdtlist.colRef("appyn")) = 'Y';
  579. grd_educdtlist.addStatus(row, "insert");
  580. }
  581. }
  582. ]]>
  583. </script>
  584. </datagrid>
  585. <caption id="caption16" class="search_name" style="left:541px; top:35px; width:100px; height:17px; ">부 서 :</caption>
  586. <caption id="caption24" class="search_name" style="left:836px; top:35px; width:100px; height:17px; ">사원번호 :</caption>
  587. <caption id="caption26" class="search_name" style="left:20px; top:35px; width:100px; height:17px; ">신청여부 :</caption>
  588. <input id="ipt_dutunitnm" ref="/root/send/retrparams1/dutunitnm" class="input_search" disabled="true" navindex="3" style="left:630px; top:35px; width:150px; height:19px; ">
  589. <script type="javascript" ev:event="xforms-value-changed">
  590. <![CDATA[
  591. if( ipt_dutunitnm.value.getByteLength() == '0' ) {
  592. ipt_dutunitcd.value = "" ;
  593. }
  594. model.refresh();
  595. ]]>
  596. </script>
  597. </input>
  598. <input id="ipt_dutunitcd" ref="/root/send/retrparams1/dutunitcd" class="input_search" disabled="true" navindex="2" visibility="hidden" maxlength="10" style="left:685px; top:55px; width:81px; height:19px; text-align:center; "/>
  599. <select1 id="rdo_appyn" ref="/root/send/retrparams1/appyn" appearance="full" cellspacing="5" cols="3" overflow="visible" style="left:110px; top:35px; width:140px; height:20px; border-style:none; ">
  600. <choices>
  601. <itemset nodeset="/root/init/item">
  602. <label ref="label"/>
  603. <value ref="value"/>
  604. </itemset>
  605. </choices>
  606. <script type="javascript" ev:event="xforms-select">
  607. <![CDATA[
  608. model.setValue("/root/send/retrparams2/appyn",rdo_appyn.value);
  609. fEducListRetrieve();
  610. ]]>
  611. </script>
  612. </select1>
  613. <button id="btn_empl" class="icon_search" disabled="true" style="left:997px; top:35px; width:16px; height:16px; ">
  614. <caption/>
  615. <script type="javascript" ev:event="DOMActivate">
  616. <![CDATA[
  617. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, "emplno,emplnm", "", "N");
  618. model.setValue("/root/send/retrparams2/emplno", ipt_emplno.value);
  619. model.refresh();
  620. ]]>
  621. </script>
  622. </button>
  623. <input id="ipt_emplnm" ref="/root/send/retrparams1/emplnm" class="input_search" disabled="true" navindex="7" style="left:1014px; top:35px; width:51px; height:19px; text-align:center; "/>
  624. <input id="ipt_emplno" ref="/root/send/retrparams1/emplno" class="input_s_essential" disabled="true" navindex="6" style="left:925px; top:35px; width:70px; height:19px; text-align:center; "/>
  625. <line id="line1" class="line_1" style="x1:0px; y1:542px; x2:1190px; y2:543px; "/>
  626. <button id="btn_dutunit" class="icon_search" disabled="true" style="left:784px; top:35px; width:16px; height:16px; ">
  627. <caption/>
  628. <script type="javascript" ev:event="DOMActivate">
  629. <![CDATA[
  630. misfOpenPopUpList("02", ipt_dutunitnm, "", "dutunitcd,dutunitnm", ipt_dutinstcd.value, "instcd");
  631. model.refresh();
  632. ]]>
  633. </script>
  634. </button>
  635. <caption id="caption4" class="search_name" style="left:285px; top:35px; width:114px; height:17px; ">기 관 :</caption>
  636. <datagrid id="grd_attach" nodeset="/root/main/list2/filelist" visibility="hidden" caption="순번^seqno^수정일^파일명^파일경로^파일크기^파일크기^교육코드^년도^기관" colsep="^" colwidth="35, 100, 88, 146, 76, 100, 50, 100, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:976px; top:91px; width:217px; height:218px; ">
  637. <col ref="rownum" visibility="hidden" style="text-align:center; "/>
  638. <col ref="seqno" visibility="hidden" style="text-align:center; "/>
  639. <col disabled="true" ref="updatedt" visibility="hidden" format="yyyy-mm-dd"/>
  640. <col disabled="true" ref="filenm" style="text-align:center; "/>
  641. <col ref="filepath" visibility="hidden"/>
  642. <col ref="filesz" visibility="hidden" format="#,###" style="text-align:center; "/>
  643. <col ref="bytes" visibility="hidden"/>
  644. <col ref="educcd" visibility="hidden"/>
  645. <col ref="appyy" visibility="hidden"/>
  646. <col ref="instcd" visibility="hidden"/>
  647. <script type="javascript" ev:event="ondblclick">
  648. <![CDATA[
  649. var idx = grd_attach.row;
  650. model.copyNode("/root/send/attach","/root/main/grid/filelist["+idx+"]");
  651. var filepath = model.getValue("/root/send/attach/filepath");
  652. var filenm = model.getValue("/root/send/attach/filenm");
  653. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  654. if (localfile != "") {
  655. model.download(getActionURL("TRRPS00205")+"&filepath="+filepath,localfile);
  656. var rtn = messageBox("파일을", "Q004");
  657. if( rtn == 6 ) {
  658. window.exec(localfile);
  659. }
  660. }
  661. ]]>
  662. </script>
  663. </datagrid>
  664. <button id="button8" class="icon_search" style="left:784px; top:11px; width:16px; height:16px; ">
  665. <caption/>
  666. <script type="javascript" ev:event="DOMActivate">
  667. <![CDATA[
  668. var recv_list = "instcd,instnm";
  669. misfOpenPopUpList("03", ipt_instnm,"Z0007", recv_list, "", "") ;
  670. model.refresh();
  671. ]]>
  672. </script>
  673. </button>
  674. <input id="ipt_instnm" ref="/root/send/retrparams1/instnm" class="input_search" appearance="input" style="left:630px; top:10px; width:150px; height:19px; ">
  675. <script type="javascript" ev:event="xforms-value-changed">
  676. <![CDATA[
  677. if( ipt_instnm.value.getByteLength() == '0' ) {
  678. ipt_instcd.value = "" ;
  679. }
  680. model.refresh();
  681. ]]>
  682. </script>
  683. </input>
  684. <input id="ipt_instcd" ref="/root/send/retrparams1/instcd" disabled="true" visibility="hidden" style="left:730px; top:0px; width:50px; height:19px; "/>
  685. <button id="btn_dutinst" class="icon_search" disabled="true" style="left:500px; top:35px; width:16px; height:16px; ">
  686. <caption/>
  687. <script type="javascript" ev:event="DOMActivate">
  688. <![CDATA[
  689. var recv_list = "dutinstcd,dutinstnm";
  690. misfOpenPopUpList("03", ipt_dutinstnm,"Z0007", recv_list, "", "") ;
  691. model.refresh();
  692. ]]>
  693. </script>
  694. </button>
  695. <input id="ipt_dutinstnm" ref="/root/send/retrparams1/dutinstnm" class="input_search" disabled="true" appearance="input" style="left:370px; top:35px; width:125px; height:19px; ">
  696. <script type="javascript" ev:event="xforms-value-changed">
  697. <![CDATA[
  698. if( ipt_dutinstnm.value.getByteLength() == '0' ) {
  699. ipt_dutinstcd.value = "" ;
  700. }
  701. model.refresh();
  702. ]]>
  703. </script>
  704. </input>
  705. <input id="ipt_dutinstcd" ref="/root/send/retrparams1/dutinstcd" disabled="true" visibility="hidden" style="left:430px; top:55px; width:50px; height:19px; "/>
  706. <caption id="caption5" style="left:410px; top:695px; width:430px; height:25px; font-size:10pt; font-weight:bold; color:#ff0000; ">※ 교육 신청 취소는 인사팀 교육Unit로 문의하시기 바립니다.</caption>
  707. <datagrid id="grd_educapplist" nodeset="/root/main/list4/educapplist" caption="적용년도^기관코드^교육코드^인사팀 대상자 확정교육^차수^필수/&#xA;선택^교육기간^교육기간^교육시간일정^부서장^부서장^부서장^인사팀^인사팀^인사팀|적용년도^기관코드^교육코드^인사팀 대상자 확정교육^차수^필수/&#xA;선택^From^To^교육시간일정^승인여부^반려사유^승인시간^확인여부^반려사유^확인시간" colsep="^" colwidth="19, 20, 21, 465, 65, 55, 90, 90, 100, 75, 150, 100, 75, 150, 100" dataheight="25" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:546px; width:1192px; height:149px; ">
  708. <col ref="appyy" visibility="hidden"/>
  709. <col ref="instcd" visibility="hidden"/>
  710. <col ref="educcd" visibility="hidden"/>
  711. <col ref="educnm"/>
  712. <col ref="educdg" style="text-align:center; vertical-align:middle; "/>
  713. <col ref="choiflag" visibility="hidden" style="text-align:center; "/>
  714. <col ref="educfromdd" format="yyyy-mm-dd" style="text-align:center; "/>
  715. <col ref="eductodd" format="yyyy-mm-dd" style="text-align:center; "/>
  716. <col ref="eductm" format="99:99-99:99" style="text-align:center; "/>
  717. <col disabled="true" ref="deptaprvyn" type="combo" style="text-align:center; ">
  718. <choices>
  719. <itemset nodeset="/root/init/item1">
  720. <label ref="label"/>
  721. <value ref="value"/>
  722. </itemset>
  723. </choices>
  724. </col>
  725. <col ref="deptreturn" visibility="hidden"/>
  726. <col ref="deptaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  727. <col disabled="true" ref="lastaprvyn" type="combo" style="text-align:center; ">
  728. <choices>
  729. <itemset nodeset="/root/init/item1">
  730. <label ref="label"/>
  731. <value ref="value"/>
  732. </itemset>
  733. </choices>
  734. </col>
  735. <col ref="lastreturn" visibility="hidden"/>
  736. <col ref="lastaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  737. <script type="javascript" ev:event="onaftersort">
  738. <![CDATA[
  739. grd_educdtlist.gridToInstance();
  740. ]]>
  741. </script>
  742. <script type="javascript" ev:event="onmouseup">
  743. <![CDATA[
  744. if( grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("gubun")) == 'U' ) {
  745. if( grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("flag")) == 'N' ) {
  746. messageBox("신청할수 없는 교육","E008");
  747. grd_educdtlist.removeStatus(grd_educdtlist.row,"update");
  748. grd_educdtlist.valueMatrix(grd_educdtlist.row, grd_educdtlist.colRef("appyn")) = "false";
  749. }
  750. }
  751. ]]>
  752. </script>
  753. <script type="javascript" ev:event="xforms-value-changed">
  754. <![CDATA[
  755. var row = grd_educdtlist.row;
  756. var col = grd_educdtlist.colRef("appyn");
  757. for( var idx = grd_educdtlist.fixedRows; idx <= grd_educdtlist.rows; idx++ ) {
  758. if(row != idx
  759. && grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("appyn")) == 'Y' ) {
  760. if( messageBox("다른차수에 이미 신청되어 있습니다. 변경하시겠습니까?","Q999") == '6') { // yes눌렀을때.
  761. grd_educdtlist.valueMatrix(idx,grd_educdtlist.colRef("appyn")) = 'N';
  762. grd_educdtlist.addStatus(idx, "update");
  763. grd_educdtlist.valueMatrix(row,grd_educdtlist.colRef("appyn")) = 'Y';
  764. return;
  765. }
  766. else { // no눌렀을때
  767. grd_educdtlist.valueMatrix(row,grd_educdtlist.colRef("appyn")) = 'N';
  768. grd_educdtlist.addStatus(row, "update");
  769. return;
  770. }
  771. }
  772. }
  773. ]]>
  774. </script>
  775. </datagrid>
  776. <shape id="rectangle3" appearance="rectangle" style="left:962px; top:70px; width:15px; height:15px; background-color:#dddddd; "/>
  777. <caption id="caption11" style="left:978px; top:66px; width:106px; height:25px; ">신청 불가능한 교육</caption>
  778. <datagrid id="grd_educlist1" nodeset="/root/main/list1/educlist1" autoresize="true" caption="적용년도^교육코드^개인신청 선택교육^구분^주체기관" colsep="^" colwidth="73, 81, 177, 40, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="25" rowsep="|" style="left:0px; top:315px; width:295px; height:225px; ">
  779. <col ref="appyy" visibility="hidden"/>
  780. <col ref="educcd" visibility="hidden"/>
  781. <col ref="educcdnm" style="text-align:left; "/>
  782. <col ref="gubun" visibility="hidden"/>
  783. <col ref="instcd" visibility="hidden"/>
  784. <col ref="appdg" visibility="hidden"/>
  785. <script type="javascript" ev:event="ondblclick">
  786. <![CDATA[
  787. var rowcnt = grd_educdtlist1.rows-1;
  788. for( var i = 0; i < rowcnt; i++ ) {
  789. model.removenode("/root/main/list3/educdtlist");
  790. }
  791. grd_educdtlist1.refresh();
  792. misfMsterDetailSet(grd_educdtlist1, null, "TRRPS03404", "Y");
  793. feducdtlistRetrieve1();
  794. fCheckAppdgDisable1();
  795. model.refresh();
  796. ]]>
  797. </script>
  798. </datagrid>
  799. <line id="line3" class="line_1" style="x1:0px; y1:311px; x2:1190px; y2:312px; "/>
  800. <datagrid id="grd_educdtlist1" nodeset="/root/main/list3/educdtlist" caption="적용년도^기관코드^사원번호^교육코드^변경전차수^차수^신청기간^신청기간^신청마감시간^교육기간^교육기간^교육&#xA;소요시간^신청인원/정원^신청인원/정원^신청^변경사유^부서장^부서장^부서장^인사팀^인사팀^인사팀^구분|적용년도^기관코드^사원번호^교육코드^변경전차수^차수^From^To^신청마감시간^From^To^교육&#xA;소요시간^신청인원/정원^신청인원/정원^신청^변경사유^승인여부^반려사유^승인시간^확인여부^반려사유^확인시간^구분" colsep="^" colwidth="19, 20, 18, 21, 46, 50, 100, 100, 56, 100, 100, 49, 50, 50, 40, 120, 60, 150, 80, 60, 150, 80, 40" dataheight="25" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:301px; top:315px; width:889px; height:225px; ">
  801. <col ref="appyy" visibility="hidden"/>
  802. <col ref="instcd" visibility="hidden"/>
  803. <col ref="emplno" visibility="hidden"/>
  804. <col ref="educcd" visibility="hidden"/>
  805. <col ref="appdg" visibility="hidden" style="text-align:center; "/>
  806. <col ref="educdg" style="text-align:center; vertical-align:middle; "/>
  807. <col disabled="true" ref="educappfromdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  808. <col disabled="true" ref="educapptodd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  809. <col ref="educappendtm" format="hh:nn" style="text-align:center; "/>
  810. <col disabled="true" ref="educfromdd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  811. <col disabled="true" ref="eductodd" type="inputdate" format="yyyy-mm-dd" style="text-align:center; "/>
  812. <col ref="eductm" visibility="hidden" format="hh:nn" style="text-align:right; "/>
  813. <col ref="emplcnt" style="text-align:right; "/>
  814. <col ref="educcapa" style="text-align:right; "/>
  815. <col checkvalue="Y,N" ref="appyn" type="checkbox"/>
  816. <col ref="updtresn" type="input" maxlength="100"/>
  817. <col disabled="true" ref="deptaprvyn" type="combo" style="text-align:center; ">
  818. <choices>
  819. <itemset nodeset="/root/init/item1">
  820. <label ref="label"/>
  821. <value ref="value"/>
  822. </itemset>
  823. </choices>
  824. </col>
  825. <col ref="deptreturn"/>
  826. <col ref="deptaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  827. <col disabled="true" ref="lastaprvyn" type="combo" style="text-align:center; ">
  828. <choices>
  829. <itemset nodeset="/root/init/item1">
  830. <label ref="label"/>
  831. <value ref="value"/>
  832. </itemset>
  833. </choices>
  834. </col>
  835. <col ref="lastreturn"/>
  836. <col ref="lastaprvdd" format="yyyy-mm-dd" style="text-align:center; "/>
  837. <col ref="gubun" visibility="hidden"/>
  838. <script type="javascript" ev:event="onaftersort">
  839. <![CDATA[
  840. grd_educdtlist1.gridToInstance();
  841. ]]>
  842. </script>
  843. <script type="javascript" ev:event="onmouseup">
  844. <![CDATA[
  845. if( grd_educdtlist1.valueMatrix(grd_educdtlist1.row, grd_educdtlist1.colRef("gubun")) == 'U' ) {
  846. if( grd_educdtlist1.valueMatrix(grd_educdtlist1.row, grd_educdtlist1.colRef("flag")) == 'N' ) {
  847. messageBox("신청할수 없는 교육","E008");
  848. grd_educdtlist1.removeStatus(grd_educdtlist1.row,"update");
  849. grd_educdtlist1.valueMatrix(grd_educdtlist1.row, grd_educdtlist1.colRef("appyn")) = "false";
  850. }
  851. }
  852. ]]>
  853. </script>
  854. <script type="javascript" ev:event="xforms-value-changed">
  855. <![CDATA[
  856. var row = grd_educdtlist1.row;
  857. var col = grd_educdtlist1.colRef("appyn");
  858. for( var idx = grd_educdtlist1.fixedRows; idx <= grd_educdtlist1.rows; idx++ ) {
  859. if(row != idx
  860. && grd_educdtlist1.valueMatrix(idx,grd_educdtlist1.colRef("appyn")) == 'Y' ) {
  861. if( messageBox("다른차수에 이미 신청되어 있습니다. 변경하시겠습니까?","Q999") == '6') { // yes눌렀을때.
  862. grd_educdtlist1.valueMatrix(idx,grd_educdtlist.colRef("appyn")) = 'N';
  863. grd_educdtlist1.rowStatus(idx) = 2;
  864. grd_educdtlist1.valueMatrix(row,grd_educdtlist1.colRef("appyn")) = 'Y';
  865. grd_educdtlist1.addStatus(row, "insert");
  866. return;
  867. }
  868. else { // no눌렀을때
  869. grd_educdtlist1.valueMatrix(row,grd_educdtlist1.colRef("appyn")) = 'N';
  870. grd_educdtlist1.addStatus(row, "update");
  871. return;
  872. }
  873. }else {
  874. grd_educdtlist1.valueMatrix(row,grd_educdtlist1.colRef("appyn")) = 'Y';
  875. grd_educdtlist1.addStatus(row, "insert");
  876. }
  877. }
  878. ]]>
  879. </script>
  880. </datagrid>
  881. <datagrid id="grd_attach1" nodeset="/root/main/list3/filelist" visibility="hidden" caption="순번^seqno^수정일^파일명^파일경로^파일크기^파일크기^교육코드^년도^기관" colsep="^" colwidth="35, 100, 88, 162, 76, 100, 50, 100, 100, 100" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:976px; top:315px; width:217px; height:225px; ">
  882. <col ref="rownum" visibility="hidden" style="text-align:center; "/>
  883. <col ref="seqno" visibility="hidden" style="text-align:center; "/>
  884. <col disabled="true" ref="updatedt" visibility="hidden" format="yyyy-mm-dd"/>
  885. <col disabled="true" ref="filenm" style="text-align:center; "/>
  886. <col ref="filepath" visibility="hidden"/>
  887. <col ref="filesz" visibility="hidden" format="#,###" style="text-align:center; "/>
  888. <col ref="bytes" visibility="hidden"/>
  889. <col ref="educcd" visibility="hidden"/>
  890. <col ref="appyy" visibility="hidden"/>
  891. <col ref="instcd" visibility="hidden"/>
  892. <script type="javascript" ev:event="ondblclick">
  893. <![CDATA[
  894. var idx = grd_attach.row;
  895. model.copyNode("/root/send/attach","/root/main/grid/filelist["+idx+"]");
  896. var filepath = model.getValue("/root/send/attach/filepath");
  897. var filenm = model.getValue("/root/send/attach/filenm");
  898. var localfile = window.fileDialog("save","|",false,filenm,"","All Files(*.*)|*.*");
  899. if (localfile != "") {
  900. model.download(getActionURL("TRRPS00205")+"&filepath="+filepath,localfile);
  901. var rtn = messageBox("파일을", "Q004");
  902. if( rtn == 6 ) {
  903. window.exec(localfile);
  904. }
  905. }
  906. ]]>
  907. </script>
  908. </datagrid>
  909. <button id="btn_size" class="btn2_letter7" style="left:1095px; top:66px; width:97px; height:19px; ">
  910. <caption>첨부파일보이기</caption>
  911. <script type="javascript" ev:event="DOMActivate">
  912. <![CDATA[
  913. if( SIZE_FLAG ) {
  914. grd_attach.visible = true;
  915. grd_attach1.visible = true;
  916. grd_educdtlist.attribute("style") = "left:301px; top:91px; width:674px; height:218px; ";
  917. grd_educdtlist1.attribute("style") = "left:301px; top:315px; width:674px; height:225px; ";
  918. btn_size.value = "첨부파일보이기";
  919. SIZE_FLAG = false;
  920. }
  921. else {
  922. grd_attach.visible = false;
  923. grd_attach1.visible = false;
  924. grd_educdtlist.attribute("style") = "left:301px; top:91px; width:889px; height:218px; ";
  925. grd_educdtlist1.attribute("style") = "left:301px; top:315px; width:889px; height:225px; ";
  926. btn_size.value = "첨부파일숨기기";
  927. SIZE_FLAG = true;
  928. }
  929. model.refresh();
  930. ]]>
  931. </script>
  932. </button>
  933. </group>
  934. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  935. <button id="btn_save" class="btn4_letter2" navindex="20000" style="left:1139px; top:3px; width:56px; height:22px; ">
  936. <caption>저장</caption>
  937. <script type="javascript" ev:event="DOMActivate">
  938. <![CDATA[
  939. fSave();
  940. fCheckAppdgDisable();
  941. model.refresh();
  942. ]]>
  943. </script>
  944. </button>
  945. </group>
  946. </xhtml:body>
  947. </xhtml:html>