SMRTS02200_레지던트수련계획관리.xrw 58 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>레지던트 수련계획 관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <reflist/>
  11. </main>
  12. <send>
  13. <req>
  14. <educyy/>
  15. <supinfqurtyyflag>1</supinfqurtyyflag>
  16. <anual>1</anual>
  17. <deptcd/>
  18. <mainguidhosp/>
  19. <name/>
  20. <refanual/>
  21. <preststatcd/>
  22. <trainyychangyn/>
  23. <iptrefanual>4</iptrefanual>
  24. </req>
  25. <reqmd>
  26. <instcd>001</instcd>
  27. <deptcd/>
  28. </reqmd>
  29. <reqeduc>
  30. <deptcd/>
  31. <yy/>
  32. </reqeduc>
  33. <save/>
  34. <requpdtsche>
  35. <scheflag>02</scheflag>
  36. </requpdtsche>
  37. <addrowinfo>
  38. <emplno/>
  39. <deptcd/>
  40. </addrowinfo>
  41. <prnseq>
  42. <yy/>
  43. <deptcd/>
  44. <supinfqurtyyflag/>
  45. <anual/>
  46. <apprtcdrflag/>
  47. <deptnm/>
  48. </prnseq>
  49. </send>
  50. <init/>
  51. <hidden/>
  52. <temp>
  53. <cellinfo>
  54. <flag/>
  55. <ref/>
  56. <mm/>
  57. <nextref/>
  58. </cellinfo>
  59. <colviewflag>1</colviewflag>
  60. <emplcnt/>
  61. <refedreq/>
  62. <updtyyanual>
  63. <educyy/>
  64. <anual/>
  65. </updtyyanual>
  66. <guid>
  67. <guidmedispclinstnm/>
  68. <guidmedispclinstcd/>
  69. <guidmedispcldremplnm/>
  70. <guidmedispcldremplno/>
  71. </guid>
  72. <scheflag/>
  73. </temp>
  74. </root>
  75. </instance>
  76. <submission id="TRRTS00602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqint" resultref="/root/main/tisorddeptcdlist"/>
  77. <submission id="TRRTS02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/req" resultref="/root/main/reflist"/>
  78. <submission id="TRRTS02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqmd" resultref="/root/main/mdlist"/>
  79. <submission id="TRRTS02203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqeduc" resultref="/root/main/educ"/>
  80. <submission id="TRRTS02204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/requpdtsche/scheflag" resultref="/root/main/updtsche"/>
  81. <submission id="TXRTS02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save"/>
  82. <submission id="TXRTS02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/req" resultref="/root/main/tretinfo"/>
  83. <submission id="TXRTS02203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/addrowinfo" resultref="/root/main/tretinfo"/>
  84. <submission id="TXRTS02204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/addrowinfo" resultref="/root/main/tretinfo"/>
  85. <submission id="TRRTP00306" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/prnseq" resultref="/root/main/reflist"/>
  86. <submission id="TRRTS00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/prnseq" resultref="/root/main/reflist"/>
  87. <submission id="TXRTS02205" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/prnseq" resultref="/root/main/tretinfo"/>
  88. </model>
  89. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  90. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  91. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  92. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  93. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  94. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  95. <script type="javascript" src="../../../mis/tistrngeducbaseinfomngtweb/js/RTC001.js"/>
  96. <script type="javascript" ev:event="xforms-ready">
  97. <![CDATA[
  98. grd_plan.attribute("backcoloralternate") = "";
  99. //사용자 권한
  100. fCheckAuth();
  101. misfComboComCdListMulti("R0237,R0281,R0305,R0146,R0314,R0281", "cmb_supinfqurtyyflag,cmb_anual,cmb_mainguidhosp,cmb_preststatcd,cmb_instcd,combo1");
  102. submit("TRRTS00602");
  103. //submit("TRRTS02204");
  104. addComboItem( "cmb_mainguidhosp", "", "", "above");
  105. addComboItem( "cmb_preststatcd", "", "", "above");
  106. addComboItem( "combo1", "", "", "above");
  107. grd_instcd.nodeset = cmb_instcd.choices.itemset.attribute("nodeset");
  108. var today = getCurrentDate();
  109. var cur_yy = parseInt(today.substring(0, 4));
  110. model.setValue("/root/send/req/educyy", cur_yy);
  111. ipt_yy.refresh();
  112. ]]>
  113. </script>
  114. <script type="javascript">
  115. <![CDATA[
  116. var gMastUser = false;
  117. //========================================================================================
  118. //버튼에 대한 화면 권한 체크(R : 읽기, X : 입력/수정/삭제, P : 출력)
  119. //========================================================================================
  120. function fCheckAuth() {
  121. gMastUser = checkAuth("P") ;
  122. btn_search.disabled = !checkAuth("R") ;
  123. btn_save.disabled = !checkAuth("X") ;
  124. btn_adduninputplan.visible = gMastUser;
  125. btn_grdadd.visible = gMastUser ;
  126. btn_grddel.visible = gMastUser ;
  127. }
  128. function setScheFromTo() {
  129. gMastUser = checkAuth("P") ;
  130. if (!gMastUser) {
  131. /*
  132. var sPosdeptcd = getUserInfo("posdeptcd");
  133. // 내과 세부분과일시 내과로 세팅
  134. if(sPosdeptcd == "2010300000" || sPosdeptcd == "2010400000" || sPosdeptcd == "2010500000" || sPosdeptcd == "2010600000" || sPosdeptcd == "2010700000" || sPosdeptcd == "2010800000" || sPosdeptcd == "2010900000" || sPosdeptcd == "2011000000" || sPosdeptcd == "2011100000")
  135. {
  136. model.setValue("/root/send/req/deptcd", "2010000000");
  137. }
  138. else
  139. {
  140. model.setValue("/root/send/req/deptcd", getUserInfo("posdeptcd"));
  141. }
  142. cmb_deptcd.refresh();
  143. */
  144. ipt_yy.disabled = true;
  145. rtsfCheckTermFlag('02',cmb_deptcd.value);
  146. var from = model.getValue("/root/updtsche/list/schefrom");
  147. var to = model.getValue("/root/updtsche/list/scheto");
  148. var fromyy=from.substr(0,4);
  149. var frommm=from.substr(4,2);
  150. var fromdd=from.substr(6,2);
  151. var toyy=to.substr(0,4);
  152. var tomm=to.substr(4,2);
  153. var todd=to.substr(6,2);
  154. var today = getCurrentDate();
  155. var schefromto= "수련계획 입력기간은 "+fromyy+"년 "+ frommm+"월 "+fromdd+"일 "+"~ "+ toyy+"년 "+ tomm+"월 "+todd+"일 까지 입니다.";
  156. model.setValue("/root/temp/scheflag",schefromto);
  157. if( parseInt(today) >= parseInt(from) && parseInt(today) <= parseInt(to) ){
  158. btn_save.disabled=false;
  159. }else{
  160. btn_save.disabled=true;;
  161. }
  162. }
  163. }
  164. /* 수련계획을 추가하거나 삭제한다.
  165. 추가 : 최종 수련계획으로 6개월을 생성
  166. 삭제 : 최종 수련계획 6개월을 삭제
  167. 이기능의 주목적은 수련기간 중 휴직,분만을 통해 수료조건의 기간 불충분시 근무연장에 대한 수련계획 추가를 한다.
  168. 6개월 단위로 하는 것은 휴직이 6개월 단위이므로 추가분도 6개월 단위이다.
  169. 1년이 연장되면 추가를 두번한다.
  170. */
  171. function fDoAddOrDel(submitid)
  172. {
  173. // 조회년차를 4년으로 하여야 한다.
  174. if (model.getValue("/root/temp/refedreq/iptrefanual") == "4")
  175. {
  176. var emplno = grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("emplno"));
  177. var emplnm = grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("name"));
  178. if (emplno == "")
  179. {
  180. messageBox("선택된 전공의가 없습니다.", "I", "");
  181. return;
  182. }
  183. var msg = document.controls( event.target ).text;
  184. if (messageBox(emplnm + " 의 " +msg+ " 합니다.\n\n", "Q004", "") != 6)
  185. {
  186. return;
  187. }
  188. // 최종의 수련계획은 사원번호의 전공과목의 레지던트 수련계획이다.
  189. model.setValue("/root/send/addrowinfo/emplno", emplno);
  190. model.setValue("/root/send/addrowinfo/deptcd", model.getValue("/root/temp/refedreq/deptcd"));
  191. if ( submit(submitid) )
  192. {
  193. if (model.getValue("/root/main/tretinfo/tretcnt") == "0")
  194. {
  195. messageBox(model.getValue("/root/main/tretinfo/tretmsg"), "I", "");
  196. return;
  197. }
  198. else
  199. {
  200. btn_search.dispatch("DOMActivate");
  201. }
  202. }
  203. }
  204. else
  205. {
  206. messageBox("조회년차를 4년차로 하여 조회 하신후에 가능합니다.", "I", "");
  207. }
  208. }
  209. /* 수련입력기간 체크
  210. 수련교육실무자는 언제든지 가능한다.
  211. 그외의 사용자는 과별로 입력기간에만 가능하다.
  212. 입력가능기간이라고 해도 지난 수련계획은 수정 할 수 없다.
  213. */
  214. function fChkUpdt(ym)
  215. {
  216. if (gMastUser)
  217. {
  218. return true;
  219. }
  220. else
  221. {
  222. //var node = instance1.selectSingleNode("/root/main/updtsche/lis[schedetlcd='"+ model.getValue("/root/temp/refedreq/deptcd") +"']");
  223. //rtsfCheckTermFlag('02',getUserInfo("posdeptcd"));
  224. rtsfCheckTermFlag('02',cmb_deptcd.value);
  225. var from = model.getValue("/root/updtsche/list/schefrom");
  226. var to = model.getValue("/root/updtsche/list/scheto");
  227. var today = getCurrentDate();
  228. var cur_md = today.substr(4, 4);
  229. var cur_ym = today.substr(0, 6);
  230. if (ym > cur_ym && from <= today && today <= to) {
  231. return true;
  232. }
  233. }
  234. messageBox("수련계획입력기간중에 미래의 계획만 입력가능합니다.", "I", "");
  235. return false;
  236. }
  237. // 현재 셀의 위치가 몇월인가, 기관,근무,교육인가를 리턴
  238. function CELL_INFO()
  239. {
  240. this.flag = ""; //기관:inst,근무지:dept,교육:educ
  241. this.ref = ""; //col ref
  242. this.mm = ""; //month
  243. this.nextref = "";
  244. }
  245. // 그리드 표시를 3,9 월부터 표시 할때 수행하는 함수
  246. // 사용하지 않는다.
  247. function fChgGrdColPos()
  248. {
  249. var arr_nm = new Array("yymm", "instmm", "deptmm", "educmm");
  250. var arr_mm1 = new Array("03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "01", "02");
  251. var arr_mm2 = new Array("09", "10", "11", "12", "01", "02", "03", "04", "05", "06", "07", "08");
  252. var arr_col = new Array(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1);
  253. var arr_src;
  254. var arr_dest;
  255. if (model.getValue("/root/temp/colviewflag") == "1")
  256. {
  257. arr_src = arr_mm2;
  258. arr_dest = arr_mm1;
  259. }
  260. else
  261. {
  262. arr_src = arr_mm1;
  263. arr_dest = arr_mm2;
  264. }
  265. for (var i=0; i<arr_nm.length; i++)
  266. {
  267. for (var j=0; j<arr_src.length; j++)
  268. {
  269. arr_col[j] = grd_plan.colRef(arr_nm[i] + arr_src[j]);
  270. }
  271. for (var j=0; j<arr_col.length; j++)
  272. {
  273. //colidx = grd_plan.colRef(arr_nm[i] + arr_src[j]);
  274. grd_plan.colAttribute(arr_col[j], "ref") = arr_nm[i] + arr_dest[j];
  275. grd_plan.valueMatrix(0, arr_col[j]) = arr_dest[j]+"월";
  276. grd_plan.valueMatrix(1, arr_col[j]) = arr_dest[j]+"월";
  277. grd_plan.valueMatrix(2, arr_col[j]) = arr_dest[j]+"월";
  278. }
  279. }
  280. grd_plan.refresh();
  281. }
  282. // 기관, 근무지, 교육, 교육년도, 년차를 입력 할 때 수행하는 함수
  283. // 해당 값을 세팅하고 월별 status를 u로 세팅한다.
  284. function fSetPlanValue(colidx, valu)
  285. {
  286. var mm = fGetMMfromRef(grd_plan.colAttribute(colidx, "ref"));
  287. var yy = grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("yy"));
  288. if (fChkUpdt(yy+mm))
  289. {
  290. grd_plan.valueMatrix(grd_plan.row, colidx) = valu;
  291. grd_plan.rowStatus(grd_plan.row) = 2;
  292. grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("statusmm"+mm)) = "u";
  293. }
  294. }
  295. /* 교육코드 리스트 세팅
  296. */
  297. function fSetEducList(rowidx, mm)
  298. {
  299. var deptcd = grd_plan.valueMatrix(rowidx, grd_plan.colRef("deptmm"+ mm));
  300. var instcd = grd_plan.valueMatrix(rowidx, grd_plan.colRef("instmm"+ mm));
  301. var anual = grd_plan.valueMatrix(rowidx, grd_plan.colRef("anualmm"+mm));
  302. if (deptcd == "")
  303. {
  304. grd_educ.attribute("visibility") = "hidden";
  305. return false;
  306. }
  307. if (instcd == "")
  308. {
  309. messageBox(mm + " 월의 기관이 입력되지 않았습니다.", "I", "");
  310. grd_educ.attribute("visibility") = "hidden";
  311. return false;
  312. }
  313. if (model.getValue("/root/temp/refedreq/deptcd") == "2230000000")
  314. {
  315. var deptcd10 = instance1.getXPathString("/root/main/tisorddeptcdlist[tisdeptcd='"+deptcd+"']/deptcd");
  316. if (model.getValue("/root/send/reqeduc/deptcd") != deptcd10)
  317. {
  318. model.setValue("/root/send/reqeduc/deptcd", deptcd10);
  319. model.setValue("/root/send/reqeduc/yy", model.getValue("/root/temp/refedreq/educyy"));
  320. submit("TRRTS02203");
  321. }
  322. }
  323. var s_nodeset = "/root/main/educ/educcdlist[instcd='"+instcd+"' and anual='"+anual+"']";
  324. if (s_nodeset != model.getValue("/root/temp/educnodeset"))
  325. {
  326. model.makeValue("/root/temp/educnodeset", s_nodeset);
  327. grd_educ.nodeset = s_nodeset;
  328. }
  329. return true;
  330. }
  331. /* 코드창 드래그시 수행하는 함수
  332. */
  333. function fSetDiffPos(grdObj)
  334. {
  335. if (event.button == "1")
  336. {
  337. model.makeValue("/root/temp/diffpos/x", event.clientX - parseInt(grdObj.attribute("left")));
  338. model.makeValue("/root/temp/diffpos/y", event.clientY - parseInt(grdObj.attribute("top")));
  339. }
  340. }
  341. /* 코드창 드래그시 수행하는 함수
  342. */
  343. function fMoveGrd(grdObj)
  344. {
  345. if (event.button == "1")
  346. {
  347. grdObj.attribute("left") = event.clientX - (parseInt(model.getValue("/root/temp/diffpos/x")));
  348. grdObj.attribute("top") = event.clientY - (parseInt(model.getValue("/root/temp/diffpos/y")));
  349. }
  350. }
  351. function fGetMMfromRef(refstr)
  352. {
  353. return refstr.substr(refstr.length-2, 2);
  354. }
  355. /* 입력 가능한 셀인지를 체크한다.
  356. */
  357. function fIsMonthCell(colidx)
  358. {
  359. var cellinfo = new CELL_INFO();
  360. if (grd_plan.colRef("instmm01") <= colidx && colidx <= grd_plan.colRef("instmm12"))
  361. {
  362. cellinfo.flag = "inst";
  363. }
  364. else if (grd_plan.colRef("deptmm01") <= colidx && colidx <= grd_plan.colRef("deptmm12"))
  365. {
  366. cellinfo.flag = "dept";
  367. }
  368. else if (grd_plan.colRef("educmm01") <= colidx && colidx <= grd_plan.colRef("educmm12"))
  369. {
  370. cellinfo.flag = "educ";
  371. }
  372. else if (grd_plan.colRef("educyymm01") <= colidx && colidx <= grd_plan.colRef("educyymm12"))
  373. {
  374. cellinfo.flag = "anual";
  375. }
  376. else if (grd_plan.colRef("anualmm01") <= colidx && colidx <= grd_plan.colRef("anualmm12"))
  377. {
  378. cellinfo.flag = "anual";
  379. }
  380. cellinfo.ref = grd_plan.colAttribute(colidx, "ref");
  381. cellinfo.mm = fGetMMfromRef(cellinfo.ref);
  382. var dept_valu = grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("deptmm" + cellinfo.mm));
  383. if (dept_valu == "")
  384. cellinfo.flag = "";
  385. var imm = parseInt(cellinfo.mm, 10) + 1;
  386. if (imm > 12)
  387. imm -= 12;
  388. var smm = (imm + "").getLeftPad(2, "0");
  389. cellinfo.nextref = cellinfo.ref.substring(0, cellinfo.ref.length-2) + smm;
  390. if (cellinfo.flag == "")
  391. cellinfo = null;
  392. /*model.makeValue("/root/temp/cellinfo/flag", cellinfo.flag);
  393. model.makeValue("/root/temp/cellinfo/ref", cellinfo.ref);
  394. model.makeValue("/root/temp/cellinfo/mm", cellinfo.mm);
  395. model.makeValue("/root/temp/cellinfo/nextref", cellinfo.nextref);
  396. output1.refresh();
  397. output2.refresh();
  398. output3.refresh();
  399. output4.refresh();*/
  400. return cellinfo;
  401. }
  402. function fDefaultDeptSetting(control)
  403. {
  404. var sPosdeptcd = getUserInfo("posdeptcd");
  405. var sDeptcd = control.value;
  406. // 주임교수이면서 핵의학과 교수일때
  407. if(checkAuth("X") && sPosdeptcd == "2180000000")
  408. {
  409. if(sDeptcd == "2180000000" || sDeptcd == "2160000000")
  410. {}
  411. else
  412. {
  413. messageBox(control.label+ "을 선택", "E001");
  414. control.value = sPosdeptcd;
  415. // model.setValue("/root/send/deptcd", sPosdeptcd); // 진료과 설정
  416. }
  417. }
  418. // 주임교수이면서 치과 교수일때
  419. else if(checkAuth("X") && sPosdeptcd == "2240000000")
  420. {
  421. if(sDeptcd == "2240000000" || sDeptcd == "2240500000" || sDeptcd == "2240200000" || sDeptcd == "2240400000")
  422. {}
  423. else
  424. {
  425. messageBox(control.label+ "을 선택", "E001");
  426. control.value = sPosdeptcd;
  427. // model.setValue("/root/send/deptcd", sPosdeptcd); // 진료과 설정
  428. }
  429. }
  430. else if(sPosdeptcd == "2010300000" || sPosdeptcd == "2010400000" || sPosdeptcd == "2010500000" || sPosdeptcd == "2010600000" || sPosdeptcd == "2010700000" || sPosdeptcd == "2010800000" || sPosdeptcd == "2010900000" || sPosdeptcd == "2011000000" || sPosdeptcd == "2011100000")
  431. {
  432. if(sDeptcd != "2010000000")
  433. {
  434. messageBox(control.label+ "을 선택", "E001");
  435. sPosdeptcd = "2010000000";
  436. control.value = sPosdeptcd;
  437. // model.setValue("/root/send/deptcd", sPosdeptcd); // 진료과 설정
  438. }
  439. }
  440. else
  441. {
  442. if(checkAuth("X"))
  443. {}
  444. else
  445. {
  446. if(sPosdeptcd != sDeptcd)
  447. {
  448. messageBox(control.label+ "을 선택", "E001");
  449. control.value = sPosdeptcd;
  450. }
  451. }
  452. }
  453. model.refresh();
  454. }
  455. ]]>
  456. </script>
  457. </xhtml:head>
  458. <xhtml:body style="margin-left:8; margin-right:8; ">
  459. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  460. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">레지던트 수련 계획 관리</caption>
  461. </group>
  462. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  463. <caption id="caption22" class="tit_2" style="left:5px; top:81px; width:219px; height:14px; ">수련계획 및 교육관리</caption>
  464. <group id="group6" style="left:0px; top:10px; width:1195px; height:90px; vertical-align:top; ">
  465. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:63px; "/>
  466. <caption id="cap_yy" class="search_name" style="left:15px; top:11px; width:125px; height:17px; ">년 도 :</caption>
  467. <caption id="cap_supinfqurtyyflag" class="search_name" style="left:285px; top:11px; width:126px; height:17px; ">상 하 반 기 :</caption>
  468. <caption id="cap_anual" class="search_name" style="left:539px; top:10px; width:109px; height:17px; ">전공의년차 :</caption>
  469. <caption id="cap_deptcd" class="search_name" style="left:770px; top:10px; width:109px; height:17px; ">전 공 과 :</caption>
  470. <select1 id="cmb_anual" ref="/root/send/req/anual" class="combo_s_essential" appearance="minimal" style="left:642px; top:9px; width:100px; height:19px; ">
  471. <choices>
  472. <itemset>
  473. <label/>
  474. <value/>
  475. </itemset>
  476. </choices>
  477. <script type="javascript" ev:event="xforms-value-changed">
  478. <![CDATA[
  479. var anual = cmb_anual.value;
  480. var deptcd = cmb_deptcd.value;
  481. if(deptcd =='2230000000' || deptcd =='2240000000' ||deptcd =='2240200000'||deptcd =='2240400000'||deptcd =='2240500000')
  482. {
  483. if(anual =='4')
  484. {
  485. cmb_anual.value ='3';
  486. }
  487. }
  488. ]]>
  489. </script>
  490. </select1>
  491. <select1 id="cmb_deptcd" ref="/root/send/req/deptcd" class="combo_s_essential" appearance="minimal" style="left:864px; top:9px; width:100px; height:19px; ">
  492. <choices>
  493. <itemset nodeset="/root/main/tisorddeptcdlist">
  494. <label ref="deptnm"/>
  495. <value ref="deptcd"/>
  496. </itemset>
  497. </choices>
  498. <script type="javascript" ev:event="xforms-value-changed">
  499. <![CDATA[
  500. fDefaultDeptSetting(cmb_deptcd);
  501. var anual = cmb_anual.value;
  502. var deptcd =cmb_deptcd.value;
  503. if(deptcd =='2230000000' || deptcd =='2240000000' ||deptcd =='2240200000'||deptcd =='2240400000'||deptcd =='2240500000' )
  504. { if(anual =='4')
  505. {
  506. cmb_anual.value ='3';
  507. }
  508. }
  509. ]]>
  510. </script>
  511. </select1>
  512. <input id="ipt_yy" ref="/root/send/req/educyy" class="input_s_essential" inputtype="date" format="yyyy" style="left:145px; top:9px; width:110px; height:19px; "/>
  513. <caption id="caption2" class="search_name" style="left:15px; top:35px; width:125px; height:17px; ">주지도교육병원 :</caption>
  514. <select1 id="cmb_mainguidhosp" ref="/root/send/req/mainguidhosp" class="combo_s_essential" appearance="minimal" style="left:145px; top:34px; width:110px; height:19px; ">
  515. <choices>
  516. <itemset>
  517. <label/>
  518. <value/>
  519. </itemset>
  520. </choices>
  521. </select1>
  522. <caption id="caption3" class="search_name" style="left:285px; top:35px; width:110px; height:17px; ">이 름 :</caption>
  523. <caption id="caption4" class="search_name" style="left:539px; top:36px; width:106px; height:17px; ">조회 년차 :</caption>
  524. <line id="line3" class="line_4" style="x1:1110px; y1:8px; x2:1110px; y2:51px; border-color:#ffe4bb; border-left-style:solid; "/>
  525. <select1 id="cmb_supinfqurtyyflag" ref="/root/send/req/supinfqurtyyflag" class="combo_s_essential" navindex="2" appearance="minimal" style="left:400px; top:9px; width:110px; height:19px; ">
  526. <choices>
  527. <itemset>
  528. <label/>
  529. <value/>
  530. </itemset>
  531. </choices>
  532. </select1>
  533. <input id="ipt_name" ref="/root/send/req/name" class="input_default" imemode="hangul" style="left:400px; top:34px; width:110px; height:19px; ">
  534. <script type="javascript" ev:event="onkeypress">
  535. <![CDATA[
  536. inputEnterKey("btn_search", "DOMActivate");
  537. ]]>
  538. </script>
  539. </input>
  540. <button id="btn_search" class="btn1_letter2" style="left:1125px; top:18px; width:56px; height:22px; ">
  541. <caption>조회</caption>
  542. <script type="javascript" ev:event="DOMActivate">
  543. <![CDATA[
  544. var updtdata = getGridUpdateData(grd_plan);
  545. if ( updtdata != "")
  546. {
  547. var ret = messageBox("그리드에 작업 중인 내용이 있습니다.","Q002");
  548. if (ret == 6) { // OK
  549. var savedata = grd_plan.getUpdateData();
  550. model.makeValue("/root/send/save", savedata);
  551. submit("TXRTS02201");
  552. }
  553. }
  554. // 필수 조회조건
  555. if ( !isRequiredControls("ipt_yy", "cmb_supinfqurtyyflag","cmb_anual","cmb_deptcd") ) {
  556. return false;
  557. }
  558. var a1 = parseInt(model.getValue("/root/send/req/anual"));
  559. var a2 = parseInt(model.getValue("/root/send/req/iptrefanual"));
  560. model.setValue("/root/send/req/refanual", a1+a2-1);
  561. // 그리드의 스타일을 초기화하고 코드입력창을 모두 숨긴다.
  562. grd_plan.rebuildStyle();
  563. grd_mdlist.visible = false;
  564. grd_instcd.visible = false;
  565. grd_educ.visible = false;
  566. grup_educyyanual.visible = false;
  567. /*if (model.getValue("/root/send/req/supinfqurtyyflag") != model.getValue("/root/temp/colviewflag"))
  568. {
  569. model.setValue("/root/temp/colviewflag", model.getValue("/root/send/req/supinfqurtyyflag"));
  570. //fChgGrdColPos();
  571. }*/
  572. // 레지던트 수련계획 조회
  573. var isRef = submit("TRRTS02201");
  574. //수련계획입력기관 설정
  575. setScheFromTo();
  576. if (! isRef)
  577. return;
  578. // 주지도병원, 이름, 근무상태는 전체이고 조회년차가 4일때 수련계획 생성 로직을 수행한다.
  579. var today = getCurrentDate();
  580. var cur_yy = parseInt(today.substring(0, 4));
  581. var cretflag = false;
  582. if (model.getValue("/root/send/req/educyy") == cur_yy &&
  583. model.getValue("/root/send/req/mainguidhosp") == "" &&
  584. model.getValue("/root/send/req/name") == "" &&
  585. model.getValue("/root/send/req/iptrefanual") == "4" &&
  586. model.getValue("/root/send/req/preststatcd") == "" )
  587. {
  588. cretflag = true;
  589. }
  590. // 조회된 결과가 없다면 최종수련계획으로 1년을 생성한다.
  591. // 1년차는 4년을 생성한다. 가정의학,보철,구강,교정은 3년 생성
  592. // tobe는 신규임용시 4년을 생성하나 asis데이터는 1년씩 생성하여 나머지 데이터가 존재하지 않음으로 해서 1년생성 로직이 필요함.
  593. if (cretflag && getNodesetCount("/root/main/reflist/resitrngpalnlist") == "0" && cmb_anual.value=='1')
  594. {
  595. if (submit("TXRTS02202"))
  596. {
  597. if (model.getValue("/root/main/tretinfo/tretcnt") == "0")
  598. {
  599. messageBox(model.getValue("/root/main/tretinfo/tretmsg"), "I", "");
  600. return;
  601. }
  602. else
  603. {
  604. isRef = submit("TRRTS02201");
  605. if (! isRef)
  606. return;
  607. }
  608. }
  609. else
  610. {
  611. return;
  612. }
  613. }
  614. // 조회가 이루어지면 화면 세팅을 한다.
  615. if (isRef)
  616. {
  617. model.copyNode("/root/temp/refedreq", "/root/send/req");
  618. // 가정의학과는 근무지를 변경 할 수 있으므로 근무지 선택시 조회한다.
  619. if (model.getValue("/root/send/req/deptcd") != "2230000000")
  620. {
  621. if (model.getValue("/root/send/reqeduc/deptcd") != model.getValue("/root/send/req/deptcd") ||
  622. model.getValue("/root/send/reqeduc/yy") != model.getValue("/root/send/req/educyy"))
  623. {
  624. model.setValue("/root/send/reqeduc/deptcd", model.getValue("/root/send/req/deptcd"));
  625. model.setValue("/root/send/reqeduc/yy", model.getValue("/root/send/req/educyy"));
  626. submit("TRRTS02203");
  627. }
  628. }
  629. // 내과의 분과코드를 조회한다.
  630. if (model.getValue("/root/send/req/deptcd") == "2010000000")
  631. {
  632. model.setValue("/root/send/reqmd/deptcd", "MD");
  633. submit("TRRTS02202");
  634. }
  635. // 가정의학과의 근무지는 모든 전공과로 가능하다.
  636. else
  637. {
  638. model.setValue("/root/send/reqmd/deptcd", "");
  639. submit("TRRTS02202");
  640. }
  641. // 다른과는 근무지와 전공과가 같으며 변경 될 수 없다.
  642. // 사원번호를 기준으로 alterante한다.
  643. var colr = "#eeffff";
  644. var colidx_emplno = grd_plan.colRef("emplno");
  645. var cur_emplno = "";
  646. var emplcnt = 0;
  647. for (var i=grd_plan.fixedRows; i<grd_plan.rows; i++)
  648. {
  649. if (cur_emplno != grd_plan.valueMatrix(i, colidx_emplno))
  650. {
  651. emplcnt++;
  652. cur_emplno = grd_plan.valueMatrix(i, colidx_emplno);
  653. if (colr == "") {
  654. colr = "#eeffff";
  655. } else {
  656. colr = "";
  657. }
  658. }
  659. if (colr != "")
  660. grd_plan.rowStyle(i, "all", "background-color") = colr;
  661. }
  662. grd_plan.refresh();
  663. // 조회된 인원수 표시
  664. model.setValue("/root/temp/emplcnt", emplcnt);
  665. opt_emplcnt.refresh();
  666. // 수련계획 추가,삭제는 수련교육실무자만 한다.
  667. // 최종의 수련계획을 통해 6개월을 추가,삭제 하기 때문에 확인을 위해서는 조회년차를 필히 4년으로 하여 작업하게 한다.
  668. if (gMastUser && model.getValue("/root/send/req/iptrefanual") == "4")
  669. {
  670. btn_grdadd.disabled = false;
  671. btn_grddel.disabled = false;
  672. }
  673. else
  674. {
  675. btn_grdadd.disabled = true;
  676. btn_grddel.disabled = true;
  677. }
  678. }
  679. ]]>
  680. </script>
  681. </button>
  682. <button id="btn_grdadd" class="btn5_letter7" style="left:881px; top:65px; width:97px; height:19px; ">
  683. <caption>수련계획 추가</caption>
  684. <script type="javascript" ev:event="DOMActivate">
  685. <![CDATA[
  686. fDoAddOrDel("TXRTS02203");
  687. ]]>
  688. </script>
  689. </button>
  690. <select1 id="cmb_refanual" ref="/root/send/req/iptrefanual" class="combo_s_essential" appearance="minimal" style="left:642px; top:35px; width:100px; height:19px; ">
  691. <choices>
  692. <item>
  693. <label>1</label>
  694. <value>1</value>
  695. </item>
  696. <item>
  697. <label>2</label>
  698. <value>2</value>
  699. </item>
  700. <item>
  701. <label>3</label>
  702. <value>3</value>
  703. </item>
  704. <item>
  705. <label>4</label>
  706. <value>4</value>
  707. </item>
  708. </choices>
  709. </select1>
  710. <select1 id="cmb_preststatcd" ref="/root/send/req/preststatcd" class="combo_s_essential" visibility="hidden" appearance="minimal" style="left:863px; top:35px; width:100px; height:19px; ">
  711. <choices>
  712. <itemset nodeset="/root/main/codelist/deptlist">
  713. <label ref="passsbjnm"/>
  714. <value ref="passsbjcd"/>
  715. </itemset>
  716. </choices>
  717. </select1>
  718. <caption id="caption5" class="search_name" visibility="hidden" style="left:770px; top:35px; width:109px; height:17px; ">근무상태 :</caption>
  719. <output id="output1" ref="/root/temp/cellinfo/flag" visibility="hidden" style="left:152px; top:65px; width:53px; height:19px; "/>
  720. <output id="output2" ref="/root/temp/cellinfo/ref" visibility="hidden" style="left:200px; top:65px; width:53px; height:19px; "/>
  721. <output id="output3" ref="/root/temp/cellinfo/mm" visibility="hidden" style="left:227px; top:65px; width:53px; height:19px; "/>
  722. <output id="output4" ref="/root/temp/cellinfo/nextref" visibility="hidden" style="left:282px; top:65px; width:53px; height:19px; "/>
  723. <caption id="caption7" style="left:10px; top:65px; width:100px; height:20px; ">조회된 인원수 :</caption>
  724. <output id="opt_emplcnt" ref="/root/temp/emplcnt" style="left:100px; top:65px; width:50px; height:19px; text-align:left; "/>
  725. <button id="btn_grddel" class="btn5_letter7" style="left:981px; top:65px; width:97px; height:19px; ">
  726. <caption>수련계획 삭제</caption>
  727. <script type="javascript" ev:event="DOMActivate">
  728. <![CDATA[
  729. fDoAddOrDel("TXRTS02204");
  730. ]]>
  731. </script>
  732. </button>
  733. <input id="ipt_guidmedispclinstnm" ref="/root/temp/guid/guidmedispclinstnm" class="input_search" navindex="2" visibility="hidden" style="left:1010px; top:15px; width:20px; height:19px; "/>
  734. <input id="ipt_guidmedispclinstcd" ref="/root/temp/guid/guidmedispclinstcd" class="input_search" navindex="2" visibility="hidden" style="left:985px; top:15px; width:20px; height:19px; "/>
  735. <input id="ipt_guidmedispcldremplno" ref="/root/temp/guid/guidmedispcldremplno" class="input_search" navindex="2" visibility="hidden" style="left:1060px; top:15px; width:55px; height:19px; "/>
  736. <input id="ipt_guidmedispcldremplnm" ref="/root/temp/guid/guidmedispcldremplnm" class="input_search" navindex="2" visibility="hidden" style="left:1035px; top:15px; width:20px; height:19px; "/>
  737. <output id="oup_scheflag" ref="/root/temp/scheflag" style="left:294px; top:65px; width:455px; height:19px; font-weight:bold; color:#0000ff; "/>
  738. <button id="btn_adduninputplan" class="btn5_letter10" style="left:749px; top:65px; width:130px; height:19px; ">
  739. <caption>수련계획미입력자 추가</caption>
  740. <script type="javascript" ev:event="DOMActivate">
  741. <![CDATA[
  742. model.setValue("/root/send/prnseq/yy", model.getValue("/root/send/req/educyy"));
  743. model.setValue("/root/send/prnseq/supinfqurtyyflag", model.getValue("/root/send/req/supinfqurtyyflag"));
  744. var retMes = messageBox("수련계획 미입력자를 추가하시겠습니까?", "Q999");
  745. if (retMes == 6) {
  746. if (submit("TXRTS02205")) {
  747. if (model.getValue("/root/main/tretinfo/tretcnt") == "0") {
  748. messageBox(model.getValue("/root/main/tretinfo/tretmsg"), "I", "");
  749. return;
  750. } else {
  751. btn_search.dispatch("DOMActivate");
  752. }
  753. }
  754. }
  755. ]]>
  756. </script>
  757. </button>
  758. </group>
  759. <line id="line19" class="line_1" style="x1:0px; y1:95px; x2:1195px; y2:95px; "/>
  760. <button id="button1" class="btn2_letter4" style="left:1085px; top:75px; width:64px; height:19px; ">
  761. <caption>엑셀저장</caption>
  762. <script type="javascript" ev:event="DOMActivate">
  763. <![CDATA[
  764. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  765. if (fileName != "") {;
  766. grd_plan.saveExcel(fileName, "exporttype:multi");
  767. }
  768. ]]>
  769. </script>
  770. </button>
  771. <multilinegrid id="grd_plan" nodeset="/root/main/reflist/resitrngpalnlist" caption="근무년도^성명^전공과^지도교수^구분^1월^1월^2월^2월^3월^3월^4월^4월^5월^5월^6월^6월^7월^7월^8월^8월^9월^9월^10월^10월^11월^11월^12월^12월|근무년도^성명^군보^지도교수^구분^1월^1월^2월^2월^3월^3월^4월^4월^5월^5월^6월^6월^7월^7월^8월^8월^9월^9월^10월^10월^11월^11월^12월^12월|근무년도^사원번호^군보^근무병원^구분^1월^1월^2월^2월^3월^3월^4월^4월^5월^5월^6월^6월^7월^7월^8월^8월^9월^9월^10월^10월^11월^11월^12월^12월|근무년도^사원번호^주교육병원^근무병원^구분^1월^1월^2월^2월^3월^3월^4월^4월^5월^5월^6월^6월^7월^7월^8월^8월^9월^9월^10월^10월^11월^11월^12월^12월" colsep="^" colwidth="40, 60, 70, 70, 72, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35" focuscolor="transparent" rowsep="|" mergecellsfixedrows="bycolrec" style="left:0px; top:100px; width:1195px; height:644px; ">
  772. <row>
  773. <col ref="yy" rowspan="4" tyle="text-align:center;"/>
  774. <col ref="name" rowspan="2" style="text-align:center; "/>
  775. <col ref="posdeptnm" style="text-align:center; "/>
  776. <col ref="guidmedispcldremplnm" rowspan="2" style="text-align:center; "/>
  777. <col ref="instmmtt" style="text-align:center; "/>
  778. <col colspan="2" ref="instmm01" style="text-align:center; "/>
  779. <col colspan="2" ref="instmm02" style="text-align:center; "/>
  780. <col colspan="2" ref="instmm03" style="text-align:center; "/>
  781. <col colspan="2" ref="instmm04" style="text-align:center; "/>
  782. <col colspan="2" ref="instmm05" style="text-align:center; "/>
  783. <col colspan="2" ref="instmm06" style="text-align:center; "/>
  784. <col colspan="2" ref="instmm07" style="text-align:center; "/>
  785. <col colspan="2" ref="instmm08" style="text-align:center; "/>
  786. <col colspan="2" ref="instmm09" style="text-align:center; "/>
  787. <col colspan="2" ref="instmm10" style="text-align:center; "/>
  788. <col colspan="2" ref="instmm11" style="text-align:center; "/>
  789. <col colspan="2" ref="instmm12" style="text-align:center; "/>
  790. <col ref="statusmm01" rowspan="4" visibility="hidden" style="text-align:center; "/>
  791. <col ref="statusmm02" rowspan="4" visibility="hidden" style="text-align:center; "/>
  792. <col ref="statusmm03" rowspan="4" visibility="hidden" style="text-align:center; "/>
  793. <col ref="statusmm04" rowspan="4" visibility="hidden" style="text-align:center; "/>
  794. <col ref="statusmm05" rowspan="4" visibility="hidden" style="text-align:center; "/>
  795. <col ref="statusmm06" rowspan="4" visibility="hidden" style="text-align:center; "/>
  796. <col ref="statusmm07" rowspan="4" visibility="hidden" style="text-align:center; "/>
  797. <col ref="statusmm08" rowspan="4" visibility="hidden" style="text-align:center; "/>
  798. <col ref="statusmm09" rowspan="4" visibility="hidden" style="text-align:center; "/>
  799. <col ref="statusmm10" rowspan="4" visibility="hidden" style="text-align:center; "/>
  800. <col ref="statusmm11" rowspan="4" visibility="hidden" style="text-align:center; "/>
  801. <col ref="statusmm12" rowspan="4" visibility="hidden" style="text-align:center; "/>
  802. <col ref="statusmmmg" rowspan="4" visibility="hidden" style="text-align:center; "/>
  803. <col ref="posdeptcd" rowspan="4" visibility="hidden" style="text-align:center; "/>
  804. <col ref="rregno" rowspan="4" visibility="hidden" style="text-align:center; "/>
  805. <col ref="apprtcdrflag" rowspan="4" visibility="hidden" style="text-align:center; "/>
  806. <col ref="guidmedispcldremplno" rowspan="4" visibility="hidden" style="text-align:center; "/>
  807. <col ref="guidmedispclinstcd" rowspan="4" visibility="hidden" style="text-align:center; "/>
  808. <col ref="statusguid" rowspan="4" visibility="hidden" style="text-align:center; "/>
  809. </row>
  810. <row>
  811. <col ref="armyflag" rowspan="2" style="text-align:center; "/>
  812. <col ref="deptmmtt" style="text-align:center; "/>
  813. <col colspan="2" ref="deptmm01" style="text-align:center; "/>
  814. <col colspan="2" ref="deptmm02" style="text-align:center; "/>
  815. <col colspan="2" ref="deptmm03" style="text-align:center; "/>
  816. <col colspan="2" ref="deptmm04" style="text-align:center; "/>
  817. <col colspan="2" ref="deptmm05" style="text-align:center; "/>
  818. <col colspan="2" ref="deptmm06" style="text-align:center; "/>
  819. <col colspan="2" ref="deptmm07" style="text-align:center; "/>
  820. <col colspan="2" ref="deptmm08" style="text-align:center; "/>
  821. <col colspan="2" ref="deptmm09" style="text-align:center; "/>
  822. <col colspan="2" ref="deptmm10" style="text-align:center; "/>
  823. <col colspan="2" ref="deptmm11" style="text-align:center; "/>
  824. <col colspan="2" ref="deptmm12" style="text-align:center; "/>
  825. </row>
  826. <row>
  827. <col ref="emplno" rowspan="2" style="text-align:center; "/>
  828. <col ref="guidmedispclinstnm" rowspan="2" style="text-align:center; "/>
  829. <col ref="educmmtt" style="text-align:center; "/>
  830. <col colspan="2" ref="educmm01" style="text-align:center; "/>
  831. <col colspan="2" ref="educmm02" style="text-align:center; "/>
  832. <col colspan="2" ref="educmm03" style="text-align:center; "/>
  833. <col colspan="2" ref="educmm04" style="text-align:center; "/>
  834. <col colspan="2" ref="educmm05" style="text-align:center; "/>
  835. <col colspan="2" ref="educmm06" style="text-align:center; "/>
  836. <col colspan="2" ref="educmm07" style="text-align:center; "/>
  837. <col colspan="2" ref="educmm08" style="text-align:center; "/>
  838. <col colspan="2" ref="educmm09" style="text-align:center; "/>
  839. <col colspan="2" ref="educmm10" style="text-align:center; "/>
  840. <col colspan="2" ref="educmm11" style="text-align:center; "/>
  841. <col colspan="2" ref="educmm12" style="text-align:center; "/>
  842. </row>
  843. <row>
  844. <col ref="mainguidhospnm" style="text-align:center; "/>
  845. <col ref="yyanualtt" style="text-align:center; "/>
  846. <col ref="educyymm01" style="text-align:center; "/>
  847. <col ref="anualmm01" style="text-align:center; "/>
  848. <col ref="educyymm02" style="text-align:center; "/>
  849. <col ref="anualmm02" style="text-align:center; "/>
  850. <col ref="educyymm03" style="text-align:center; "/>
  851. <col ref="anualmm03" style="text-align:center; "/>
  852. <col ref="educyymm04" style="text-align:center; "/>
  853. <col ref="anualmm04" style="text-align:center; "/>
  854. <col ref="educyymm05" style="text-align:center; "/>
  855. <col ref="anualmm05" style="text-align:center; "/>
  856. <col ref="educyymm06" style="text-align:center; "/>
  857. <col ref="anualmm06" style="text-align:center; "/>
  858. <col ref="educyymm07" style="text-align:center; "/>
  859. <col ref="anualmm07" style="text-align:center; "/>
  860. <col ref="educyymm08" style="text-align:center; "/>
  861. <col ref="anualmm08" style="text-align:center; "/>
  862. <col ref="educyymm09" style="text-align:center; "/>
  863. <col ref="anualmm09" style="text-align:center; "/>
  864. <col ref="educyymm10" style="text-align:center; "/>
  865. <col ref="anualmm10" style="text-align:center; "/>
  866. <col ref="educyymm11" style="text-align:center; "/>
  867. <col ref="anualmm11" style="text-align:center; "/>
  868. <col ref="educyymm12" style="text-align:center; "/>
  869. <col ref="anualmm12" style="text-align:center; "/>
  870. </row>
  871. <script type="javascript" ev:event="onclick">
  872. <![CDATA[
  873. if( grd_plan.isCell(event.target) && grd_plan.row >= grd_plan.fixedRows )
  874. {
  875. if (grd_plan.colRef("guidmedispcldremplnm") == grd_plan.col)
  876. {
  877. var par_row = grd_plan.row;
  878. var recv_list = "guidmedispclinstcd,guidmedispclinstnm,guidmedispcldremplnm,guidmedispcldremplno";
  879. misfOpenPopUpList("35", ipt_guidmedispcldremplno,"",recv_list);
  880. var dremplno = ipt_guidmedispcldremplno.value;
  881. var drname = ipt_guidmedispcldremplnm.value;
  882. var guidmedispclinstcd = ipt_guidmedispclinstcd.value;
  883. var guidmedispclinstnm = ipt_guidmedispclinstnm.value;
  884. if(dremplno == null || dremplno == "")
  885. {
  886. return;
  887. }
  888. else
  889. {
  890. var colref = grd_plan.colRef("emplno");
  891. var emplno = grd_plan.valueMatrix(par_row, colref);
  892. grd_plan.addStatus(par_row,"update");
  893. grd_plan.valueMatrix(par_row, grd_plan.colRef("statusguid")) = "u";
  894. for(i=grd_plan.fixedRows; i < grd_plan.rows ; i++)
  895. {
  896. if (emplno == grd_plan.valueMatrix(i, colref))
  897. {
  898. grd_plan.valueMatrix(i, grd_plan.colRef("guidmedispcldremplno")) = dremplno;
  899. grd_plan.valueMatrix(i, grd_plan.colRef("guidmedispcldremplnm")) = drname;
  900. grd_plan.valueMatrix(i, grd_plan.colRef("guidmedispclinstcd")) = guidmedispclinstcd;
  901. grd_plan.valueMatrix(i, grd_plan.colRef("guidmedispclinstnm")) = guidmedispclinstnm;
  902. }
  903. }
  904. grd_plan.refresh();
  905. }
  906. }
  907. else
  908. {
  909. var cellinfo = fIsMonthCell(grd_plan.col);
  910. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  911. if (cellinfo != null)
  912. {
  913. var xpos = event.clientX + parseInt(grd_plan.attribute("left"));
  914. var ypos = event.clientY;
  915. if (cellinfo.flag == "inst")
  916. {
  917. if (grd_instcd.attribute("visibility") == "hidden")
  918. {
  919. grd_instcd.attribute("left") = xpos - ( parseInt(grd_instcd.attribute("width")) / 2 );
  920. grd_instcd.attribute("top") = ypos;
  921. }
  922. grd_instcd.attribute("visibility") = "visible";
  923. grd_mdlist.attribute("visibility") = "hidden";
  924. grd_educ.attribute("visibility") = "hidden";
  925. grup_educyyanual.attribute("visibility") = "hidden";
  926. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  927. grd_plan.cellstyle("background-color", grd_plan.row, grd_plan.col) = "#FFF000";
  928. }
  929. else if (cellinfo.flag == "dept")
  930. {
  931. //내과일때는 세부분과, 가정의학과는 다른 모든과를 지정할 수 있다..
  932. /*if (model.getValue("/root/temp/refedreq/deptcd") == "2010000000" ||
  933. model.getValue("/root/temp/refedreq/deptcd") == "2230000000")
  934. {*/
  935. if (grd_mdlist.attribute("visibility") == "hidden")
  936. {
  937. grd_mdlist.attribute("left") = xpos - ( parseInt(grd_mdlist.attribute("width")) / 2 );
  938. grd_mdlist.attribute("top") = ypos;
  939. }
  940. grd_mdlist.attribute("visibility") = "visible";
  941. grd_instcd.attribute("visibility") = "hidden";
  942. grd_educ.attribute("visibility") = "hidden";
  943. grup_educyyanual.attribute("visibility") = "hidden";
  944. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  945. grd_plan.cellstyle("background-color", grd_plan.row, grd_plan.col) = "#FFF000";
  946. //}
  947. }
  948. else if (cellinfo.flag == "educ")
  949. {
  950. if (fSetEducList(grd_plan.row, cellinfo.mm))
  951. {
  952. if (grd_educ.attribute("visibility") == "hidden")
  953. {
  954. grd_educ.attribute("left") = xpos - ( parseInt(grd_educ.attribute("width")) / 2 );
  955. grd_educ.attribute("top") = ypos ;
  956. }
  957. grd_educ.attribute("visibility") = "visible";
  958. grd_instcd.attribute("visibility") = "hidden";
  959. grd_mdlist.attribute("visibility") = "hidden";
  960. grup_educyyanual.attribute("visibility") = "hidden";
  961. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  962. grd_plan.cellstyle("background-color", grd_plan.row, grd_plan.col) = "#FFF000";
  963. model.setFocus("grd_educ");
  964. }
  965. }
  966. else if (cellinfo.flag == "anual")
  967. {
  968. if (grup_educyyanual.attribute("visibility") == "hidden")
  969. {
  970. grup_educyyanual.attribute("left") = xpos - ( parseInt(grup_educyyanual.attribute("width")) / 2 );
  971. grup_educyyanual.attribute("top") = ypos;
  972. }
  973. grup_educyyanual.visible = true;
  974. grd_educ.attribute("visibility") = "hidden";
  975. grd_instcd.attribute("visibility") = "hidden";
  976. grd_mdlist.attribute("visibility") = "hidden";
  977. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  978. grd_plan.cellstyle("background-color", grd_plan.row, grd_plan.col) = "#FFF000";
  979. }
  980. }
  981. }
  982. }
  983. ]]>
  984. </script>
  985. </multilinegrid>
  986. <datagrid id="grd_mdlist" nodeset="/root/main/mdlist/getmddeptlist" visibility="hidden" caption="파견과 [닫기]^파견과 [닫기]" colsep="^" colwidth="50, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:90px; top:225px; width:156px; height:236px; border-width:3px; ">
  987. <col ref="deptcd" style="text-align:center; "/>
  988. <col ref="deptnm" style="text-align:center; "/>
  989. <script type="javascript" ev:event="ondblclick">
  990. <![CDATA[
  991. if( grd_mdlist.isCell(event.target))
  992. {
  993. if (grd_mdlist.row <= grd_mdlist.fixedRows-1)
  994. {
  995. grd_mdlist.attribute("visibility") = "hidden";
  996. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  997. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  998. }
  999. else
  1000. {
  1001. var cellinfo = fIsMonthCell(grd_plan.col);
  1002. if (cellinfo != null)
  1003. {
  1004. var rowidx = grd_plan.row;
  1005. //grd_plan.valueMatrix(grd_plan.row, grd_plan.col) = grd_mdlist.valueMatrix(grd_mdlist.row, grd_mdlist.colRef("deptcd"));
  1006. fSetPlanValue(grd_plan.colRef("deptmm"+fGetMMfromRef(cellinfo.ref)), grd_mdlist.valueMatrix(grd_mdlist.row, grd_mdlist.colRef("deptcd")));
  1007. grd_plan.row = rowidx;
  1008. grd_plan.col = grd_plan.colRef(cellinfo.nextref);
  1009. grd_plan.dispatch("onmouseup");
  1010. var cellcolor= grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref));
  1011. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)-1)=cellcolor;
  1012. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)) = "#FFF000";
  1013. if(grd_plan.col== 38){
  1014. grd_mdlist.attribute("visibility") = "hidden";
  1015. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1016. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1017. }
  1018. }
  1019. }
  1020. }
  1021. ]]>
  1022. </script>
  1023. <script type="javascript" ev:event="onmousedown">
  1024. <![CDATA[
  1025. fSetDiffPos(grd_mdlist);
  1026. ]]>
  1027. </script>
  1028. <script type="javascript" ev:event="onmousemove">
  1029. <![CDATA[
  1030. fMoveGrd(grd_mdlist);
  1031. ]]>
  1032. </script>
  1033. </datagrid>
  1034. <datagrid id="grd_instcd" visibility="hidden" caption="기관 [닫기]^기관 [닫기]" colsep="^" colwidth="50, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:110px; top:275px; width:156px; height:328px; border-width:3px; ">
  1035. <col ref="cdnm" style="text-align:center; "/>
  1036. <col ref="detldesc" style="text-align:center; "/>
  1037. <script type="javascript" ev:event="ondblclick">
  1038. <![CDATA[
  1039. if( grd_instcd.isCell(event.target))
  1040. {
  1041. if (grd_instcd.row <= grd_instcd.fixedRows-1)
  1042. {
  1043. grd_instcd.attribute("visibility") = "hidden";
  1044. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1045. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1046. }
  1047. else
  1048. {
  1049. var cellinfo = fIsMonthCell(grd_plan.col);
  1050. if (cellinfo != null)
  1051. {
  1052. var rowidx = grd_plan.row;
  1053. //grd_plan.valueMatrix(grd_plan.row, grd_plan.col) = grd_instcd.valueMatrix(grd_instcd.row, grd_instcd.colRef("cdnm"));
  1054. fSetPlanValue(grd_plan.colRef("instmm"+fGetMMfromRef(cellinfo.ref)), grd_instcd.valueMatrix(grd_instcd.row, grd_instcd.colRef("cdnm")));
  1055. grd_plan.row = rowidx;
  1056. grd_plan.col = grd_plan.colRef(cellinfo.nextref);
  1057. grd_plan.dispatch("onmouseup");
  1058. var cellcolor= grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref));
  1059. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)-1)=cellcolor;
  1060. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)) = "#FFF000";
  1061. if(grd_plan.col== 5){
  1062. grd_instcd.attribute("visibility") = "hidden";
  1063. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1064. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1065. }
  1066. }
  1067. }
  1068. }
  1069. ]]>
  1070. </script>
  1071. <script type="javascript" ev:event="onmousedown">
  1072. <![CDATA[
  1073. fSetDiffPos(grd_instcd);
  1074. ]]>
  1075. </script>
  1076. <script type="javascript" ev:event="onmousemove">
  1077. <![CDATA[
  1078. fMoveGrd(grd_instcd);
  1079. ]]>
  1080. </script>
  1081. </datagrid>
  1082. <datagrid id="grd_educ" nodeset="/root/main/educ/educcdlist" visibility="hidden" caption="기관^년차^교육 [닫기]^교육 [닫기]" colsep="^" colwidth="30, 30, 50, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:130px; top:325px; width:216px; height:328px; border-width:3px; ">
  1083. <col ref="instcd" style="text-align:center; "/>
  1084. <col ref="anual" style="text-align:center; "/>
  1085. <col ref="educcd" style="text-align:center; "/>
  1086. <col ref="educnm" style="text-align:center; "/>
  1087. <col ref="deptcd" visibility="hidden" style="text-align:center; "/>
  1088. <script type="javascript" ev:event="ondblclick">
  1089. <![CDATA[
  1090. if( grd_educ.isCell(event.target))
  1091. {
  1092. if (grd_educ.row <= grd_educ.fixedRows-1)
  1093. {
  1094. grd_educ.attribute("visibility") = "hidden";
  1095. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1096. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1097. }
  1098. else
  1099. {
  1100. var cellinfo = fIsMonthCell(grd_plan.col);
  1101. if (cellinfo != null)
  1102. {
  1103. if (grd_plan.valueMatrix(grd_plan.row, grd_plan.colRef("instmm"+ cellinfo.mm)) == "")
  1104. {
  1105. messageBox(cellinfo.mm + " 월의 기관이 입력되지 않았습니다.", "I", "");
  1106. return;
  1107. }
  1108. var rowidx = grd_plan.row;
  1109. //grd_plan.valueMatrix(grd_plan.row, grd_plan.col) = grd_educ.valueMatrix(grd_educ.row, grd_educ.colRef("educcd"));
  1110. var educcd = grd_educ.valueMatrix(grd_educ.row, grd_educ.colRef("educcd"));
  1111. var instcd = grd_educ.valueMatrix(grd_educ.row, grd_educ.colRef("instcd"));
  1112. var deptcd = grd_educ.valueMatrix(grd_educ.row, grd_educ.colRef("deptcd"));
  1113. var anual = grd_educ.valueMatrix(grd_educ.row, grd_educ.colRef("anual"));
  1114. fSetPlanValue(grd_plan.colRef("educmm"+fGetMMfromRef(cellinfo.ref)), educcd);
  1115. grd_plan.row = rowidx;
  1116. grd_plan.col = grd_plan.colRef(cellinfo.nextref);
  1117. grd_plan.dispatch("onmouseup");
  1118. var cellcolor= grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref));
  1119. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)-1)=cellcolor;
  1120. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)) = "#FFF000";
  1121. if(grd_plan.col== 53){
  1122. grd_educ.attribute("visibility") = "hidden";
  1123. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1124. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1125. }
  1126. fSetEducList(rowidx, fGetMMfromRef(cellinfo.nextref));
  1127. }
  1128. }
  1129. }
  1130. ]]>
  1131. </script>
  1132. <script type="javascript" ev:event="onmousedown">
  1133. <![CDATA[
  1134. fSetDiffPos(grd_educ);
  1135. ]]>
  1136. </script>
  1137. <script type="javascript" ev:event="onmousemove">
  1138. <![CDATA[
  1139. fMoveGrd(grd_educ);
  1140. ]]>
  1141. </script>
  1142. <script type="javascript" ev:event="onmouseout">
  1143. <![CDATA[
  1144. return;
  1145. //if( grd_educ.isCell(event.target))
  1146. if( event.target != "grd_educ")
  1147. return;
  1148. //alert("currentTarget : "+event.currentTarget+" / down : "+event.down+" / drag : "+event.drag+" / hover : "+event.hover+" / target : "+event.target+" / focus : "+event.focus);
  1149. var ctrl = document.controls(event.target);
  1150. var xfr = event.targetX + parseInt(ctrl.attribute("left"));
  1151. var yfr = event.targetX + parseInt(ctrl.attribute("top"));
  1152. var xto = xfr + parseInt(ctrl.attribute("witdh"));
  1153. var yto = yfr + parseInt(ctrl.attribute("height"));
  1154. if ( (xfr <= event.targetX && event.targetX <= xto) && (yfr <= event.targetY && event.targetY <= yto) )
  1155. {
  1156. }
  1157. else
  1158. {
  1159. grd_educ.attribute("visibility") = "hidden";
  1160. }
  1161. ]]>
  1162. </script>
  1163. <script type="javascript" ev:event="onmouseover">
  1164. <![CDATA[
  1165. //grd_educ.attribute("visibility") = "hidden";
  1166. ]]>
  1167. </script>
  1168. </datagrid>
  1169. <group id="grup_educyyanual" visibility="hidden" style="left:155px; top:340px; width:180px; height:95px; border-color:#c0c0c0; border-width:3px; border-style:solid; ">
  1170. <caption id="caption13" class="cell_1" style="left:5px; top:5px; width:165px; height:23px; vertical-align:middle; ">교육년도</caption>
  1171. <input id="input3" ref="/root/temp/updtyyanual/educyy" class="input_search" format="yyyy" validateformat="true" style="left:93px; top:7px; width:70px; height:19px; "/>
  1172. <caption id="caption1" class="cell_1" style="left:5px; top:30px; width:165px; height:23px; vertical-align:middle; ">년차</caption>
  1173. <button id="button2" class="btn2_letter2" style="left:82px; top:62px; width:42px; height:19px; ">
  1174. <caption>입력</caption>
  1175. <script type="javascript" ev:event="DOMActivate">
  1176. <![CDATA[
  1177. var cellinfo = fIsMonthCell(grd_plan.col);
  1178. if (!gMastUser){
  1179. messageBox("년도/연차 입력 ","E002");
  1180. btn_planclose.dispatch("DOMActivate");
  1181. return;
  1182. }
  1183. if (cellinfo != null)
  1184. {
  1185. var rowidx = grd_plan.row;
  1186. var educyy = model.getValue("/root/temp/updtyyanual/educyy");
  1187. var anual = model.getValue("/root/temp/updtyyanual/anual");
  1188. if (educyy != "")
  1189. {
  1190. fSetPlanValue(grd_plan.colRef("educyymm"+fGetMMfromRef(cellinfo.ref)), educyy);
  1191. }
  1192. if (anual != "")
  1193. {
  1194. fSetPlanValue(grd_plan.colRef("anualmm"+fGetMMfromRef(cellinfo.ref)), anual);
  1195. }
  1196. grd_plan.row = rowidx;
  1197. grd_plan.col = grd_plan.colRef(cellinfo.nextref);
  1198. grd_plan.dispatch("onmouseup");
  1199. var cellcolor= grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref));
  1200. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)-1)=cellcolor;
  1201. grd_plan.cellstyle("background-color", rowidx, grd_plan.colRef(cellinfo.nextref)) = "#FFF000";
  1202. if(grd_plan.colRef(cellinfo.nextref)== 67){
  1203. btn_planclose.dispatch("DOMActivate");
  1204. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1205. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1206. }
  1207. }
  1208. ]]>
  1209. </script>
  1210. </button>
  1211. <button id="btn_planclose" class="btn2_letter2" style="left:127px; top:62px; width:42px; height:19px; ">
  1212. <caption>닫기</caption>
  1213. <script type="javascript" ev:event="DOMActivate">
  1214. <![CDATA[
  1215. var cellcolorbase = grd_plan.cellstyle("background-color", grd_plan.row, 3);
  1216. grd_plan.rowStyle(grd_plan.row, "all", "background-color") = cellcolorbase;
  1217. grup_educyyanual.visible = false;
  1218. ]]>
  1219. </script>
  1220. </button>
  1221. <select1 id="combo1" ref="/root/temp/updtyyanual/anual" class="combo_s_essential" appearance="minimal" style="left:93px; top:32px; width:70px; height:19px; ">
  1222. <choices>
  1223. <itemset>
  1224. <label/>
  1225. <value/>
  1226. </itemset>
  1227. </choices>
  1228. </select1>
  1229. <script type="javascript" ev:event="onmousedown">
  1230. <![CDATA[
  1231. fSetDiffPos(grup_educyyanual);
  1232. ]]>
  1233. </script>
  1234. <script type="javascript" ev:event="onmousemove">
  1235. <![CDATA[
  1236. fMoveGrd(grup_educyyanual);
  1237. ]]>
  1238. </script>
  1239. </group>
  1240. <button id="button3" class="btn2_letter2" style="left:1150px; top:75px; width:42px; height:19px; ">
  1241. <caption>출력</caption>
  1242. <script type="javascript" ev:event="DOMActivate">
  1243. <![CDATA[
  1244. // 필수 조회조건
  1245. if ( !isRequiredControls("ipt_yy", "cmb_supinfqurtyyflag","cmb_anual","cmb_deptcd") ) {
  1246. return false;
  1247. }
  1248. model.setValue("/root/send/prnseq/yy",ipt_yy.value);
  1249. model.setValue("/root/send/prnseq/supinfqurtyyflag",cmb_supinfqurtyyflag.value);
  1250. model.setValue("/root/send/prnseq/deptcd",cmb_deptcd.value);
  1251. model.setValue("/root/send/prnseq/anual",cmb_anual.value);
  1252. model.setValue("/root/send/prnseq/apprtcdrflag", "R");
  1253. model.setValue("/root/send/prnseq/deptnm", cmb_deptcd.label);
  1254. submit("TRRTS00301");
  1255. exeReportPreview("RPRTP00306","XMLSTR");
  1256. ]]>
  1257. </script>
  1258. </button>
  1259. </group>
  1260. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  1261. <line id="line11" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  1262. <button id="btn_save" class="btn4_letter2" style="left:1124px; top:3px; width:56px; height:22px; ">
  1263. <caption>저장</caption>
  1264. <script type="javascript" ev:event="DOMActivate">
  1265. <![CDATA[
  1266. var retMes = messageBox("저장 하시겠습니까?", "Q999");
  1267. if ( retMes != 6) {
  1268. return;
  1269. }
  1270. // 각 월별로 status가 있어서 1개의 월만 수정했다고 해서 12개를 업데이트 하지 않는다.
  1271. // 일단 ui에서는 한개의 row를 서버로 보내게 되고 app단의 로직에서 status를 검사한다.
  1272. var savedata = grd_plan.getUpdateData();
  1273. model.makeValue("/root/send/save", savedata);
  1274. if(submit("TXRTS02201"))
  1275. {
  1276. grd_plan.clearStatus();
  1277. btn_search.dispatch("DOMActivate");
  1278. }
  1279. ]]>
  1280. </script>
  1281. </button>
  1282. <button id="button16" class="btn5_letter8" visibility="hidden" style="left:685px; top:5px; width:108px; height:19px; ">
  1283. <caption>Excel자료Load</caption>
  1284. <script type="javascript" ev:event="DOMActivate">
  1285. <![CDATA[
  1286. var fileName = window.fileDialog("open", "", false);
  1287. grd_plan.loadExcel(fileName);
  1288. for (i=grd_plan.fixedRows; i<grd_plan.rows; i++)
  1289. {
  1290. grd_plan.rowStatus(i) = 1;
  1291. }
  1292. ]]>
  1293. </script>
  1294. </button>
  1295. <select1 id="cmb_instcd" visibility="hidden" appearance="minimal" style="left:525px; top:5px; width:100px; height:20px; ">
  1296. <choices>
  1297. <itemset>
  1298. <label/>
  1299. <value/>
  1300. </itemset>
  1301. </choices>
  1302. </select1>
  1303. </group>
  1304. </xhtml:body>
  1305. </xhtml:html>