SMRTS01200_당직스케줄관리.xrw 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622
  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. <tisorddeptcdlist/>
  11. <schengdtdata>
  12. <ngdtschengdtcdlist/>
  13. <emplngdtschelist/>
  14. <trngngdtschelist/>
  15. </schengdtdata>
  16. <scheterm>
  17. <schetermlist/>
  18. <ngdtymlastdaylist/>
  19. <deptcdemplnolist/>
  20. <baseddlist/>
  21. <nextschetermlist/>
  22. </scheterm>
  23. <deptchf>
  24. <emplno/>
  25. <emplnm/>
  26. <phonno/>
  27. </deptchf>
  28. <nextchf>
  29. <emplno/>
  30. <emplnm/>
  31. <phonno/>
  32. <cnfmyn/>
  33. </nextchf>
  34. <humnatr>
  35. <humnatrlist/>
  36. <dutschelist/>
  37. </humnatr>
  38. </main>
  39. <temp>
  40. </temp>
  41. <init/>
  42. <send>
  43. <schengdtdata>
  44. <ngdtym/>
  45. <instcd/>
  46. <deptcd/>
  47. <apprtcdrflag/>
  48. <emplno/>
  49. <emplnm/>
  50. </schengdtdata>
  51. <save>
  52. <trngngdtschelist/>
  53. </save>
  54. <systemflag>T</systemflag>
  55. <humnatr>
  56. <ngdtym/>
  57. <emplno/>
  58. </humnatr>
  59. <trngcnfm>
  60. <instcd/>
  61. <deptcd/>
  62. <ngdtym/>
  63. <emplno/>
  64. <trngcnfmyn/>
  65. </trngcnfm>
  66. <attach>
  67. <file/>
  68. <instcd/>
  69. <ngdtym/>
  70. </attach>
  71. </send>
  72. <hidden>
  73. <calendar>
  74. <year/>
  75. <month/>
  76. <weeklist>
  77. <list>
  78. <sun/>
  79. <mon/>
  80. <tue/>
  81. <wed/>
  82. <thu/>
  83. <fri/>
  84. <sat/>
  85. <sun_memo/>
  86. <mon_memo/>
  87. <tue_memo/>
  88. <wed_memo/>
  89. <thu_memo/>
  90. <fri_memo/>
  91. <sat_memo/>
  92. </list>
  93. </weeklist>
  94. </calendar>
  95. <input>
  96. <inputyn/>
  97. </input>
  98. </hidden>
  99. </root>
  100. </instance>
  101. <script type="javascript" ev:event="xforms-ready">
  102. <![CDATA[
  103. model.removeNodeset(grd_ngdtcdlist.nodeset);
  104. model.removeNodeset(grd_emplngdtschelist.nodeset);
  105. model.removeNodeset(grd_ngdtschelist.nodeset);
  106. model.removeNodeset(grd_humnatrlist.nodeset);
  107. model.removeNodeset(grd_dutschelist.nodeset);
  108. model.refresh();
  109. misfComboComCdListMulti("R0305,R0151,R0234", "cmb_instcd,cmb_apprtcdrflag,cmb_deptcd");
  110. var today = getCurrentDate();
  111. ipt_ngdtym.value = today.substring(0, 6);
  112. addComboItem( "cmb_apprtcdrflag", "[-- 전체 --]", "", "above");
  113. model.setValue(cmb_apprtcdrflag.attribute("ref"), "");
  114. cmb_instcd.value = getUserInfo("dutplceinstcd");
  115. if (getUserInfo("dutplceinstcd") == "001" && getUserInfo("dutplcecd") == "4110100000") {
  116. cmb_instcd.disabled = false;
  117. cmb_deptcd.disabled = false;
  118. inputflag = "A";
  119. }
  120. else if (getUserInfo("dutplceinstcd") != "001" && getUserInfo("dutplcecd") == "4110100000") {
  121. cmb_deptcd.disabled = false;
  122. inputflag = "B";
  123. }
  124. grd_emplngdtschelist.fixedcellcheckbox(1, 1) = true;
  125. fAuthCheck();
  126. initCalendar();
  127. model.refresh();
  128. ]]>
  129. </script>
  130. <submission id="TRRTS00602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/schengdtdata" resultref="/root/main/ngdtcdlist"/>
  131. <submission id="TXRTS01201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden/temp"/>
  132. <submission id="TRRTC01401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/req" resultref="/root/main/ngdtcd"/>
  133. <submission id="TRRTS01202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/schengdtdata" resultref="/root/main/schengdtdata"/>
  134. <submission id="TRRTS01203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/schengdtdata" resultref="/root/main/scheterm"/>
  135. <submission id="TRRTS01204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/humnatr" resultref="/root/main/humnatr"/>
  136. <submission id="TXRTS01202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/trngcnfm" resultref="/root/hidden/temp"/>
  137. <submission id="TXRTS01203" mediatype="multipart/form-data" method="form-data-post" ref="/root/send/attach"/>
  138. </model>
  139. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  140. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  141. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  142. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  143. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  144. <script type="javascript" src="../../../mis/humtrafactmngtweb/js/RPB001.js"/>
  145. <script type="javascript" src="../../../mis/tistrngeducplanmngtweb/js/SMRTS00600.js"/>
  146. <script type="javascript">
  147. <![CDATA[
  148. var beforeId = "";
  149. var inputflag = "";
  150. var gridRow = "";
  151. function initCalendar() {
  152. var curDate = getCurrentDate().toDate();
  153. model.setValue("/root/hidden/calendar/year", curDate.getDateFormat('YYYY'));
  154. model.setValue("/root/hidden/calendar/month", curDate.getDateFormat('MM'));
  155. model.refresh();
  156. setCalendar(curDate);
  157. }
  158. function setCalendar(dateObj) {
  159. // 그리드 초기화
  160. model.removeNodeset("/root/hidden/calendar/weeklist/list");
  161. grd_calendar.rebuild();
  162. dateObj.setDate(1);
  163. var startDay = dateObj.getDay();
  164. var days = dateObj.getMonthDay();
  165. var rows = Math.ceil( ( startDay + days ) / 7 );
  166. for( var i = 0; i < rows; i++ )
  167. grd_calendar.addRow(false);
  168. grd_calendar.rebuild();
  169. var rowIndex = grd_calendar.fixedRows;
  170. var colIndex = startDay;
  171. for( var i = 1; i <= days; i++ ) {
  172. grd_calendar.valueMatrix(rowIndex, colIndex) = i;
  173. //grd_calendar.cellStyle("color", rowIndex, colIndex) = "#ff0000";
  174. colIndex++;
  175. if( colIndex == 7 ) {
  176. colIndex = 0;
  177. rowIndex++;
  178. }
  179. }
  180. fSetHoliColor();
  181. }
  182. function setCellColor(gridObj) {
  183. var calRow = gridObj.row;
  184. var calCol = gridObj.col;
  185. var tmpCalCol;
  186. if (grd_ngdtschelist.rows - grd_ngdtschelist.fixedRows + 1 == 0) {
  187. return;
  188. }
  189. if (grd_ngdtschelist.row < grd_ngdtschelist.fixedRows) {
  190. return;
  191. }
  192. if (calRow == gridObj.fixedRows-1) {
  193. return;
  194. }
  195. if( calCol < 7 )
  196. tmpCalCol = calCol + 7;
  197. else
  198. tmpCalCol = calCol - 7;
  199. //gridObj.rebuildStyle();
  200. var dd = "00";
  201. var dd1 = gridObj.valueMatrix(calRow, calCol);
  202. var dd2 = gridObj.valueMatrix(calRow, tmpCalCol);
  203. if ((dd1 == null || dd1 == "") && (dd2 == null || dd2 == "")) {
  204. return;
  205. }
  206. if (dd1.length == 0) {
  207. if (dd2.length == 1) {
  208. dd = "0" + dd2;
  209. }
  210. else {
  211. dd = dd2;
  212. }
  213. }
  214. else if (dd1.length == 1) {
  215. dd = "0" + dd1;
  216. }
  217. else {
  218. dd = dd1;
  219. }
  220. var colnm = "ngdtdd" + dd;
  221. // alert(gridObj.cellStyle("background-color", calRow, calCol));
  222. if (gridObj.cellStyle("background-color", calRow, calCol) == "#ffffff") {
  223. gridObj.cellStyle("background-color", calRow, calCol) = "#daa7d9";
  224. gridObj.cellStyle("background-color", calRow, tmpCalCol) = "#daa7d9";
  225. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm)) = "1";
  226. }
  227. else if (gridObj.cellStyle("background-color", calRow, calCol) == "#daa7d9") {
  228. gridObj.cellStyle("background-color", calRow, calCol) = "#ffffff";
  229. gridObj.cellStyle("background-color", calRow, tmpCalCol) = "#ffffff";
  230. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm)) = "0";
  231. }
  232. setDayNo("B");
  233. if (grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) != "1" && grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) != "4" ) {
  234. grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) = "2";
  235. }
  236. }
  237. function setAllCellColor(gridObj, jobFlag) {
  238. var calRow = gridObj.row;
  239. var calCol = gridObj.col;
  240. var tmpCalCol;
  241. if (grd_ngdtschelist.rows - grd_ngdtschelist.fixedRows + 1 == 0) {
  242. return;
  243. }
  244. if (grd_ngdtschelist.row < grd_ngdtschelist.fixedRows) {
  245. return;
  246. }
  247. for (var i = gridObj.fixedRows; i < gridObj.rows; i++ ) {
  248. for (var k = 0; k < 7 ; k++ ) {
  249. var dd = gridObj.valueMatrix(i, k);
  250. if (dd.length == 1) {
  251. dd = "0" + dd;
  252. }
  253. var colnm = "ngdtdd" + dd;
  254. if (dd != null && dd != "") {
  255. if (fChkNgdtYN("ALL", dd) == "Y") {
  256. if (jobFlag == "Y") {
  257. gridObj.cellStyle("background-color", i, k) = "#daa7d9";
  258. gridObj.cellStyle("background-color", i, k+7) = "#daa7d9";
  259. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm)) = "1";
  260. }
  261. else {
  262. gridObj.cellStyle("background-color", i, k) = "#ffffff";
  263. gridObj.cellStyle("background-color", i, k+7) = "#ffffff";
  264. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm)) = "0";
  265. }
  266. }
  267. }
  268. }
  269. }
  270. setDayNo("B");
  271. if (grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) != "1" && grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) != "4" ) {
  272. grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) = "2";
  273. }
  274. }
  275. function setCalendarColor() {
  276. // var calRow = gridObj.row;
  277. // var calCol = gridObj.col;
  278. // var tmpCalCol;
  279. grd_calendar.rebuildStyle();
  280. fSetHoliColor();
  281. for (var i = grd_calendar.fixedRows; i < grd_calendar.rows; i++ ) {
  282. for (var k = 0; k < 7 ; k++ ) {
  283. var dd = grd_calendar.valueMatrix(i, k);
  284. if (dd.length == 1) {
  285. dd = "0" + dd;
  286. }
  287. var colnm = "ngdtdd" + dd;
  288. if (dd != null && dd != "") {
  289. if (grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm)) == "1") {
  290. grd_calendar.cellStyle("background-color", i, k) = "#daa7d9";
  291. grd_calendar.cellStyle("background-color", i, k+7) = "#daa7d9";
  292. }
  293. else {
  294. grd_calendar.cellStyle("background-color", i, k) = "#ffffff";
  295. grd_calendar.cellStyle("background-color", i, k+7) = "#ffffff";
  296. }
  297. }
  298. }
  299. }
  300. }
  301. function fSetHoliColor() {
  302. var ngdtym = ipt_ngdtym.value;
  303. var day = 0;
  304. var holiflag = "8";
  305. for (var i = grd_calendar.fixedRows; i < grd_calendar.rows; i++ ) {
  306. for (var k = 0; k < 7 ; k++ ) {
  307. var dd = grd_calendar.valueMatrix(i, k);
  308. if (dd.length == 1) {
  309. dd = "0" + dd;
  310. }
  311. var colnm = "ngdtdd" + dd;
  312. if (dd != null && dd != "") {
  313. day = parseFloat(dd);
  314. holiflag = model.getValue("/root/main/scheterm/baseddlist[" + (day) + "]/holiflag");
  315. if (holiflag == "0") {
  316. grd_calendar.cellStyle("color", i, k) = "#ff0000";
  317. grd_ngdtschelist.cellStyle("color", 0, grd_ngdtschelist.colRef(colnm) ) = "#ff0000";
  318. //grd_ngdtschelist.cellStyle("color", 1, grd_ngdtschelist.colRef(colnm) ) = "#ff0000";
  319. }
  320. else if (holiflag == "4") {
  321. grd_calendar.cellStyle("color", i, k) = "#0000ff";
  322. grd_ngdtschelist.cellStyle("color", 0, grd_ngdtschelist.colRef(colnm) ) = "#0000ff";
  323. //grd_ngdtschelist.cellStyle("color", 1, grd_ngdtschelist.colRef(colnm) ) = "#0000ff";
  324. }
  325. else {
  326. grd_ngdtschelist.cellStyle("color", 0, grd_ngdtschelist.colRef(colnm) ) = "#000000";
  327. //grd_ngdtschelist.cellStyle("color", 1, grd_ngdtschelist.colRef(colnm) ) = "#000000";
  328. }
  329. }
  330. }
  331. }
  332. }
  333. function fAuthCheck() {
  334. submit("TRRTS01203");
  335. if (inputflag != "A") {
  336. cmb_instcd.value = model.getValue("/root/main/scheterm/deptcdemplnolist/instcd");
  337. cmb_deptcd.value = model.getValue("/root/main/scheterm/deptcdemplnolist/orddeptcd");
  338. }
  339. ipt_deptchf.value = model.getValue("/root/main/scheterm/schetermlist/emplno");
  340. ipt_deptchfnm.value = model.getValue("/root/main/scheterm/schetermlist/emplnm");
  341. opt_phonno.value = model.getValue("/root/main/scheterm/schetermlist/mpphonno");
  342. ipt_nextemplno.value = model.getValue("/root/main/scheterm/nextschetermlist/emplno");
  343. ipt_nextemplnm.value = model.getValue("/root/main/scheterm/nextschetermlist/emplnm");
  344. opt_mpphonno.value = model.getValue("/root/main/scheterm/nextschetermlist/mpphonno");
  345. chk_cnfmyn.value = model.getValue("/root/main/scheterm/nextschetermlist/cnfmyn");
  346. var lastday = model.getValue("/root/main/scheterm/ngdtymlastdaylist/lastday");
  347. if (lastday == "30") {
  348. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd31")) = 0;
  349. }
  350. else if (lastday == "29") {
  351. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd31")) = 0;
  352. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd30")) = 0;
  353. }
  354. else if (lastday == "28") {
  355. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd31")) = 0;
  356. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd30")) = 0;
  357. grd_ngdtschelist.colWidth(grd_ngdtschelist.colRef("ngdtdd29")) = 0;
  358. }
  359. // alert(getUserInfo("userid") );
  360. // alert(model.getValue("/root/main/scheterm/schetermlist/emplno") );
  361. if (getUserInfo("userid") != model.getValue("/root/main/scheterm/schetermlist/emplno") && inputflag != "A" && inputflag != "B") {
  362. btn_cnfm.disabled = true;
  363. btn_cancnfm.disabled = true;
  364. btn_chfcnfm.disabled = true;
  365. btn_canchfcnfm.disabled = true;
  366. btn_save.disabled = true;
  367. btn_search.disabled = true;
  368. btn_appschelist.disabled = true;
  369. messageBox(ipt_ngdtym.value + "월은 작성권한이 없습니다(의국장으로 등록이 되어있지 않습니다.)","");
  370. return;
  371. }
  372. else if ( (model.getValue("/root/main/scheterm/schetermlist/todaydd") < model.getValue("/root/main/scheterm/schetermlist/fromdd") ||
  373. model.getValue("/root/main/scheterm/schetermlist/todaydd") > model.getValue("/root/main/scheterm/schetermlist/todd")) && inputflag != "A" && inputflag != "B" ) {
  374. btn_cnfm.disabled = true;
  375. btn_cancnfm.disabled = true;
  376. btn_chfcnfm.disabled = true;
  377. btn_canchfcnfm.disabled = true;
  378. btn_save.disabled = true;
  379. btn_appschelist.disabled = true;
  380. //btn_search.disabled = true;
  381. messageBox(ipt_ngdtym.value + "월 당직 작성기간이 아닙니다.","");
  382. return;
  383. }
  384. else {
  385. btn_cnfm.disabled = false;
  386. btn_cancnfm.disabled = false;
  387. btn_chfcnfm.disabled = false;
  388. btn_canchfcnfm.disabled = false;
  389. btn_save.disabled = false;
  390. btn_search.disabled = false;
  391. btn_appschelist.disabled = false;
  392. // if (getUserInfo("dutplceinstcd") != "001") {
  393. // cmb_instcd.value = getUserInfo("dutplceinstcd");
  394. // }
  395. }
  396. }
  397. function setDayNo(pFlag) {
  398. var lastday = model.getValue("/root/main/scheterm/ngdtymlastdaylist/lastday");
  399. var dd = "";
  400. var colnm = "";
  401. var ngdtflag = "0";
  402. if (pFlag == "A") {
  403. for (var i = grd_ngdtschelist.fixedRows; i < grd_ngdtschelist.rows; i++) {
  404. var weekdayno = 0;
  405. var holidayno = 0;
  406. // for (var i = grd_ngdtschelist.fixedRows; i <= grd_ngdtschelist.fixedRows; i++) {
  407. for (var k = 1; k <= lastday; k++) {
  408. if (k < 10) {
  409. dd = "0" + k;
  410. }
  411. else {
  412. dd = k;
  413. }
  414. colnm = "ngdtdd" + dd;
  415. ngdtflag = grd_ngdtschelist.valueMatrix(i, grd_ngdtschelist.colRef(colnm));
  416. if (ngdtflag == null || ngdtflag == "") {
  417. ngdtflag = "0";
  418. }
  419. if (grd_ngdtschelist.cellStyle("color", 0, grd_ngdtschelist.colRef(colnm) ) != "#000000") {
  420. holidayno = holidayno + parseInt(ngdtflag);
  421. }
  422. else {
  423. weekdayno = weekdayno + parseInt(ngdtflag);
  424. }
  425. }
  426. grd_ngdtschelist.valueMatrix(i, grd_ngdtschelist.colRef("weekcnt")) = weekdayno;
  427. grd_ngdtschelist.valueMatrix(i, grd_ngdtschelist.colRef("holicnt")) = holidayno;
  428. }
  429. }
  430. else {
  431. var weekdayno = 0;
  432. var holidayno = 0;
  433. for (var k = 1; k <= lastday; k++) {
  434. if (k < 10) {
  435. dd = "0" + k;
  436. }
  437. else {
  438. dd = k;
  439. }
  440. colnm = "ngdtdd" + dd;
  441. ngdtflag = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef(colnm));
  442. if (ngdtflag == null || ngdtflag == "") {
  443. ngdtflag = "0";
  444. }
  445. if (grd_ngdtschelist.cellStyle("color", 0, grd_ngdtschelist.colRef(colnm) ) != "#000000") {
  446. holidayno = holidayno + parseInt(ngdtflag);
  447. }
  448. else {
  449. weekdayno = weekdayno + parseInt(ngdtflag);
  450. }
  451. }
  452. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("weekcnt")) = weekdayno;
  453. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("holicnt")) = holidayno;
  454. }
  455. }
  456. function setCalendarBackColor(gridObj, colNm) {
  457. var dayno = "0";
  458. var grddayno = colNm.substring(6,8);
  459. var ngdtflag = gridObj.valueMatrix(gridObj.row, gridObj.colRef(colNm));
  460. var color = "#ffffff";
  461. if (ngdtflag == "1") {
  462. gridObj.valueMatrix(gridObj.row, gridObj.colRef(colNm)) = "0";
  463. color = "#ffffff";
  464. }
  465. else {
  466. gridObj.valueMatrix(gridObj.row, gridObj.colRef(colNm)) = "1";
  467. color = "#daa7d9";
  468. }
  469. for (var i = grd_calendar.fixedRows; i < grd_calendar.rows; i++) {
  470. for (var k = 0; k < 7; k++) {
  471. dayno = grd_calendar.valueMatrix(i, k);
  472. //alert(dayno + "@" + grddayno);
  473. if (parseFloat(dayno) == parseFloat(grddayno) ) {
  474. grd_calendar.cellStyle("background-color", i, k) = color;
  475. grd_calendar.cellStyle("background-color", i, k + 7) = color;
  476. break;
  477. }
  478. }
  479. }
  480. setDayNo("B");
  481. if (gridObj.rowStatus(gridObj.row) != "1" && gridObj.rowStatus(gridObj.row) != "4" ) {
  482. gridObj.rowStatus(gridObj.row) = "2";
  483. }
  484. }
  485. function fChkNgdtYN(pFlag, pDD) {
  486. var rtn = "Y";
  487. var ngdtdd = "";
  488. if (pFlag == "CAL" ) {
  489. var calCol = grd_calendar.col;
  490. var dd = grd_calendar.valueMatrix(grd_calendar.row, calCol);
  491. if (dd == null || dd == "") {
  492. var dd = grd_calendar.valueMatrix(grd_calendar.row, calCol - 7);
  493. }
  494. if (dd == null || dd == "") {
  495. return "Y";
  496. }
  497. else {
  498. if (dd.length == 1) {
  499. dd = "0" + dd;
  500. }
  501. ngdtdd = ipt_ngdtym.value + dd;
  502. // alert(ngdtdd);
  503. }
  504. }
  505. else if (pFlag == "ALL") {
  506. ngdtdd = ipt_ngdtym.value + pDD;
  507. }
  508. else {
  509. var colnm = grd_ngdtschelist.colAttribute(grd_ngdtschelist.col, "ref");
  510. var grddayno = colnm.substring(6,8);
  511. ngdtdd = ipt_ngdtym.value + grddayno;
  512. }
  513. for (var i = grd_humnatrlist.fixedRows; i < grd_humnatrlist.rows; i++) {
  514. var fromdd = grd_humnatrlist.valueMatrix(i, grd_humnatrlist.colRef("fromdd"));
  515. var todd = grd_humnatrlist.valueMatrix(i, grd_humnatrlist.colRef("todd"));
  516. // alert(ngdtdd);
  517. // alert(fromdd);
  518. // alert(todd);
  519. if (ngdtdd >= fromdd && ngdtdd <= todd) {
  520. if (pFlag == "CAL" || pFlag == "GRD") {
  521. messageBox( fromdd + "~" + todd + "는 당직 대상 기간이 아닙니다.","I999");
  522. }
  523. rtn = "N";
  524. break;
  525. }
  526. else {
  527. rtn = "Y";
  528. }
  529. }
  530. if (rtn == "Y") {
  531. for (var i = grd_dutschelist.fixedRows; i < grd_dutschelist.rows; i++) {
  532. var fromdd = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("fromdd"));
  533. var todd = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("todd"));
  534. var dutdetlnm = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("dutdetlnm"));
  535. if (ngdtdd >= fromdd && ngdtdd <= todd) {
  536. if (pFlag == "CAL" || pFlag == "GRD") {
  537. messageBox(fromdd + "~" + todd + "기간은 " + dutdetlnm + " 기간입니다.","I999");
  538. }
  539. rtn = "N";
  540. break;
  541. }
  542. else {
  543. rtn = "Y";
  544. }
  545. }
  546. }
  547. return rtn;
  548. }
  549. function fExcelUpload() {
  550. var maxsize = upload1.attribute("filesize");
  551. var filename = window.fileDialog("open", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  552. var filelist = filename.split("|");
  553. model.removeNodeset("/root/main/list/filelist");
  554. model.removeNodeset("/root/send/attach");
  555. //타이틀을 획득한다.
  556. var s = new String(filelist[filelist.length-1]);
  557. var ss = s.split("\\");
  558. if(filename !=""){
  559. //작업 전 row를 추가 >파일명 유/무에 따른 분기
  560. for(var i = 0 ; i < filelist.length ; i++ ){
  561. grd_attach.addRow(false);
  562. if(filelist[i] == ""){
  563. grd_attach.removeRow(false);
  564. grd_attach.refresh();
  565. }else{
  566. grd_attach.valueMatrix(grd_attach.rows - 1, 0) = filelist[i];
  567. //파일크기('tfHelper.checkFileSize' 참조)
  568. var fileCnt = upload1.getFileCount();
  569. var lastIndex = fileCnt - 1;
  570. var fileSize = upload1.getFileSize(lastIndex);
  571. grd_attach.textmatrix(grd_attach.rows - 1,1) = fileSize;
  572. if (!checkFileSize(upload1)){
  573. grd_attach.removeItem();
  574. messageBox("파일 크기가 최대치("+maxsize+"Byte)를", "E003");
  575. return;
  576. }
  577. }
  578. }
  579. model.makeValue("/root/send/attach/instcd",cmb_instcd.value);
  580. model.makeValue("/root/send/attach/ngdtym",ipt_ngdtym.value);
  581. openLoadingBar("파일업로드 작업중입니다... ") ;
  582. submit("TXRTS01203");
  583. closeLoadingBar();
  584. }
  585. }
  586. ]]>
  587. </script>
  588. </xhtml:head>
  589. <xhtml:body>
  590. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  591. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">당직 스케줄 등록</caption>
  592. </group>
  593. <group id="group2" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  594. <group id="group4" style="left:915px; top:65px; width:279px; height:675px; ">
  595. <datagrid id="grd_dutschelist" nodeset="/root/main/humnatr/dutschelist" caption="근태^근태^기간^기간^승인^승인|구분^세부구분^from^to^수련^과" colsep="^" colwidth="47, 64, 56, 53, 34, 27" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:449px; width:276px; height:223px; ">
  596. <col ref="dutcdnm"/>
  597. <col ref="dutdetlnm"/>
  598. <col ref="fromdd" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; "/>
  599. <col ref="todd" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; "/>
  600. <col checkvalue="Y,N" disabled="true" ref="psnworkapryn" type="checkbox"/>
  601. <col checkvalue="Y,N" disabled="true" ref="deprtmangraprvyn" type="checkbox"/>
  602. </datagrid>
  603. <caption id="caption3" class="tit_2" style="left:0px; top:428px; width:140px; height:13px; font-size:10pt; ">복무계획</caption>
  604. <line id="line4" class="line_1" style="x1:0px; y1:445px; x2:273px; y2:446px; "/>
  605. <caption id="caption2" class="tit_2" style="left:0px; top:303px; width:140px; height:13px; font-size:10pt; ">사랑나눔</caption>
  606. <line id="line3" class="line_1" style="x1:0px; y1:320px; x2:273px; y2:321px; "/>
  607. <datagrid id="grd_humnatrlist" nodeset="/root/main/humnatr/humnatrlist" caption="시작일^종료일^참석여부|시작일^종료일^참석여부" colsep="^" colwidth="101, 97, 35" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:324px; width:273px; height:95px; ">
  608. <col ref="fromdd" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; "/>
  609. <col ref="todd" format="yyyy-mm-dd" style="text-align:center; vertical-align:middle; "/>
  610. <col checkvalue="Y,N" disabled="true" ref="entryyn" type="checkbox"/>
  611. </datagrid>
  612. <multilinegrid id="grd_calendar" nodeset="/root/hidden/calendar/weeklist/list" class="gridcalendar" autoresize="true" caption="일^월^화^수^목^금^토" colsep="^" colwidth="39, 39, 39, 39, 39, 39, 39" dataheight="20" extendlastcol="noscroll" focuscolor="transparent" rowsep="|" mergecellsfixedrows="bycolrec" style="left:0px; top:35px; width:278px; height:265px; ">
  613. <row>
  614. <col class="color_sun" ref="sun" style="background-color:#ffffff; border-bottom-width:0px; "/>
  615. <col ref="mon" style="background-color:#ffffff; border-bottom-width:0px; "/>
  616. <col ref="tue" style="background-color:#ffffff; border-bottom-width:0px; "/>
  617. <col ref="wed" style="background-color:#ffffff; border-bottom-width:0px; "/>
  618. <col ref="thu" style="background-color:#ffffff; border-bottom-width:0px; "/>
  619. <col ref="fri" style="background-color:#ffffff; border-bottom-width:0px; "/>
  620. <col class="color_sat" ref="sat" style="background-color:#ffffff; border-bottom-width:0px; "/>
  621. </row>
  622. <row>
  623. <col ref="sun_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  624. <col ref="mon_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  625. <col ref="tue_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  626. <col ref="wed_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  627. <col ref="thu_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  628. <col ref="fri_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  629. <col ref="sat_memo" type="output" style="background-color:#ffffff; border-top-width:0px; "/>
  630. </row>
  631. <script type="javascript" ev:event="onrowchanged">
  632. <![CDATA[
  633. //setCellColor(grd_calendar);
  634. ]]>
  635. </script>
  636. <script type="javascript" ev:event="onclick">
  637. <![CDATA[
  638. if (chk_inputyn.value != "Y" ) {
  639. if (fChkNgdtYN("CAL") != "Y") return;
  640. setCellColor(grd_calendar);
  641. }
  642. ]]>
  643. </script>
  644. </multilinegrid>
  645. <group id="grp_calendar" style="left:0px; top:5px; width:278px; height:29px; ">
  646. <shape id="rectangle1" class="calendar_header" appearance="rectangle" style="left:0px; top:0px; width:277px; height:28px; "/>
  647. <button id="button31" class="icon_pre_year" visibility="hidden" style="left:210px; top:5px; width:16px; height:16px; ">
  648. <caption/>
  649. <script type="javascript" ev:event="DOMActivate">
  650. <![CDATA[
  651. var isMonth = model.getValue("/root/hidden/calendar/month");
  652. var isYear = model.getValue("/root/hidden/calendar/year");
  653. var isDate = (isYear+isMonth+1).toDate().getAddDate(-1,'Y');
  654. model.setValue("/root/hidden/calendar/year", isDate.getDateFormat('YYYY'));
  655. model.setValue("/root/hidden/calendar/month", isDate.getDateFormat('MM'));
  656. model.refresh();
  657. setCalendar(isDate);
  658. ]]>
  659. </script>
  660. </button>
  661. <button id="button32" class="icon_next_year" visibility="hidden" style="left:240px; top:5px; width:16px; height:16px; ">
  662. <caption/>
  663. <script type="javascript" ev:event="DOMActivate">
  664. <![CDATA[
  665. var isMonth = model.getValue("/root/hidden/calendar/month");
  666. var isYear = model.getValue("/root/hidden/calendar/year");
  667. var isDate = (isYear+isMonth+1).toDate().getAddDate(1,'Y');
  668. model.setValue("/root/hidden/calendar/year", isDate.getDateFormat('YYYY'));
  669. model.setValue("/root/hidden/calendar/month", isDate.getDateFormat('MM'));
  670. model.refresh();
  671. setCalendar(isDate);
  672. ]]>
  673. </script>
  674. </button>
  675. <button id="btn_premonth" class="icon_pre_month" visibility="hidden" style="left:225px; top:5px; width:16px; height:16px; ">
  676. <caption/>
  677. <script type="javascript" ev:event="DOMActivate">
  678. <![CDATA[
  679. var isMonth = model.getValue("/root/hidden/calendar/month");
  680. var isYear = model.getValue("/root/hidden/calendar/year");
  681. var isDate = (isYear+isMonth+1).toDate().getAddDate(-1,'M');
  682. model.setValue("/root/hidden/calendar/year", isDate.getDateFormat('YYYY'));
  683. model.setValue("/root/hidden/calendar/month", isDate.getDateFormat('MM'));
  684. model.refresh();
  685. setCalendar(isDate);
  686. ]]>
  687. </script>
  688. </button>
  689. <button id="button34" class="icon_next_month" visibility="hidden" style="left:255px; top:5px; width:16px; height:16px; ">
  690. <caption/>
  691. <script type="javascript" ev:event="DOMActivate">
  692. <![CDATA[
  693. var isMonth = model.getValue("/root/hidden/calendar/month");
  694. var isYear = model.getValue("/root/hidden/calendar/year");
  695. var isDate = (isYear+isMonth+1).toDate().getAddDate(1,'M');
  696. model.setValue("/root/hidden/calendar/year", isDate.getDateFormat('YYYY'));
  697. model.setValue("/root/hidden/calendar/month", isDate.getDateFormat('MM'));
  698. model.refresh();
  699. setCalendar(isDate);
  700. ]]>
  701. </script>
  702. </button>
  703. <output id="opt_year" ref="/root/hidden/calendar/year" class="calendar_output" style="left:11px; top:4px; width:30px; height:19px; "/>
  704. <output id="opt_month" ref="/root/hidden/calendar/month" class="calendar_output" style="left:61px; top:4px; width:30px; height:19px; "/>
  705. <caption id="caption11" class="calendar_output" style="left:41px; top:4px; width:20px; height:21px; ">년</caption>
  706. <caption id="caption12" class="calendar_output" style="left:91px; top:4px; width:20px; height:21px; ">월</caption>
  707. <button id="btn_allsel" class="btn2_letter2" style="left:164px; top:4px; width:42px; height:19px; ">
  708. <caption>전체</caption>
  709. <script type="javascript" ev:event="DOMActivate">
  710. <![CDATA[
  711. if (chk_inputyn.value != "Y" ) {
  712. setAllCellColor(grd_calendar, "Y");
  713. }
  714. ]]>
  715. </script>
  716. </button>
  717. <button id="btn_allunsel" class="btn2_letter4" style="left:207px; top:4px; width:64px; height:19px; ">
  718. <caption>전체취소</caption>
  719. <script type="javascript" ev:event="DOMActivate">
  720. <![CDATA[
  721. if (chk_inputyn.value != "Y" ) {
  722. setAllCellColor(grd_calendar, "N");
  723. }
  724. ]]>
  725. </script>
  726. </button>
  727. </group>
  728. </group>
  729. <group id="group3" style="left:0px; top:65px; width:240px; height:611px; ">
  730. <datagrid id="grd_ngdtcdlist" nodeset="/root/main/schengdtdata/ngdtschengdtcdlist" caption="코드^명칭|코드^명칭" colsep="^" colwidth="60, 139" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:0px; top:5px; width:238px; height:205px; ">
  731. <col ref="ngdtcd"/>
  732. <col ref="ngdtnm"/>
  733. <script type="javascript" ev:event="onrowchanged">
  734. <![CDATA[
  735. var ngdtcd = grd_ngdtcdlist.valueMatrix(grd_ngdtcdlist.row, grd_ngdtcdlist.colRef("ngdtcd"));
  736. for (var i = grd_emplngdtschelist.fixedRows; i < grd_emplngdtschelist.rows; i++) {
  737. grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("selyn")) = "N";
  738. var emplno = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("emplno"));
  739. for (var k = grd_ngdtschelist.fixedRows; k < grd_ngdtschelist.rows; k++) {
  740. var partcd = grd_ngdtschelist.valueMatrix(k, grd_ngdtschelist.colRef("partcd"));
  741. var emplno2 = grd_ngdtschelist.valueMatrix(k, grd_ngdtschelist.colRef("emplno"));
  742. if (emplno == emplno2 && ngdtcd == partcd) {
  743. grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("selyn")) = "Y";
  744. }
  745. }
  746. }
  747. ]]>
  748. </script>
  749. </datagrid>
  750. <datagrid id="grd_emplngdtschelist" nodeset="/root/main/schengdtdata/emplngdtschelist" caption="선택^사번^성명^I/R^년차^과^과명^BP|^사번^성명^I/R^년차^과^과명^BP" colsep="^" colwidth="34, 59, 59, 26, 23, 25, 25, 25" dataheight="25" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" style="left:0px; top:240px; width:239px; height:369px; ">
  751. <col checkvalue="Y,N" ref="selyn" type="checkbox"/>
  752. <col ref="emplno"/>
  753. <col ref="emplnm"/>
  754. <col ref="apprtcdrflag"/>
  755. <col ref="anual"/>
  756. <col ref="deptcd" visibility="hidden"/>
  757. <col ref="deptnm" visibility="hidden"/>
  758. <col ref="bpno" visibility="hidden"/>
  759. </datagrid>
  760. <button id="btn_appschelist" class="btn2_letter3" style="left:183px; top:213px; width:53px; height:19px; text-align:center; ">
  761. <caption>적용</caption>
  762. <script type="javascript" ev:event="DOMActivate">
  763. <![CDATA[
  764. var emplno = "";
  765. var partcd = "";
  766. var emplnm = "";
  767. var remark = "";
  768. var inputyn = "Y";
  769. var maxseq = 0;
  770. var focusrow = grd_ngdtschelist.fixedRows;
  771. var cnt = 0;
  772. partcd = grd_ngdtcdlist.valueMatrix(grd_ngdtcdlist.row, grd_ngdtcdlist.colRef("ngdtcd"));
  773. for (var i = grd_emplngdtschelist.fixedRows; i < grd_emplngdtschelist.rows; i++) {
  774. if (grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("selyn")) == "Y") {
  775. emplno = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("emplno"));
  776. emplnm = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("emplnm"));
  777. for (var k = grd_ngdtschelist.fixedRows; k < grd_ngdtschelist.rows; k++) {
  778. if (grd_ngdtschelist.valueMatrix(k, grd_ngdtschelist.colRef("emplno")) == emplno &&
  779. grd_ngdtschelist.valueMatrix(k, grd_ngdtschelist.colRef("partcd")) == partcd ) {
  780. inputyn = "N";
  781. remark = remark + "\n" + emplnm + "[" + emplno + "]" ;
  782. }
  783. }
  784. }
  785. }
  786. if (inputyn == "N" ) {
  787. messageBox(remark + "은(는) 이미 등록이 되어 있습니다.","");
  788. return;
  789. }
  790. for (var z = grd_ngdtschelist.fixedRows; z < grd_ngdtschelist.rows; z++) {
  791. //if (grd_ngdtschelist.valueMatrix(z, grd_ngdtschelist.colRef("partcd")) == partcd ) {
  792. seqno = parseInt(grd_ngdtschelist.valueMatrix(z, grd_ngdtschelist.colRef("seqno")));
  793. if (maxseq < seqno) {
  794. maxseq = seqno;
  795. }
  796. //}
  797. }
  798. for (var i = grd_emplngdtschelist.fixedRows; i < grd_emplngdtschelist.rows; i++) {
  799. if (grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("selyn")) == "Y") {
  800. cnt = cnt + 1;
  801. grd_ngdtschelist.addRow();
  802. if (cnt == 1) {
  803. focusrow = grd_ngdtschelist.row;
  804. }
  805. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("emplno")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("emplno"));
  806. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("emplnm")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("emplnm"));
  807. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("partcd")) = grd_ngdtcdlist.valueMatrix(grd_ngdtcdlist.row, grd_ngdtcdlist.colRef("ngdtcd"));
  808. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("deptcd")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("deptcd"));
  809. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("deptnm")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("deptnm"));
  810. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("apprtcdrflag")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("apprtcdrflag"));
  811. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("anual")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("anual"));
  812. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("bpno")) = grd_emplngdtschelist.valueMatrix(i, grd_emplngdtschelist.colRef("bpno"));
  813. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("instcd")) = cmb_instcd.value;
  814. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("ngdtym")) = ipt_ngdtym.value;
  815. maxseq = maxseq + 1;
  816. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("seqno")) = maxseq;
  817. }
  818. }
  819. grd_ngdtschelist.row = focusrow;
  820. setCalendarColor();
  821. ]]>
  822. </script>
  823. </button>
  824. <caption id="caption7" class="tit_2" style="left:5px; top:216px; width:100px; height:13px; font-size:10pt; ">대상자 List</caption>
  825. <line id="line5" class="line_1" style="x1:0px; y1:235px; x2:239px; y2:236px; "/>
  826. </group>
  827. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:5px; width:1195px; height:36px; background-color:#fffbf2; border-color:#ffd799; "/>
  828. <input id="ipt_ngdtym" ref="/root/send/schengdtdata/ngdtym" class="input_s_essential" inputtype="date" format="yyyy-mm" style="left:85px; top:14px; width:95px; height:19px; ">
  829. <script type="javascript" ev:event="xforms-value-changed">
  830. <![CDATA[
  831. fAuthCheck();
  832. var ngdtym = ipt_ngdtym.value;
  833. opt_year.value = ngdtym.substring(0,4);
  834. opt_month.value = ngdtym.substring(4,6);
  835. var isDate = (ngdtym+1).toDate();
  836. setCalendar(isDate);
  837. ]]>
  838. </script>
  839. </input>
  840. <caption id="cap_yy" class="search_name" style="left:5px; top:15px; width:81px; height:17px; ">근무년월:</caption>
  841. <datagrid id="grd_ngdtschelist" nodeset="/root/main/schengdtdata/trngngdtschelist" class="text_center" caption="소속부서^파트^성명^순번^비퍼^I/R^년차^평일수^휴일수^01^02^03^04^05^06^07^08^09^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31^사번^과^당직월^기관^caption1^caption2^caption3^caption4^caption5^caption6^caption7^caption8^caption9^caption10^caption11|소속부서^파트^성명^순번^비퍼^I/R^년차^평일수^휴일수^01^02^03^04^05^06^07^08^09^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31^사번^과^당직월^기관^caption1^caption2^caption3^caption4^caption5^caption6^caption7^caption8^caption9^caption10^caption11" colsep="^" colwidth="84, 42, 56, 36, 54, 30, 30, 44, 44, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 28, 27, 35, 22, 38, 29, 27, 31, 28, 18, 24, 24, 21, 23, 25" dataheight="25" frozencols="7" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" selectionmode="free" style="left:245px; top:70px; width:668px; height:605px; ">
  842. <col ref="deptnm"/>
  843. <col ref="partcd"/>
  844. <col ref="emplnm" style="background-color:#e0e0e0; "/>
  845. <col ref="seqno" type="input" style="text-align:center; vertical-align:middle; "/>
  846. <col ref="bpno" type="output" format="9999" maxlength="4" showmask="true" style="text-align:center; "/>
  847. <col ref="apprtcdrflag" visibility="hidden" style="text-align:center; background-color:#e0e0e0; "/>
  848. <col ref="anual" style="text-align:center; background-color:#e0e0e0; "/>
  849. <col ref="weekcnt" style="text-align:center; background-color:#e0e0e0; "/>
  850. <col ref="holicnt" style="text-align:center; background-color:#e0e0e0; "/>
  851. <col ref="ngdtdd01" style="text-align:center; vertical-align:middle; "/>
  852. <col ref="ngdtdd02" style="text-align:center; vertical-align:middle; "/>
  853. <col ref="ngdtdd03" style="text-align:center; vertical-align:middle; "/>
  854. <col ref="ngdtdd04" style="text-align:center; vertical-align:middle; "/>
  855. <col ref="ngdtdd05" style="text-align:center; vertical-align:middle; "/>
  856. <col ref="ngdtdd06" style="text-align:center; vertical-align:middle; "/>
  857. <col ref="ngdtdd07" style="text-align:center; vertical-align:middle; "/>
  858. <col ref="ngdtdd08" style="text-align:center; vertical-align:middle; "/>
  859. <col ref="ngdtdd09" style="text-align:center; vertical-align:middle; "/>
  860. <col ref="ngdtdd10" style="text-align:center; vertical-align:middle; "/>
  861. <col ref="ngdtdd11" style="text-align:center; vertical-align:middle; "/>
  862. <col ref="ngdtdd12" style="text-align:center; vertical-align:middle; "/>
  863. <col ref="ngdtdd13" style="text-align:center; vertical-align:middle; "/>
  864. <col ref="ngdtdd14" style="text-align:center; vertical-align:middle; "/>
  865. <col ref="ngdtdd15" style="text-align:center; vertical-align:middle; "/>
  866. <col ref="ngdtdd16" style="text-align:center; vertical-align:middle; "/>
  867. <col ref="ngdtdd17" style="text-align:center; vertical-align:middle; "/>
  868. <col ref="ngdtdd18" style="text-align:center; vertical-align:middle; "/>
  869. <col ref="ngdtdd19" style="text-align:center; vertical-align:middle; "/>
  870. <col ref="ngdtdd20" style="text-align:center; vertical-align:middle; "/>
  871. <col ref="ngdtdd21" style="text-align:center; vertical-align:middle; "/>
  872. <col ref="ngdtdd22" style="text-align:center; vertical-align:middle; "/>
  873. <col ref="ngdtdd23" style="text-align:center; vertical-align:middle; "/>
  874. <col ref="ngdtdd24" style="text-align:center; vertical-align:middle; "/>
  875. <col ref="ngdtdd25" style="text-align:center; vertical-align:middle; "/>
  876. <col ref="ngdtdd26" style="text-align:center; vertical-align:middle; "/>
  877. <col ref="ngdtdd27" style="text-align:center; vertical-align:middle; "/>
  878. <col ref="ngdtdd28" style="text-align:center; vertical-align:middle; "/>
  879. <col ref="ngdtdd29" style="text-align:center; vertical-align:middle; "/>
  880. <col ref="ngdtdd30" style="text-align:center; vertical-align:middle; "/>
  881. <col ref="ngdtdd31" style="text-align:center; vertical-align:middle; "/>
  882. <col ref="emplno" visibility="hidden"/>
  883. <col ref="deptcd" visibility="hidden"/>
  884. <col ref="ngdtym" visibility="hidden"/>
  885. <col ref="instcd" visibility="hidden"/>
  886. <col ref="trngcnfmyn" visibility="hidden"/>
  887. <col ref="trngcnfmid" visibility="hidden"/>
  888. <col ref="trngcnfmdd" visibility="hidden"/>
  889. <col ref="chfcnfmyn" visibility="hidden"/>
  890. <col ref="chfcnfmid" visibility="hidden"/>
  891. <col ref="chfcnfmdd" visibility="hidden"/>
  892. <col ref="trngteamcnfmyn" visibility="hidden"/>
  893. <col ref="trngteamcnfmid" visibility="hidden"/>
  894. <col ref="trngteamcnfmdd" visibility="hidden"/>
  895. <col ref="ngdtendyn" visibility="hidden"/>
  896. <col ref="payappyn" visibility="hidden"/>
  897. <script type="javascript" ev:event="onrowchanged">
  898. <![CDATA[
  899. model.setValue("/root/send/humnatr/emplno", grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("emplno")));
  900. model.setValue("/root/send/humnatr/ngdtym", grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.colRef("ngdtym")));
  901. setCalendarColor();
  902. // submit("TRRTS01204");
  903. // grd_ngdtschelist.dispatch("onmouseup");
  904. ]]>
  905. </script>
  906. <script type="javascript" ev:event="onclick">
  907. <![CDATA[
  908. if( !(grd_ngdtschelist.isCell(event.target) && grd_ngdtschelist.row >= grd_ngdtschelist.fixedRows) ){
  909. return;
  910. }
  911. if (gridRow != grd_ngdtschelist.row) {
  912. gridRow = grd_ngdtschelist.row;
  913. submit("TRRTS01204");
  914. }
  915. // grd_ngdtschelist.dispatch("onmouseup");
  916. var colnm = grd_ngdtschelist.colAttribute(grd_ngdtschelist.col, "ref");
  917. if (colnm.substring(0,6) == "ngdtdd" && chk_inputyn.value == "Y") {
  918. if (fChkNgdtYN("GRD") != "Y") return;
  919. setCalendarBackColor(grd_ngdtschelist, colnm);
  920. }
  921. ]]>
  922. </script>
  923. </datagrid>
  924. <button id="btn_search" class="btn1_letter2" style="left:1130px; top:12px; width:56px; height:22px; text-align:left; ">
  925. <caption>조회</caption>
  926. <script type="javascript" ev:event="DOMActivate">
  927. <![CDATA[
  928. if ( !isRequiredControls("ipt_ngdtym", "cmb_deptcd","cmb_instcd") ) {
  929. return false;
  930. }
  931. submit("TRRTS01202");
  932. setDayNo("A");
  933. if (grd_ngdtcdlist.rows - grd_ngdtcdlist.fixedRows + 1 > 0) {
  934. model.setFocus("grd_ngdtcdlist");
  935. grd_ngdtcdlist.row = grd_ngdtcdlist.fixedRows;
  936. grd_ngdtcdlist.dispatch("onrowchanged");
  937. }
  938. if (grd_ngdtschelist.rows - grd_ngdtschelist.fixedRows + 1 > 0) {
  939. var payappyn = "N";
  940. var ngdtendyn = "N";
  941. var trngteamcnfmyn = "N";
  942. var chfcnfmyn = "N";
  943. var trngcnfmyn = "N";
  944. payappyn = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.fixedRows, grd_ngdtschelist.colRef("payappyn"));
  945. if (payappyn == "Y") {
  946. btn_cnfm.disabled = true;
  947. btn_cancnfm.disabled = true;
  948. btn_chfcnfm.disabled = true;
  949. btn_canchfcnfm.disabled = true;
  950. btn_save.disabled = true;
  951. return;
  952. }
  953. ngdtendyn = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.fixedRows, grd_ngdtschelist.colRef("ngdtendyn"));
  954. if (ngdtendyn == "Y") {
  955. btn_cnfm.disabled = true;
  956. btn_cancnfm.disabled = true;
  957. btn_chfcnfm.disabled = true;
  958. btn_canchfcnfm.disabled = true;
  959. btn_save.disabled = true;
  960. return;
  961. }
  962. trngteamcnfmyn = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.fixedRows, grd_ngdtschelist.colRef("trngteamcnfmyn"));
  963. if (trngteamcnfmyn == "Y") {
  964. btn_cnfm.disabled = true;
  965. btn_cancnfm.disabled = true;
  966. btn_chfcnfm.disabled = true;
  967. btn_canchfcnfm.disabled = true;
  968. btn_save.disabled = true;
  969. return;
  970. }
  971. chfcnfmyn = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.fixedRows, grd_ngdtschelist.colRef("chfcnfmyn"));
  972. if (chfcnfmyn == "Y") {
  973. btn_cnfm.disabled = true;
  974. btn_cancnfm.disabled = true;
  975. btn_chfcnfm.disabled = true;
  976. btn_canchfcnfm.disabled = false;
  977. btn_save.disabled = true;
  978. return;
  979. }
  980. trngcnfmyn = grd_ngdtschelist.valueMatrix(grd_ngdtschelist.fixedRows, grd_ngdtschelist.colRef("trngcnfmyn"));
  981. if (trngcnfmyn == "Y") {
  982. btn_cnfm.disabled = true;
  983. btn_cancnfm.disabled = false;
  984. btn_chfcnfm.disabled = true;
  985. btn_canchfcnfm.disabled = true;
  986. btn_save.disabled = true;
  987. return;
  988. }
  989. else {
  990. btn_cnfm.disabled = false;
  991. btn_cancnfm.disabled = true;
  992. btn_chfcnfm.disabled = true;
  993. btn_canchfcnfm.disabled = true;
  994. btn_save.disabled = false;
  995. return;
  996. }
  997. }
  998. else {
  999. btn_cnfm.disabled = false;
  1000. btn_cancnfm.disabled = true;
  1001. btn_chfcnfm.disabled = true;
  1002. btn_canchfcnfm.disabled = true;
  1003. btn_save.disabled = false;
  1004. }
  1005. ]]>
  1006. </script>
  1007. </button>
  1008. <line id="line82" class="line_4" style="x1:1115px; y1:10px; x2:1115px; y2:36px; border-color:#ffe4bb; border-left-style:solid; "/>
  1009. <select1 id="cmb_deptcd" ref="/root/send/schengdtdata/deptcd" class="combo_search" disabled="true" appearance="minimal" style="left:502px; top:14px; width:123px; height:19px; ">
  1010. <choices>
  1011. <itemset>
  1012. <label/>
  1013. <value/>
  1014. </itemset>
  1015. </choices>
  1016. </select1>
  1017. <caption id="cap_deptcd" class="search_name" style="left:430px; top:15px; width:75px; height:17px; ">임상과 :</caption>
  1018. <line id="line1" class="line_1" style="x1:0px; y1:65px; x2:1192px; y2:66px; "/>
  1019. <select1 id="cmb_instcd" ref="/root/send/schengdtdata/instcd" class="combo_s_essential" disabled="true" appearance="minimal" style="left:282px; top:14px; width:128px; height:19px; ">
  1020. <choices>
  1021. <itemset>
  1022. <label/>
  1023. <value/>
  1024. </itemset>
  1025. </choices>
  1026. <script type="javascript" ev:event="xforms-value-changed">
  1027. <![CDATA[
  1028. fAuthCheck();
  1029. initCalendar();
  1030. ]]>
  1031. </script>
  1032. </select1>
  1033. <caption id="cap_instcd" class="search_name" style="left:196px; top:15px; width:94px; height:17px; ">근무병원 :</caption>
  1034. <select1 id="cmb_apprtcdrflag" ref="/root/send/schengdtdata/apprtcdrflag" class="combo_s_essential" appearance="minimal" style="left:745px; top:15px; width:130px; height:19px; ">
  1035. <choices>
  1036. <itemset>
  1037. <label/>
  1038. <value/>
  1039. </itemset>
  1040. </choices>
  1041. </select1>
  1042. <caption id="cap_apprtcdrflag" class="search_name" style="left:644px; top:16px; width:99px; height:17px; ">전공의구분 :</caption>
  1043. <caption id="cap_psnnum" style="left:335px; top:43px; width:355px; height:20px; font-weight:bold; color:#0000ff; "/>
  1044. <caption id="caption4" class="search_name" style="left:893px; top:15px; width:57px; height:17px; ">사번:</caption>
  1045. <input id="ipt_emplnm" ref="/root/send/schengdtdata/emplnm" class="input_default" style="left:1045px; top:15px; width:65px; height:19px; ">
  1046. <script type="javascript" ev:event="onkeyup">
  1047. <![CDATA[
  1048. if (ipt_emplnm.currentText != null && ipt_emplnm.currentText != "" ) {
  1049. inputEnterKey("ipt_emplnm", "xforms-value-changed");
  1050. inputEnterKey("btn_search", "DOMActivate");
  1051. }
  1052. ]]>
  1053. </script>
  1054. <script type="javascript" ev:event="xforms-value-changed">
  1055. <![CDATA[
  1056. var recv_list = "emplno,emplnm" ;
  1057. rpbfValidationCheck("EMPLNM", recv_list);
  1058. model.refresh();
  1059. ]]>
  1060. </script>
  1061. </input>
  1062. <button id="btn_emplno" class="icon_search" style="left:1024px; top:15px; width:16px; height:16px; ">
  1063. <caption/>
  1064. <script type="javascript" ev:event="DOMActivate">
  1065. <![CDATA[
  1066. var recv_list = "emplno,emplnm";
  1067. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, recv_list,"ipt_systemflag","N");
  1068. model.refresh();
  1069. ]]>
  1070. </script>
  1071. </button>
  1072. <input id="ipt_emplno" ref="/root/send/schengdtdata/emplno" class="input_default" style="left:950px; top:15px; width:70px; height:19px; ">
  1073. <script type="javascript" ev:event="onkeyup">
  1074. <![CDATA[
  1075. if (ipt_emplno.currentText != null && ipt_emplno.currentText != "" ) {
  1076. inputEnterKey("ipt_emplno", "xforms-value-changed");
  1077. inputEnterKey("btn_search", "DOMActivate");
  1078. }
  1079. ]]>
  1080. </script>
  1081. <script type="javascript" ev:event="xforms-value-changed">
  1082. <![CDATA[
  1083. var recv_list = "emplno,emplnm" ;
  1084. rpbfValidationCheck("EMPLNO", recv_list);
  1085. model.refresh();
  1086. ]]>
  1087. </script>
  1088. </input>
  1089. <button id="btn_move1" class="btn2_letter2" style="left:5px; top:43px; width:183px; height:40px; text-align:center; ">
  1090. <caption>
  1091. <![CDATA[<<]]>
  1092. </caption>
  1093. <script type="javascript" ev:event="DOMActivate">
  1094. <![CDATA[
  1095. if (btn_move1.label == "<<") {
  1096. btn_move1.attribute("text") = ">>";
  1097. group3.visible = false;
  1098. grd_ngdtschelist.attribute("left") = "0px";
  1099. if (btn_move2.label == "<<") {
  1100. grd_ngdtschelist.attribute("width") = "1194px";
  1101. }
  1102. else {
  1103. grd_ngdtschelist.attribute("width") = "913px";
  1104. }
  1105. }
  1106. else {
  1107. group3.visible = true;
  1108. btn_move1.attribute("text") = "<<";
  1109. grd_ngdtschelist.attribute("left") = "245px";
  1110. if (btn_move2.label == "<<") {
  1111. grd_ngdtschelist.attribute("width") = "948px";
  1112. }
  1113. else {
  1114. grd_ngdtschelist.attribute("width") = "668px";
  1115. }
  1116. }
  1117. ]]>
  1118. </script>
  1119. </button>
  1120. <button id="btn_move2" class="btn2_letter2" style="left:1148px; top:43px; width:42px; height:19px; text-align:center; ">
  1121. <caption>
  1122. <![CDATA[>>]]>
  1123. </caption>
  1124. <script type="javascript" ev:event="DOMActivate">
  1125. <![CDATA[
  1126. if (btn_move2.label == ">>") {
  1127. btn_move2.attribute("text") = "<<";
  1128. group4.visible = false;
  1129. if (btn_move1.label == ">>") {
  1130. grd_ngdtschelist.attribute("width") = "1194px";
  1131. }
  1132. else {
  1133. grd_ngdtschelist.attribute("width") = "948px";
  1134. }
  1135. }
  1136. else {
  1137. group4.visible = true;
  1138. btn_move2.attribute("text") = ">>";
  1139. if (btn_move1.label == ">>") {
  1140. grd_ngdtschelist.attribute("width") = "913px";
  1141. }
  1142. else {
  1143. grd_ngdtschelist.attribute("width") = "668px";
  1144. }
  1145. }
  1146. ]]>
  1147. </script>
  1148. </button>
  1149. <button id="button8" class="btn5_letter4" visibility="hidden" style="left:778px; top:43px; width:64px; height:19px; text-align:center; ">
  1150. <caption>순번생성</caption>
  1151. <script type="javascript" ev:event="DOMActivate">
  1152. <![CDATA[
  1153. if (grd_ngdtschelist.row >= 3)
  1154. {
  1155. grd_ngdtschelist.valueMatrix(grd_ngdtschelist.row, grd_ngdtschelist.col) = "";
  1156. grd_ngdtschelist.rowStatus(grd_ngdtschelist.row) = 2;
  1157. grd_ngdtschelist.col += 1;
  1158. model.recalculate();
  1159. }
  1160. ]]>
  1161. </script>
  1162. </button>
  1163. <button id="btn_saveexcel" class="btn2_letter4" style="left:845px; top:43px; width:64px; height:19px; ">
  1164. <caption>엑셀저장</caption>
  1165. <script type="javascript" ev:event="DOMActivate">
  1166. <![CDATA[
  1167. var fileName = window.fileDialog ("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  1168. if (fileName != "")
  1169. {
  1170. grd_ngdtschelist.saveExcel(fileName, "sheetname:sheet1;colhiddenextend:true;rowhiddenextend:false;exportfalsecols:0,0;col_1:value;");
  1171. //grd_ngdtschelist.saveExcel(fileName);
  1172. }
  1173. ]]>
  1174. </script>
  1175. </button>
  1176. <input id="ipt_deptchfnm" ref="/root/main/deptchf/emplnm" class="input_default" disabled="true" style="left:153px; top:710px; width:70px; height:19px; ">
  1177. <script type="javascript" ev:event="onkeyup">
  1178. <![CDATA[
  1179. if (ipt_emplnm.currentText != null && ipt_emplnm.currentText != "" ) {
  1180. inputEnterKey("ipt_emplnm", "xforms-value-changed");
  1181. inputEnterKey("btn_search", "DOMActivate");
  1182. }
  1183. ]]>
  1184. </script>
  1185. <script type="javascript" ev:event="xforms-value-changed">
  1186. <![CDATA[
  1187. var recv_list = "emplno,emplnm" ;
  1188. rpbfValidationCheck("EMPLNM", recv_list);
  1189. model.refresh();
  1190. ]]>
  1191. </script>
  1192. </input>
  1193. <caption id="caption8" class="search_name" style="left:3px; top:710px; width:57px; height:17px; ">당월:</caption>
  1194. <button id="btn_deptchf" class="icon_search" disabled="true" style="left:132px; top:710px; width:16px; height:16px; ">
  1195. <caption/>
  1196. <script type="javascript" ev:event="DOMActivate">
  1197. <![CDATA[
  1198. var recv_list = "emplno,emplnm" ;
  1199. rpbfOpenPopUpList("SPRPB00101", ipt_emplno, recv_list,"","N");
  1200. model.refresh();
  1201. if (model.getValue(ipt_emplno.attribute("ref")).length > 0) {
  1202. btn_search.dispatch("DOMActivate");
  1203. }
  1204. ]]>
  1205. </script>
  1206. </button>
  1207. <input id="ipt_deptchf" ref="/root/main/deptchf/emplno" class="input_default" disabled="true" style="left:58px; top:710px; width:70px; height:19px; ">
  1208. <script type="javascript" ev:event="onkeyup">
  1209. <![CDATA[
  1210. if (ipt_emplno.currentText != null && ipt_emplno.currentText != "" ) {
  1211. inputEnterKey("ipt_emplno", "xforms-value-changed");
  1212. inputEnterKey("btn_search", "DOMActivate");
  1213. }
  1214. ]]>
  1215. </script>
  1216. <script type="javascript" ev:event="xforms-value-changed">
  1217. <![CDATA[
  1218. var recv_list = "emplno,emplnm" ;
  1219. rpbfValidationCheck("EMPLNO", recv_list);
  1220. model.refresh();
  1221. ]]>
  1222. </script>
  1223. </input>
  1224. <input id="ipt_nextemplnm" ref="/root/main/nextchf/emplnm" class="input_default" style="left:565px; top:710px; width:70px; height:19px; ">
  1225. <script type="javascript" ev:event="onkeyup">
  1226. <![CDATA[
  1227. if (ipt_nextemplnm.currentText != null && ipt_nextemplnm.currentText != "" ) {
  1228. inputEnterKey("ipt_nextemplnm", "xforms-value-changed");
  1229. }
  1230. ]]>
  1231. </script>
  1232. <script type="javascript" ev:event="xforms-value-changed">
  1233. <![CDATA[
  1234. var recv_list = "emplno,emplnm" ;
  1235. rpbfValidationCheck("EMPLNM", recv_list);
  1236. model.refresh();
  1237. ]]>
  1238. </script>
  1239. </input>
  1240. <input id="ipt_nextemplno" ref="/root/main/nextchf/emplno" class="input_default" style="left:470px; top:710px; width:70px; height:19px; ">
  1241. <script type="javascript" ev:event="onkeyup">
  1242. <![CDATA[
  1243. if (ipt_nextemplno.currentText != null && ipt_nextemplno.currentText != "" ) {
  1244. inputEnterKey("ipt_nextemplno", "xforms-value-changed");
  1245. }
  1246. ]]>
  1247. </script>
  1248. <script type="javascript" ev:event="xforms-value-changed">
  1249. <![CDATA[
  1250. var recv_list = "emplno,emplnm" ;
  1251. rpbfValidationCheck("EMPLNO", recv_list);
  1252. model.refresh();
  1253. ]]>
  1254. </script>
  1255. </input>
  1256. <button id="btn_nextemplno" class="icon_search" style="left:544px; top:710px; width:16px; height:16px; ">
  1257. <caption/>
  1258. <script type="javascript" ev:event="DOMActivate">
  1259. <![CDATA[
  1260. var recv_list = "emplno,emplnm";
  1261. rpbfOpenPopUpList("SPRPB00101", ipt_nextemplno, recv_list,"ipt_systemflag","N");
  1262. model.refresh();
  1263. ]]>
  1264. </script>
  1265. </button>
  1266. <caption id="caption9" class="search_name" style="left:413px; top:710px; width:57px; height:17px; ">익월:</caption>
  1267. <line id="line6" class="line_1" style="x1:0px; y1:700px; x2:910px; y2:701px; "/>
  1268. <caption id="caption10" class="tit_2" style="left:0px; top:683px; width:100px; height:15px; font-size:10pt; ">의국장</caption>
  1269. <output id="opt_phonno" ref="/root/main/deptchf/phonno" style="left:297px; top:710px; width:100px; height:19px; "/>
  1270. <caption id="caption13" class="search_name" style="left:228px; top:710px; width:69px; height:17px; ">휴대폰:</caption>
  1271. <caption id="caption14" class="search_name" style="left:641px; top:710px; width:69px; height:17px; ">휴대폰:</caption>
  1272. <output id="opt_mpphonno" ref="/root/main/nextchf/phonno" style="left:710px; top:710px; width:100px; height:19px; "/>
  1273. <line id="line8" class="line_1" style="x1:0px; y1:739px; x2:910px; y2:740px; "/>
  1274. <input id="ipt_systemflag" ref="/root/send/systemflag" visibility="hidden" style="left:920px; top:45px; width:30px; height:19px; "/>
  1275. <select id="chk_cnfmyn" ref="/root/main/nextchf/cnfmyn" overflow="visible" appearance="full" style="left:816px; top:710px; width:80px; height:20px; border-style:none; ">
  1276. <choices>
  1277. <item>
  1278. <label>미확정</label>
  1279. <value>Y</value>
  1280. </item>
  1281. </choices>
  1282. </select>
  1283. <select id="chk_inputyn" ref="/root/hidden/input/inputyn" overflow="visible" appearance="full" style="left:695px; top:45px; width:80px; height:20px; font-weight:bold; border-style:none; ">
  1284. <choices>
  1285. <item>
  1286. <label>직접입력</label>
  1287. <value>Y</value>
  1288. </item>
  1289. </choices>
  1290. </select>
  1291. <upload id="upload1" nodeset="/root/send/attach/file" ext="xls" filecount="5" filesize="41943040" validate="true" style="left:1002px; top:44px; width:20px; height:20px; "/>
  1292. <datagrid id="grd_attach" nodeset="/root/send/attach" class="datagrid1" visibility="hidden" caption="File Name^File Size" colsep="^" colwidth="403, 93" dataheight="23" ellipsis="true" focuscolor="#b9e5fb" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" style="left:605px; top:430px; width:505px; height:69px; ">
  1293. <col ref="file" style="text-align:center; "/>
  1294. <col ref="filesize" format="#,###" style="text-align:right; "/>
  1295. </datagrid>
  1296. <button id="btn_delqest" class="btn2_letter3" style="left:788px; top:43px; width:53px; height:19px; ">
  1297. <caption>행삭제</caption>
  1298. <script type="javascript" ev:event="DOMActivate">
  1299. <![CDATA[
  1300. misfGridIUD(grd_ngdtschelist, "D");
  1301. ]]>
  1302. </script>
  1303. </button>
  1304. </group>
  1305. <group id="grp_btn" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  1306. <button id="btn_save" class="btn4_letter2" style="left:1130px; top:3px; width:56px; height:22px; text-align:left; ">
  1307. <caption>저장</caption>
  1308. <script type="javascript" ev:event="DOMActivate">
  1309. <![CDATA[
  1310. var retMes = messageBox("저장 하시겠습니까?", "Q999");
  1311. if ( retMes != 6) {
  1312. return;
  1313. }
  1314. model.setValue("/root/send/save/trngngdtschelist", grd_ngdtschelist.getUpdateData());
  1315. if (submit("TXRTS01201"))
  1316. {
  1317. grd_ngdtschelist.clearStatus();
  1318. }
  1319. ]]>
  1320. </script>
  1321. </button>
  1322. <button id="btn_cnfm" class="btn4_letter2" style="left:751px; top:3px; width:56px; height:22px; text-align:left; ">
  1323. <caption>확정</caption>
  1324. <script type="javascript" ev:event="DOMActivate">
  1325. <![CDATA[
  1326. var retMes = messageBox("확정 하시겠습니까?", "Q999");
  1327. if ( retMes != 6) {
  1328. return;
  1329. }
  1330. if (ipt_nextemplno.value == null || ipt_nextemplno.value == "" ) {
  1331. if (chk_cnfmyn.value == "Y") {
  1332. model.setValue("/root/send/trngcnfm/emplno", "-");
  1333. }
  1334. else {
  1335. messageBox("다음달 의국장을 입력하십시요.아직 확정이 되지 않았으면 미확정에 체크 하세요!!!.","");
  1336. return;
  1337. }
  1338. }
  1339. else {
  1340. model.setValue("/root/send/trngcnfm/emplno", ipt_nextemplno.value);
  1341. }
  1342. model.setValue("/root/send/trngcnfm/instcd", cmb_instcd.value);
  1343. model.setValue("/root/send/trngcnfm/deptcd", cmb_deptcd.value);
  1344. model.setValue("/root/send/trngcnfm/ngdtym", ipt_ngdtym.value);
  1345. model.setValue("/root/send/trngcnfm/trngcnfmyn", "Y");
  1346. if (submit("TXRTS01202"))
  1347. {
  1348. btn_search.dispatch("DOMActivate");
  1349. }
  1350. ]]>
  1351. </script>
  1352. </button>
  1353. <button id="btn_cancnfm" class="btn4_letter4" style="left:811px; top:3px; width:80px; height:22px; text-align:left; ">
  1354. <caption>확정취소</caption>
  1355. <script type="javascript" ev:event="DOMActivate">
  1356. <![CDATA[
  1357. var retMes = messageBox("확정 취소 하시겠습니까?", "Q999");
  1358. if ( retMes != 6) {
  1359. return;
  1360. }
  1361. model.setValue("/root/send/trngcnfm/emplno", "");
  1362. model.setValue("/root/send/trngcnfm/instcd", cmb_instcd.value);
  1363. model.setValue("/root/send/trngcnfm/deptcd", cmb_deptcd.value);
  1364. model.setValue("/root/send/trngcnfm/ngdtym", ipt_ngdtym.value);
  1365. model.setValue("/root/send/trngcnfm/trngcnfmyn", "N");
  1366. if (submit("TXRTS01202"))
  1367. {
  1368. btn_search.dispatch("DOMActivate");
  1369. }
  1370. ]]>
  1371. </script>
  1372. </button>
  1373. <button id="btn_chfcnfm" class="btn4_letter6" style="left:894px; top:3px; width:104px; height:22px; text-align:left; ">
  1374. <caption>임상과장확정</caption>
  1375. <script type="javascript" ev:event="DOMActivate">
  1376. <![CDATA[
  1377. var retMes = messageBox("저장 하시겠습니까?", "Q999");
  1378. if ( retMes != 6) {
  1379. return;
  1380. }
  1381. model.setValue("/root/send/save", grd_ngdtschelist.getUpdateData("update"));
  1382. if (submit("TXRTS01201"))
  1383. {
  1384. grd_ngdtschelist.clearStatus();
  1385. }
  1386. ]]>
  1387. </script>
  1388. </button>
  1389. <button id="btn_canchfcnfm" class="btn4_letter8" style="left:999px; top:3px; width:128px; height:22px; text-align:left; ">
  1390. <caption>임상과장확정취소</caption>
  1391. <script type="javascript" ev:event="DOMActivate">
  1392. <![CDATA[
  1393. var retMes = messageBox("저장 하시겠습니까?", "Q999");
  1394. if ( retMes != 6) {
  1395. return;
  1396. }
  1397. model.setValue("/root/send/save", grd_ngdtschelist.getUpdateData("update"));
  1398. if (submit("TXRTS01201"))
  1399. {
  1400. grd_ngdtschelist.clearStatus();
  1401. }
  1402. ]]>
  1403. </script>
  1404. </button>
  1405. </group>
  1406. <button id="button3" class="btn5_letter6" style="left:245px; top:80px; width:86px; height:19px; ">
  1407. <caption>엑셀Upload</caption>
  1408. <script type="javascript" ev:event="DOMActivate">
  1409. <![CDATA[
  1410. /*
  1411. if ( !isRequiredControls("ipt_ngdtym", "cmb_instcd") ) {
  1412. return false;
  1413. }*/
  1414. fExcelUpload();
  1415. btn_search.dispatch("DOMActivate");
  1416. model.refresh();
  1417. ]]>
  1418. </script>
  1419. </button>
  1420. </xhtml:body>
  1421. </xhtml:html>