SMRPD30800_전공의수련현황표New.xfdl 92 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD30800" position="absolute 0 0 1200 812" titletext="전공의 수련 현황표 New" oninit="SMRPD30800_oninit" onload="SMRPD30800_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="전공의 수련현황표 (신)" class="tit_1" position="absolute 0 0 293 23"/>
  8. <Button id="btn_print" taborder="1" text="수련현황표 출력" class="btn6" position="absolute 810 25 930 47" anchor="top right" onclick="btn_print_onclick"/>
  9. <Button id="btn_print2" taborder="2" text="과별 당직명단 출력" class="btn6" position="absolute 668 25 803 47" anchor="top right" onclick="btn_print2_onclick"/>
  10. <Button id="btn_delete" taborder="3" text="삭제" class="btn4" position="absolute 940 25 996 47" anchor="top right" onclick="btn_delete_onclick"/>
  11. <Button id="btn_save" taborder="4" text="저장" class="btn4" position="absolute 998 25 1054 47" anchor="top right" onclick="btn_save_onclick"/>
  12. <Button id="btn_send" taborder="5" text="확정" class="btn4" position="absolute 1056 25 1112 47" anchor="top right" onclick="btn_send_onclick"/>
  13. <Button id="btn_sendCancel" taborder="6" text="확정취소" class="btn4" position="absolute 1114 25 1194 47" anchor="top right" onclick="btn_sendCancel_onclick"/>
  14. <Shape id="line2" class="line_6" position="absolute 0 46 1194 52" anchor="left top right"/>
  15. <Div id="grp_sea" taborder="7" class="div_SA2" position="absolute 0 51 1194 91" anchor="left top right">
  16. <Layouts>
  17. <Layout>
  18. <Shape id="line5" linetype="vertical" class="line_4" position="absolute 1071 8 1077 32" anchor="top right"/>
  19. <Button id="btn_search" taborder="6" text="조회" class="btn1" position="absolute 1094 9 1150 31" anchor="top right" onclick="grp_sea_btn_search_onclick"/>
  20. <Edit id="opt_deptnm" taborder="7" readonly="true" position="absolute 616 10 806 29" autoselect="true" autoskip="true" class="output"/>
  21. <Static id="caption1" text="부서코드" class="search_name" position="absolute 450 11 518 28"/>
  22. <Edit id="ipt_deptcd" taborder="8" class="input_default" position="absolute 521 10 596 29" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_deptcd_onkeydown"/>
  23. <Button id="btn_deptcd" taborder="9" class="icon_search" position="absolute 598 11 614 27" onclick="grp_sea_btn_deptcd_onclick"/>
  24. <Static id="caption9" text="근무년월" class="search_name" position="absolute 279 11 343 28"/>
  25. <Button id="btn_emplnos" taborder="10" class="icon_search" position="absolute 932 11 948 27" onclick="grp_sea_btn_emplnos_onclick"/>
  26. <Static id="caption2" text="사번" class="search_name" position="absolute 827 11 875 28"/>
  27. <Edit id="ipt_emplnos" taborder="11" class="input_default" position="absolute 873 10 929 29" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_emplnos_onkeydown"/>
  28. <Edit id="ipt_emplnms" taborder="12" class="input_default" position="absolute 949 10 1055 29" autoselect="true" autoskip="true" onkeydown="grp_sea_ipt_emplnms_onkeydown"/>
  29. <Calendar id="ipt_ym" taborder="13" class="input_default" position="absolute 351 10 429 29" mask="yyyy-mm" autoselect="true" autoskip="true" dateformat="yyyy-MM" value="null" editformat="yyyy-MM" onchanged="grp_sea_ipt_ym_onchanged"/>
  30. <Combo id="cmb_instcd" taborder="14" class="combo_s_default" enable="false" position="absolute 114 10 256 29" onitemchanged="grp_sea_cmb_instcd_onitemchanged"/>
  31. <Static id="caption29" text="기관코드" class="search_name" position="absolute 33 11 109 28"/>
  32. </Layout>
  33. </Layouts>
  34. </Div>
  35. <Shape id="line3" class="line_10" position="absolute 0 118 370 124" anchor="left top"/>
  36. <Static id="caption21" text="대상 목록" class="tit_2" position="absolute 0 102 80 124" anchor="left top"/>
  37. <Grid id="grd_emplist" taborder="8" binddataset="ds_main_emplist" autoenter="select" useinputpanel="false" cellsizingtype="col" autofittype="col" position="absolute 0 123 370 677" anchor="left top bottom" oncellclick="grd_emplist_oncellclick">
  38. <Formats>
  39. <Format id="default">
  40. <Columns>
  41. <Column size="22"/>
  42. <Column size="51"/>
  43. <Column size="65"/>
  44. <Column size="45"/>
  45. <Column size="108"/>
  46. <Column size="118"/>
  47. <Column size="0"/>
  48. <Column size="0"/>
  49. <Column size="0"/>
  50. </Columns>
  51. <Rows>
  52. <Row size="24" band="head"/>
  53. <Row size="24"/>
  54. </Rows>
  55. <Band id="head">
  56. <Cell/>
  57. <Cell col="1" text="사번"/>
  58. <Cell col="2" text="성명"/>
  59. <Cell col="3" text="년차"/>
  60. <Cell col="4" text="부서"/>
  61. <Cell col="5" text="처리상태"/>
  62. <Cell col="6" text="직종"/>
  63. <Cell col="7" text="procstat"/>
  64. <Cell col="8" text="deptcd"/>
  65. </Band>
  66. <Band id="body">
  67. <Cell celltype="head" expr="expr:currow == ds_main_emplist.rowposition ? '▶' : ''"/>
  68. <Cell col="1" text="bind:emplno"/>
  69. <Cell col="2" text="bind:emplnm"/>
  70. <Cell col="3" text="bind:anual"/>
  71. <Cell col="4" style="align:left middle;padding:2 2 2 2;" text="bind:deptnm"/>
  72. <Cell col="5" text="bind:procstatnm"/>
  73. <Cell col="6" text="bind:jobkindnm"/>
  74. <Cell col="7" text="bind:procstat"/>
  75. <Cell col="8" text="bind:deptcd"/>
  76. </Band>
  77. </Format>
  78. <Format id="format_copy"/>
  79. </Formats>
  80. </Grid>
  81. <Grid id="grd_dutlist" taborder="9" binddataset="ds_main_dutlist" autoenter="select" useinputpanel="false" cellsizingtype="col" position="absolute 375 123 1050 677" anchor="all" oncellclick="grd_dutlist_oncellclick" onkeydown="grd_dutlist_onkeydown" selecttype="cell">
  82. <Formats>
  83. <Format id="default">
  84. <Columns>
  85. <Column size="24" band="left"/>
  86. <Column size="32" band="left"/>
  87. <Column size="32" band="left"/>
  88. <Column size="114" band="left"/>
  89. <Column size="114" band="left"/>
  90. <Column size="56"/>
  91. <Column size="56"/>
  92. <Column size="50"/>
  93. <Column size="56"/>
  94. <Column size="53"/>
  95. <Column size="56"/>
  96. <Column size="56"/>
  97. <Column size="56"/>
  98. <Column size="0"/>
  99. <Column size="56"/>
  100. <Column size="0"/>
  101. <Column size="76"/>
  102. <Column size="0"/>
  103. <Column size="56"/>
  104. <Column size="0"/>
  105. <Column size="0"/>
  106. <Column size="0"/>
  107. <Column size="0"/>
  108. <Column size="0"/>
  109. <Column size="0"/>
  110. <Column size="0"/>
  111. <Column size="0"/>
  112. <Column size="0"/>
  113. <Column size="110"/>
  114. <Column size="110"/>
  115. <Column size="110"/>
  116. <Column size="110"/>
  117. </Columns>
  118. <Rows>
  119. <Row size="24" band="head"/>
  120. <Row size="24"/>
  121. <Row size="24" band="summ"/>
  122. </Rows>
  123. <Band id="head">
  124. <Cell/>
  125. <Cell col="1" text="일자"/>
  126. <Cell col="2" text="요일"/>
  127. <Cell col="3" text="주간"/>
  128. <Cell col="4" text="야간"/>
  129. <Cell col="5" text="주간수련"/>
  130. <Cell col="6" text="야간수련"/>
  131. <Cell col="7" text="학회"/>
  132. <Cell col="8" text="수련시간"/>
  133. <Cell col="9" text="총시간"/>
  134. <Cell col="10" text="연속근무"/>
  135. <Cell col="11" text="당직일수"/>
  136. <Cell col="12" text="의국장"/>
  137. <Cell col="13" text="의국장확인"/>
  138. <Cell col="14" text="임상과장"/>
  139. <Cell col="15" text="과장승인"/>
  140. <Cell col="16" text="교육수련"/>
  141. <Cell col="17" text="교육수련확인"/>
  142. <Cell col="18" text="수련실장"/>
  143. <Cell col="19" text="최종승인"/>
  144. <Cell col="20" text="instcd"/>
  145. <Cell col="21" text="dutdd"/>
  146. <Cell col="22" text="emplno"/>
  147. <Cell col="23" text="holiflag"/>
  148. <Cell col="24" text="workflag"/>
  149. <Cell col="25" text="procstat"/>
  150. <Cell col="26" text="realhrd"/>
  151. <Cell col="27" text="realhrn"/>
  152. <Cell col="28" text="주간시작"/>
  153. <Cell col="29" text="주간종료"/>
  154. <Cell col="30" text="야간시작"/>
  155. <Cell col="31" text="야간종료"/>
  156. </Band>
  157. <Band id="body">
  158. <Cell celltype="head"/>
  159. <Cell col="1" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:dd"/>
  160. <Cell col="2" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');color:EXPR(holiflag != '8' ? 'red' : '');color2:EXPR(holiflag != '8' ? 'red' : '');font:EXPR(holiflag != '8' ? 'arial,9,bold' : '');" text="bind:day"/>
  161. <Cell col="3" displaytype="combo" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');font:arial,9,bold;" text="bind:duttyped" combodataset="ds_init_duttype_codelist" combocodecol="cdid" combodatacol="cdnm" enable="false"/>
  162. <Cell col="4" displaytype="combo" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');font:arial,9,bold;" text="bind:duttypen" combodataset="ds_init_duttype_codelist" combocodecol="cdid" combodatacol="cdnm" enable="false"/>
  163. <Cell col="5" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:duthrd"/>
  164. <Cell col="6" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:duthrn"/>
  165. <Cell col="7" displaytype="text" edittype="text" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:conftm" editautoselect="true"/>
  166. <Cell col="8" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:conthr"/>
  167. <Cell col="9" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:realhr"/>
  168. <Cell col="10" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');font:arial,9,bold;" text="bind:contrealhr"/>
  169. <Cell col="11" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:ndcnt"/>
  170. <Cell col="12" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvpsn1"/>
  171. <Cell col="13" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvdd1" mask="yyyy-mm-dd"/>
  172. <Cell col="14" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvpsn2"/>
  173. <Cell col="15" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvdd2" mask="yyyy-mm-dd"/>
  174. <Cell col="16" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvpsn3"/>
  175. <Cell col="17" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvdd3" mask="yyyy-mm-dd"/>
  176. <Cell col="18" style="align:center middle;background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvpsn4"/>
  177. <Cell col="19" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:aprvdd4" mask="yyyy-mm-dd"/>
  178. <Cell col="20" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:instcd"/>
  179. <Cell col="21" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:dutdd"/>
  180. <Cell col="22" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:emplno"/>
  181. <Cell col="23" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:holiflag"/>
  182. <Cell col="24" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:workflag"/>
  183. <Cell col="25" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:procstat"/>
  184. <Cell col="26" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:realhrd"/>
  185. <Cell col="27" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:realhrn"/>
  186. <Cell col="28" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:dayfromdd" mask="expr:utlf_isNull(dayfromdd) ? '' : '####-##-## ##:##'"/>
  187. <Cell col="29" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:daytodd" mask="expr:utlf_isNull(daytodd) ? '' : '####-##-## ##:##'"/>
  188. <Cell col="30" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:ngtfromdd" mask="expr:utlf_isNull(ngtfromdd) ? '' : '####-##-## ##:##'"/>
  189. <Cell col="31" style="background:EXPR(holiflag != '8' ? '#faeefa' : '');background2:EXPR(holiflag != '8' ? '#faeefa' : '');" text="bind:ngttodd" mask="expr:utlf_isNull(ngttodd) ? '' : '####-##-## ##:##'"/>
  190. </Band>
  191. <Band id="summary">
  192. <Cell celltype="head"/>
  193. <Cell col="1" style="align:center middle;background:#ffff99ff;background2:#ffff99ff;" text="합계"/>
  194. <Cell col="2" style="background:#ffff99ff;background2:#ffff99ff;"/>
  195. <Cell col="3" style="background:#ffff99ff;background2:#ffff99ff;"/>
  196. <Cell col="4" style="background:#ffff99ff;background2:#ffff99ff;"/>
  197. <Cell col="5" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('duthrd')"/>
  198. <Cell col="6" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('duthrn')"/>
  199. <Cell col="7" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('conftm')"/>
  200. <Cell col="8" displaytype="normal" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('conthr')"/>
  201. <Cell col="9" displaytype="normal" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('realhr')"/>
  202. <Cell col="10" style="background:#ffff99ff;background2:#ffff99ff;"/>
  203. <Cell col="11" style="background:#ffff99ff;background2:#ffff99ff;" expr="expr:getSum('ndcnt')"/>
  204. <Cell col="12" style="background:#ffff99ff;background2:#ffff99ff;"/>
  205. <Cell col="13" style="background:#ffff99ff;background2:#ffff99ff;"/>
  206. <Cell col="14" style="background:#ffff99ff;background2:#ffff99ff;"/>
  207. <Cell col="15" style="background:#ffff99ff;background2:#ffff99ff;"/>
  208. <Cell col="16" style="background:#ffff99ff;background2:#ffff99ff;"/>
  209. <Cell col="17" style="background:#ffff99ff;background2:#ffff99ff;"/>
  210. <Cell col="18" style="background:#ffff99ff;background2:#ffff99ff;"/>
  211. <Cell col="19"/>
  212. <Cell col="20"/>
  213. <Cell col="21"/>
  214. <Cell col="22"/>
  215. <Cell col="23"/>
  216. <Cell col="24"/>
  217. <Cell col="25"/>
  218. <Cell col="26"/>
  219. <Cell col="27"/>
  220. <Cell col="28" style="background:#ffff99ff;background2:#ffff99ff;"/>
  221. <Cell col="29" style="background:#ffff99ff;background2:#ffff99ff;"/>
  222. <Cell col="30" style="background:#ffff99ff;background2:#ffff99ff;"/>
  223. <Cell col="31" style="background:#ffff99ff;background2:#ffff99ff;"/>
  224. </Band>
  225. </Format>
  226. </Formats>
  227. </Grid>
  228. <Shape id="line1" class="line_10" position="absolute 375 118 1050 124" anchor="left top right"/>
  229. <Static id="caption3" text="개인 수련현황" class="tit_2" position="absolute 375 102 493 124" anchor="left top"/>
  230. <Static id="caption22" text=" - 야간당직시간 19:00~익일07:00(휴게시간 12:00~03:00, 05:30~06:30)" position="absolute 5 709 849 729" style="color:#993300ff;" anchor="left bottom"/>
  231. <Static id="caption23" text="※ 처리 절차" position="absolute 5 727 539 747" style="color:#993300ff;" anchor="left bottom"/>
  232. <Static id="caption24" text=" - 정규수련시간 07:00~19:00(휴게시간 07:30~08:30, 12:30~13:30, 17:30~18:30)" position="absolute 5 694 849 714" style="color:#993300ff;" anchor="left bottom"/>
  233. <Static id="caption25" text="※ 전공의 복무시간" position="absolute 5 678 849 698" style="color:#993300ff;" anchor="left bottom"/>
  234. <Static id="caption26" text=" - 인턴: 개인 자료입력 → 교육수련담당 확인,승인 → 교육수련실장 승인" position="absolute 5 742 812 770" style="color:#993300ff;" anchor="left bottom"/>
  235. <Static id="caption27" text="- 소아알레르기호흡기, 소아청소년내분비, 소아청소년소화기영양, 소아청소년신경, 소아청소년신장, 소아청소년심장, 소아청소년혈액종양, 신생아" position="absolute 20 759 827 787" style="color:#993300ff;" anchor="left bottom"/>
  236. <Grid id="grd_duttype" taborder="10" binddataset="ds_init_duttype_codelist" useinputpanel="false" position="absolute 1055 123 1197 677" anchor="top right bottom" oncelldblclick="grd_duttype_oncelldblclick">
  237. <Formats>
  238. <Format id="default">
  239. <Columns>
  240. <Column size="116"/>
  241. <Column size="0"/>
  242. <Column size="0"/>
  243. <Column size="0"/>
  244. <Column size="0"/>
  245. <Column size="0"/>
  246. </Columns>
  247. <Rows>
  248. <Row size="24" band="head"/>
  249. <Row size="24"/>
  250. </Rows>
  251. <Band id="head">
  252. <Cell text="근무명"/>
  253. <Cell col="1" text="근무코드"/>
  254. <Cell col="2" text="특수코드"/>
  255. <Cell col="3" text="시작시간"/>
  256. <Cell col="4" text="종료시간"/>
  257. <Cell col="5" text="useyn"/>
  258. </Band>
  259. <Band id="body">
  260. <Cell style="align:left middle;font:arial,9,bold;" text="bind:cdnm"/>
  261. <Cell col="1" text="bind:cdid"/>
  262. <Cell col="2" text="bind:cntlcd4"/>
  263. <Cell col="3" text="bind:cntlcd1"/>
  264. <Cell col="4" text="bind:cntlcd2"/>
  265. <Cell col="5" text="bind:useyn"/>
  266. </Band>
  267. </Format>
  268. </Formats>
  269. </Grid>
  270. <Shape id="line_duttype" class="line_10" position="absolute 1055 118 1197 124" anchor="top right"/>
  271. <Button id="btn_new" taborder="11" text="대상추가" class="btn2" position="absolute 305 99 369 118" anchor="left top" onclick="btn_new_onclick"/>
  272. <Static id="cap_batchset" text="※ 일괄 처리&#13;&#10; - 파견 : Shift + mouseClick&#13;&#10; - 분만 : Ctrl + mouseClick" position="absolute 884 681 1112 720" style="color:#0000ffff;" anchor="right bottom" visible="false"/>
  273. <Button id="btn_print3" taborder="12" text="인턴 당직명단 출력" class="btn6" position="absolute 527 25 662 47" anchor="top right" onclick="btn_print3_onclick"/>
  274. <Button id="btn_admcancel" taborder="13" text="강제승인취소" class="btn5" position="absolute 0 25 90 47" anchor="top right" visible="false" onclick="btn_admcancel_onclick"/>
  275. <Button id="btn_admconfirm" taborder="14" text="강제승인" class="btn5" visible="false" position="absolute 92 25 157 47" anchor="top right" onclick="btn_admconfirm_onclick"/>
  276. <Button id="btn_im" taborder="15" text="내과 도움말" class="btn3" visible="false" position="absolute 775 680 870 702" anchor="top right" onclick="btn_im_onclick"/>
  277. <Button id="btn_excel" taborder="16" text="엑셀다운" class="btn7" position="absolute 978 99 1052 118" anchor="left top" onclick="btn_excel_onclick"/>
  278. <Static id="caption00" text="- 당직일 출장,휴가,경조 등 발생시 반드시 당직변경 요청(본원/칠곡 전자결재 “전공의 당직변경, 취소신청서“ 양식 제출)" position="absolute 20 782 827 802" anchor="left bottom" style="color:#993300ff;"/>
  279. </Layout>
  280. </Layouts>
  281. <Objects>
  282. <Dataset id="ds_main_condition" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_condition_oncolumnchanged">
  283. <ColumnInfo>
  284. <Column id="instcd" type="STRING" size="256"/>
  285. <Column id="ym" type="STRING" size="256"/>
  286. <Column id="deptcd" type="STRING" size="256"/>
  287. <Column id="deptnm" type="STRING" size="256"/>
  288. <Column id="emplno" type="STRING" size="256"/>
  289. <Column id="emplnm" type="STRING" size="256"/>
  290. <Column id="powertp" type="STRING" size="256"/>
  291. <Column id="fromdd" type="STRING" size="256"/>
  292. <Column id="todd" type="STRING" size="256"/>
  293. </ColumnInfo>
  294. <Rows>
  295. <Row>
  296. <Col id="instcd"/>
  297. <Col id="ym"/>
  298. <Col id="deptcd"/>
  299. <Col id="deptnm"/>
  300. <Col id="emplno"/>
  301. <Col id="emplnm"/>
  302. <Col id="powertp"/>
  303. </Row>
  304. </Rows>
  305. </Dataset>
  306. <Dataset id="ds_main_emplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  307. <ColumnInfo>
  308. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  309. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  310. <Column id="anual" type="STRING" size="256" sumtext="년차"/>
  311. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종"/>
  312. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  313. <Column id="procstatnm" type="STRING" size="256" sumtext="처리상태"/>
  314. <Column id="procstat" type="STRING" size="256" sumtext="처리상태"/>
  315. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  316. </ColumnInfo>
  317. </Dataset>
  318. <Dataset id="ds_main_dutlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_dutlist_oncolumnchanged">
  319. <ColumnInfo>
  320. <Column id="dd" type="STRING" size="256" sumtext="일자"/>
  321. <Column id="day" type="STRING" size="256" sumtext="요일"/>
  322. <Column id="holiflag" type="STRING" size="256" sumtext="휴일구분"/>
  323. <Column id="workflag" type="STRING" size="256" sumtext="작업구분"/>
  324. <Column id="duttyped" type="STRING" size="256" sumtext="주간"/>
  325. <Column id="duttypen" type="STRING" size="256" sumtext="야간"/>
  326. <Column id="duthrd" type="STRING" size="256" sumtext="주간수련"/>
  327. <Column id="duthrn" type="STRING" size="256" sumtext="야간수련"/>
  328. <Column id="conthr" type="STRING" size="256" sumtext="연속근무시간"/>
  329. <Column id="ndcnt" type="STRING" size="256" sumtext="당직일수"/>
  330. <Column id="procstat" type="STRING" size="256" sumtext="진행상태"/>
  331. <Column id="aprvpsn1" type="STRING" size="256" sumtext="승인자1"/>
  332. <Column id="aprvdd1" type="STRING" size="256" sumtext="승인일시1"/>
  333. <Column id="aprvpsn2" type="STRING" size="256" sumtext="승인자2"/>
  334. <Column id="aprvdd2" type="STRING" size="256" sumtext="승인일시2"/>
  335. <Column id="aprvpsn3" type="STRING" size="256" sumtext="승인자3"/>
  336. <Column id="aprvdd3" type="STRING" size="256" sumtext="승인일시3"/>
  337. <Column id="aprvpsn4" type="STRING" size="256" sumtext="승인자4"/>
  338. <Column id="aprvdd4" type="STRING" size="256" sumtext="승인일시4"/>
  339. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  340. <Column id="dutdd" type="STRING" size="256" sumtext="근무일자"/>
  341. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  342. <Column id="pinstcd" type="STRING" size="256" sumtext="전자결재연동"/>
  343. <Column id="tranhr" type="STRING" size="256" sumtext="이월연속근무시간"/>
  344. <Column id="duttypednm" type="STRING" size="256" sumtext="주간"/>
  345. <Column id="duttypennm" type="STRING" size="256" sumtext="야간"/>
  346. <Column id="realhrd" type="STRING" size="256"/>
  347. <Column id="realhrn" type="STRING" size="256"/>
  348. <Column id="tranrealhr" type="STRING" size="256"/>
  349. <Column id="colBack9" type="STRING" size="256"/>
  350. </ColumnInfo>
  351. </Dataset>
  352. <Dataset id="ds_init_duttype_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  353. <ColumnInfo>
  354. <Column id="cdnm" type="STRING" size="256"/>
  355. <Column id="cdid" type="STRING" size="256"/>
  356. <Column id="cntlcd1" type="STRING" size="256"/>
  357. </ColumnInfo>
  358. </Dataset>
  359. <Dataset id="ds_main_powerinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  360. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  361. <ColumnInfo>
  362. <Column id="instcd" type="STRING" size="256"/>
  363. <Column id="ym" type="STRING" size="256"/>
  364. <Column id="deptcd" type="STRING" size="256"/>
  365. <Column id="deptnm" type="STRING" size="256"/>
  366. <Column id="emplno" type="STRING" size="256"/>
  367. <Column id="emplnm" type="STRING" size="256"/>
  368. <Column id="powertp" type="STRING" size="256"/>
  369. <Column id="fromdd" type="STRING" size="256"/>
  370. <Column id="todd" type="STRING" size="256"/>
  371. <Column id="worktp" type="STRING" size="256"/>
  372. <Column id="cntlcd1" type="STRING" size="256"/>
  373. <Column id="addcode" type="STRING" size="256"/>
  374. </ColumnInfo>
  375. <Rows>
  376. <Row/>
  377. </Rows>
  378. </Dataset>
  379. <Dataset id="ds_main_dutinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  380. <Dataset id="ds_print2_print2list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  381. <ColumnInfo>
  382. <Column id="basedd" type="STRING" size="256" sumtext="근무일자"/>
  383. <Column id="day" type="STRING" size="256" sumtext="요일"/>
  384. <Column id="type" type="STRING" size="256" sumtext="유형"/>
  385. <Column id="anual" type="STRING" size="256" sumtext="연차"/>
  386. <Column id="empl" type="STRING" size="256" sumtext="사원"/>
  387. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  388. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  389. </ColumnInfo>
  390. </Dataset>
  391. <Dataset id="ds_print" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  392. <ColumnInfo>
  393. <Column id="emplno" type="STRING" size="256"/>
  394. <Column id="emplnm" type="STRING" size="256"/>
  395. <Column id="deptnm" type="STRING" size="256"/>
  396. <Column id="jobkindnm" type="STRING" size="256"/>
  397. <Column id="anual" type="STRING" size="256"/>
  398. <Column id="ym" type="STRING" size="256"/>
  399. </ColumnInfo>
  400. <Rows>
  401. <Row>
  402. <Col id="emplno"/>
  403. <Col id="emplnm"/>
  404. <Col id="deptnm"/>
  405. <Col id="jobkindnm"/>
  406. <Col id="anual"/>
  407. <Col id="ym"/>
  408. </Row>
  409. </Rows>
  410. </Dataset>
  411. <Dataset id="ds_print_dutlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  412. <ColumnInfo>
  413. <Column id="dd" type="STRING" size="256" sumtext="일자"/>
  414. <Column id="day" type="STRING" size="256" sumtext="요일"/>
  415. <Column id="holiflag" type="STRING" size="256" sumtext="휴일구분"/>
  416. <Column id="workflag" type="STRING" size="256" sumtext="작업구분"/>
  417. <Column id="duttyped" type="STRING" size="256" sumtext="주간"/>
  418. <Column id="duttypen" type="STRING" size="256" sumtext="야간"/>
  419. <Column id="duthrd" type="STRING" size="256" sumtext="주간수련"/>
  420. <Column id="duthrn" type="STRING" size="256" sumtext="야간수련"/>
  421. <Column id="conthr" type="STRING" size="256" sumtext="연속근무시간"/>
  422. <Column id="ndcnt" type="STRING" size="256" sumtext="당직일수"/>
  423. <Column id="procstat" type="STRING" size="256" sumtext="진행상태"/>
  424. <Column id="aprvpsn1" type="STRING" size="256" sumtext="승인자1"/>
  425. <Column id="aprvdd1" type="STRING" size="256" sumtext="승인일시1"/>
  426. <Column id="aprvpsn2" type="STRING" size="256" sumtext="승인자2"/>
  427. <Column id="aprvdd2" type="STRING" size="256" sumtext="승인일시2"/>
  428. <Column id="aprvpsn3" type="STRING" size="256" sumtext="승인자3"/>
  429. <Column id="aprvdd3" type="STRING" size="256" sumtext="승인일시3"/>
  430. <Column id="aprvpsn4" type="STRING" size="256" sumtext="승인자4"/>
  431. <Column id="aprvdd4" type="STRING" size="256" sumtext="승인일시4"/>
  432. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  433. <Column id="dutdd" type="STRING" size="256" sumtext="근무일자"/>
  434. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  435. <Column id="pinstcd" type="STRING" size="256" sumtext="전자결재연동"/>
  436. <Column id="tranhr" type="STRING" size="256" sumtext="이월연속근무시간"/>
  437. <Column id="duttypednm" type="STRING" size="256" sumtext="주간"/>
  438. <Column id="duttypennm" type="STRING" size="256" sumtext="야간"/>
  439. </ColumnInfo>
  440. </Dataset>
  441. <Dataset id="ds_print3_printlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  442. <ColumnInfo>
  443. <Column id="deptcd" type="STRING" size="256" sumtext="근무지"/>
  444. <Column id="rankseq" type="STRING" size="256" sumtext="출력순서"/>
  445. <Column id="day01" type="STRING" size="256" sumtext="근무자"/>
  446. <Column id="day02" type="STRING" size="256" sumtext="근무자"/>
  447. <Column id="day03" type="STRING" size="256" sumtext="근무자"/>
  448. <Column id="day04" type="STRING" size="256" sumtext="근무자"/>
  449. <Column id="day05" type="STRING" size="256" sumtext="근무자"/>
  450. <Column id="day06" type="STRING" size="256" sumtext="근무자"/>
  451. <Column id="day07" type="STRING" size="256" sumtext="근무자"/>
  452. <Column id="day08" type="STRING" size="256" sumtext="근무자"/>
  453. <Column id="day09" type="STRING" size="256" sumtext="근무자"/>
  454. <Column id="day10" type="STRING" size="256" sumtext="근무자"/>
  455. <Column id="day11" type="STRING" size="256" sumtext="근무자"/>
  456. <Column id="day12" type="STRING" size="256" sumtext="근무자"/>
  457. <Column id="day13" type="STRING" size="256" sumtext="근무자"/>
  458. <Column id="day14" type="STRING" size="256" sumtext="근무자"/>
  459. <Column id="day15" type="STRING" size="256" sumtext="근무자"/>
  460. <Column id="day16" type="STRING" size="256" sumtext="근무자"/>
  461. <Column id="day17" type="STRING" size="256" sumtext="근무자"/>
  462. <Column id="day18" type="STRING" size="256" sumtext="근무자"/>
  463. <Column id="day19" type="STRING" size="256" sumtext="근무자"/>
  464. <Column id="day20" type="STRING" size="256" sumtext="근무자"/>
  465. <Column id="day21" type="STRING" size="256" sumtext="근무자"/>
  466. <Column id="day22" type="STRING" size="256" sumtext="근무자"/>
  467. <Column id="day23" type="STRING" size="256" sumtext="근무자"/>
  468. <Column id="day24" type="STRING" size="256" sumtext="근무자"/>
  469. <Column id="day25" type="STRING" size="256" sumtext="근무자"/>
  470. <Column id="day26" type="STRING" size="256" sumtext="근무자"/>
  471. <Column id="day27" type="STRING" size="256" sumtext="근무자"/>
  472. <Column id="day28" type="STRING" size="256" sumtext="근무자"/>
  473. <Column id="day29" type="STRING" size="256" sumtext="근무자"/>
  474. <Column id="day30" type="STRING" size="256" sumtext="근무자"/>
  475. <Column id="day31" type="STRING" size="256" sumtext="근무자"/>
  476. </ColumnInfo>
  477. </Dataset>
  478. <Dataset id="ds_main_traninfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  479. <ColumnInfo>
  480. <Column id="tranhr" type="STRING" size="256"/>
  481. </ColumnInfo>
  482. </Dataset>
  483. <Dataset id="ds_temp_hidden_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  484. <ColumnInfo>
  485. <Column id="count" type="STRING" size="256" sumtext="실행건수"/>
  486. </ColumnInfo>
  487. </Dataset>
  488. </Objects>
  489. <Bind>
  490. <BindItem id="item0" compid="grp_sea.cmb_instcd" propid="value" datasetid="ds_main_condition" columnid="instcd"/>
  491. <BindItem id="item1" compid="grp_sea.ipt_ym" propid="value" datasetid="ds_main_condition" columnid="ym"/>
  492. <BindItem id="item2" compid="grp_sea.ipt_deptcd" propid="value" datasetid="ds_main_condition" columnid="deptcd"/>
  493. <BindItem id="item3" compid="grp_sea.opt_deptnm" propid="value" datasetid="ds_main_condition" columnid="deptnm"/>
  494. <BindItem id="item4" compid="grp_sea.ipt_emplnos" propid="value" datasetid="ds_main_condition" columnid="emplno"/>
  495. <BindItem id="item5" compid="grp_sea.ipt_emplnms" propid="value" datasetid="ds_main_condition" columnid="emplnm"/>
  496. </Bind>
  497. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  498. * System Name :
  499. * Job Name :
  500. * Creator :
  501. * Make Date : 2017-06-19
  502. * Description :
  503. *---------------------------------------------------------------------------------------
  504. * Modify Date Modifier Modify Description
  505. *---------------------------------------------------------------------------------------
  506. * 2017-06-19 Live Converter TF->XP
  507. *
  508. *---------------------------------------------------------------------------------------
  509. ****************************************************************************************/
  510. include "com_commonxp::comm_main.xjs";
  511. include "mis_miscommonxp::MIS.xjs";
  512. include "mis_humtrafactmngtxp::RPB001.xjs";
  513. var arErrorCode = new HashArray();
  514. function SMRPD30800_oninit(obj:Form, e:InitEventInfo)
  515. {
  516. frmf_initForm(obj);
  517. }
  518. function SMRPD30800_onload(obj:Form, e:LoadEventInfo)
  519. {
  520. grdf_initGrid(grd_emplist);
  521. grdf_initGrid(grd_dutlist);
  522. grdf_setRowTypeIcon(grd_dutlist, 0);
  523. grdf_initGrid(grd_duttype);
  524. fOpenForm();
  525. }
  526. function fOpenForm()
  527. {
  528. misfComboInstCdListMulti("grp_sea.cmb_instcd", utlf_getCurrentDate(),"","N");
  529. grp_sea.cmb_instcd.value = sysf_getUserInfo("dutplceinstcd");
  530. ds_main_emplist.clearData();
  531. ds_main_dutlist.clearData();
  532. ds_main_condition.setColumn(0, "ym", String(utlf_getCurrentDate()).substr(0, 6));
  533. // var oParam = {};
  534. // oParam.id = "TRRPD30803";
  535. // oParam.service = "dligclaznsmngtapp.DutScheMngt";
  536. // oParam.method = "reqGetDuttypeListNew";
  537. // oParam.inds = "req=ds_main_condition";
  538. // oParam.outds = "ds_init_duttype_codelist=codelist";
  539. // oParam.async = false;
  540. // //oParam.callback = "cf_TRRPD30803";
  541. //
  542. // tranf_submit(oParam);
  543. var sUsrDeptcd = sysf_getUserInfo("dutplcecd");
  544. fGetCode(sUsrDeptcd);
  545. if(sUsrDeptcd == "2010000000"){
  546. frmf_open("SMRPD30801", "SMRPD30801", null, null, 1, 200, 200, 700, 600, null, null, null, "M"); //주메인
  547. }
  548. var oParam = {};
  549. oParam.id = "TRRPD30305";
  550. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  551. oParam.method = "reqGetDutyPowerInfo";
  552. oParam.inds = "req=ds_main_condition";
  553. oParam.outds = "ds_main_powerinfo=powerinfo";
  554. oParam.async = false;
  555. oParam.callback = "cf_TRRPD30305";
  556. tranf_submit(oParam);
  557. fGetEmpList();
  558. }
  559. function cf_TRRPD30305(sSvcId, nErrorCode, sErrorMsg)
  560. {
  561. if(nErrorCode < 0)
  562. {
  563. return;
  564. }
  565. else
  566. {
  567. var powertp = ds_main_powerinfo.getColumn(0, "powertp");
  568. ds_main_condition.setColumn(0, "powertp", powertp);
  569. if(utlf_isNull(powertp))
  570. {
  571. grp_sea.ipt_emplnos.value = sysf_getUserInfo("userid");
  572. grp_sea.ipt_emplnms.value = sysf_getUserInfo("usernm");
  573. grp_sea.ipt_emplnos.enable = false;
  574. grp_sea.btn_emplnos.enable = false;
  575. grp_sea.ipt_emplnos.enable = false;
  576. btn_new.enable = true;
  577. btn_delete.enable = true;
  578. btn_save.enable = true;
  579. btn_send.text = "제출";
  580. btn_sendCancel.text = "";
  581. btn_sendCancel.enable = false;
  582. btn_print2.visible = false;
  583. btn_print3.visible = false;
  584. }
  585. else if(powertp == "1")
  586. {
  587. grp_sea.ipt_deptcd.value = ds_main_powerinfo.getColumn(0, "deptcd");
  588. grp_sea.opt_deptnm.value = ds_main_powerinfo.getColumn(0, "deptnm");
  589. grp_sea.ipt_deptcd.enable = false;
  590. grp_sea.btn_deptcd.enable = false;
  591. btn_new.enable = true;
  592. btn_delete.enable = true;
  593. btn_save.enable = true;
  594. btn_send.text = "확인";
  595. btn_sendCancel.text = "";
  596. btn_sendCancel.enable = false;
  597. btn_print3.visible = false;
  598. }
  599. else if(powertp == "2")
  600. {
  601. grp_sea.ipt_deptcd.value = ds_main_powerinfo.getColumn(0, "deptcd");
  602. grp_sea.opt_deptnm.value = ds_main_powerinfo.getColumn(0, "deptnm");
  603. grp_sea.ipt_deptcd.enable = false;
  604. grp_sea.btn_deptcd.enable = false;
  605. btn_new.enable = false;
  606. btn_delete.enable = false;
  607. btn_save.enable = false;
  608. btn_send.text = "승인";
  609. btn_sendCancel.text = "";
  610. btn_sendCancel.enable = false;
  611. btn_print3.visible = false;
  612. }
  613. else if(powertp == "3")
  614. {
  615. btn_new.enable = true;
  616. btn_delete.enable = true;
  617. btn_save.enable = true;
  618. btn_sendCancel.enable = true;
  619. btn_admconfirm.visible = true;
  620. btn_admcancel.visible = true;
  621. btn_send.text = "확인";
  622. btn_sendCancel.text = "확인취소";
  623. if(sysf_getUserInfo("dutplceinstcd") == "031")
  624. {
  625. grp_sea.cmb_instcd.enable = true;
  626. }
  627. cap_batchset.visible = true;
  628. }
  629. else if(powertp == "4")
  630. {
  631. btn_new.enable = false;
  632. btn_delete.enable = false;
  633. btn_save.enable = false;
  634. btn_send.text = "승인";
  635. btn_sendCancel.text = "승인취소";
  636. }
  637. }
  638. }
  639. function fGetEmpList()
  640. {
  641. if(String(ds_main_condition.getColumn(0, "ym")).length != 6 )
  642. {
  643. sysf_messageBox("근무년월을 정확하게 입력하십시요. ", "E999", "");
  644. grp_sea.ipt_ym.setFocus();
  645. return;
  646. }
  647. grp_sea.ipt_deptcd.value = String(grp_sea.ipt_deptcd.value).getTrim();
  648. grp_sea.ipt_emplnos.value = String(grp_sea.ipt_emplnos.value).getTrim();
  649. ds_main_emplist.clearData();
  650. ds_main_dutlist.clearData();
  651. ds_send.copyData(ds_main_condition);
  652. ds_send.clearData();
  653. ds_send.addRow();
  654. ds_send.copyRow(0, ds_main_condition, 0);
  655. if(sysf_getUserInfo("dutplceinstcd") == "032")
  656. {
  657. var sDeptcd = grp_sea.ipt_deptcd.value;
  658. if( sDeptcd == "2110500000" || sDeptcd == "2112300000" || sDeptcd == "2112400000" || sDeptcd == "2112500000" ||
  659. sDeptcd == "2112600000" || sDeptcd == "2112700000" || sDeptcd == "2112800000" || sDeptcd == "2112900000" )
  660. {
  661. ds_send.setColumn(0, "deptcd", "2110000000");
  662. }
  663. }
  664. var oParam = {};
  665. oParam.id = "TRRPD30801";
  666. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  667. oParam.method = "reqGetDutyEmpListNew";
  668. oParam.inds = "req=ds_send";
  669. oParam.outds = "ds_main_emplist=emplist";
  670. oParam.async = false;
  671. //oParam.callback = "cf_TRRPD30801";
  672. tranf_submit(oParam);
  673. }
  674. function fGetCode(sDeptcd)
  675. {
  676. if ( sDeptcd == "2010000000"){ // 내과면 모든 코드 보여주기
  677. dsf_makeValue(ds_send, "cntlcd1", "string", "IM");
  678. btn_im.visible = true;
  679. }else if(sDeptcd == "4110200000"){ // 인턴(교육수련실) 이면 EN(응급N수련) 추가 (요청이 많아지면 기준자료 관리 필요)
  680. dsf_makeValue(ds_send, "addcode", "string", "EN");
  681. btn_im.visible = false;
  682. }else{ // 내과가 아니면 내과만 사용하는 코드 삭제해서 보여주기
  683. ds_send.setColumn(0, "cntlcd1", "");
  684. btn_im.visible = false;
  685. }
  686. var oParam = {};
  687. oParam.id = "TRRPD30803";
  688. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  689. oParam.method = "reqGetDuttypeListNew";
  690. oParam.inds = "req=ds_send";
  691. oParam.outds = "ds_init_duttype_codelist=codelist";
  692. oParam.async = false;
  693. oParam.callback = "cf_TRRPD30803";
  694. tranf_submit(oParam);
  695. if (arErrorCode.pop("TRRPD30803") > -1) {
  696. dsf_makeValue(ds_send, "cntlcd1", "string", "");
  697. if ( sDeptcd == "2010000000"){ // 내과가 과거에 사용했거나, 공용으로 사용하는 수련(TR) 코드가 내과일때는 보이지 않도록.
  698. ds_init_duttype_codelist.enableevent = false;
  699. ds_init_duttype_codelist.updatecontrol = false;
  700. for(var i = 0; i < ds_init_duttype_codelist.rowcount; i++) {
  701. if(ds_init_duttype_codelist.getColumn(i, "useyn") != "Y" ){
  702. ds_init_duttype_codelist.deleteRow(i);
  703. }
  704. }
  705. ds_init_duttype_codelist.updatecontrol = true;
  706. ds_init_duttype_codelist.enableevent = true;
  707. }
  708. }
  709. }
  710. function cf_TRRPD30803(sSvcId, nErrorCode, sErrorMsg) {
  711. arErrorCode.push(sSvcId, nErrorCode);
  712. }
  713. function grp_sea_cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  714. {
  715. misfGridInit(grd_emplist);
  716. misfGridInit(grd_dutlist);
  717. if(grp_sea.cmb_instcd.value == sysf_getUserInfo("dutplceinstcd"))
  718. {
  719. btn_new.visible = true;
  720. btn_delete.visible = true;
  721. btn_save.visible = true;
  722. btn_send.visible = true;
  723. btn_sendCancel.visible = true;
  724. grd_duttype.visible = true;
  725. line_duttype.visible = true;
  726. }
  727. else
  728. {
  729. btn_new.visible = false;
  730. btn_delete.visible = false;
  731. btn_save.visible = false;
  732. btn_send.visible = false;
  733. btn_sendCancel.visible = false;
  734. grd_duttype.visible = false;
  735. line_duttype.visible = false;
  736. }
  737. }
  738. function grp_sea_ipt_ym_onchanged(obj:Calendar, e:ChangeEventInfo)
  739. {
  740. var date = String(obj.value).substr(0,6);
  741. ds_main_condition.setColumn(0, "ym", date);
  742. ds_main_emplist.clearData();
  743. ds_main_dutlist.clearData();
  744. ds_main_dutinfo.clearData();
  745. }
  746. function ds_main_condition_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  747. {
  748. if(e.columnid == "deptcd")
  749. {
  750. ds_main_emplist.clearData();
  751. ds_main_dutlist.clearData();
  752. ds_main_dutinfo.clearData();
  753. grp_sea.opt_deptnm.value = "";
  754. grp_sea.ipt_deptcd.value = e.newvalue;
  755. grp_sea.ipt_deptcd.setFocus();
  756. misfValidationCheck("02", "", "deptcd,deptnm" );
  757. }
  758. if(e.columnid == "emplno")
  759. {
  760. grp_sea.ipt_emplnos.value = e.newvalue;
  761. grp_sea.ipt_emplnos.setFocus();
  762. var recv_list = "emplno,emplnm" ;
  763. rpbfValidationCheck("EMPLNO", recv_list);
  764. if(String(e.newvalue).length > 0)
  765. {
  766. grp_sea.btn_search.click();
  767. }
  768. }
  769. if(e.columnid == "emplnm")
  770. {
  771. grp_sea.ipt_emplnms.value = e.newvalue;
  772. grp_sea.ipt_emplnms.setFocus();
  773. var recv_list = "emplno,emplnm" ;
  774. rpbfValidationCheck("EMPLNM", recv_list);
  775. if(String(e.newvalue).length > 0)
  776. {
  777. grp_sea.btn_search.click();
  778. }
  779. }
  780. }
  781. function grp_sea_ipt_deptcd_onkeydown(obj:Edit, e:KeyEventInfo)
  782. {
  783. if(e.keycode == 13)
  784. {
  785. obj.updateToDataset();
  786. }
  787. }
  788. function grp_sea_btn_deptcd_onclick(obj:Button, e:ClickEventInfo)
  789. {
  790. var vOrigDeptcd = grp_sea.ipt_deptcd.value;
  791. var recv_list = "deptcd,deptnm";
  792. misfOpenPopUpList("02", ds_main_condition,"", recv_list) ;
  793. if(vOrigDeptcd != grp_sea.ipt_deptcd.value)
  794. {
  795. ds_main_emplist.clearData();
  796. ds_main_dutinfo.clearData();
  797. ds_main_dutlist.clearData();
  798. }
  799. }
  800. function grp_sea_ipt_emplnos_onkeydown(obj:Edit, e:KeyEventInfo)
  801. {
  802. if(e.keycode == 13)
  803. {
  804. if(!utlf_isNull(obj.value))
  805. {
  806. obj.updateToDataset();
  807. grp_sea.btn_search.click();
  808. }
  809. }
  810. }
  811. function grp_sea_btn_emplnos_onclick(obj:Button, e:ClickEventInfo)
  812. {
  813. var recv_list = "emplno,emplnm" ;
  814. rpbfOpenPopUpList("SPRPB00101", ds_main_condition, recv_list,"1","N");
  815. if(String(grp_sea.ipt_emplnos.value.length) > 0)
  816. {
  817. grp_sea.btn_search.click();
  818. }
  819. }
  820. function grp_sea_ipt_emplnms_onkeydown(obj:Edit, e:KeyEventInfo)
  821. {
  822. if(e.keycode == 13)
  823. {
  824. if(!utlf_isNull(obj.value))
  825. {
  826. obj.updateToDataset();
  827. grp_sea.btn_search.click();
  828. }
  829. }
  830. }
  831. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  832. {
  833. fGetEmpList();
  834. }
  835. function grd_emplist_oncellclick(obj:Grid, e:GridClickEventInfo)
  836. {
  837. var sDeptcd = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd");
  838. fGetCode(sDeptcd); //근무코드 재 설정
  839. fGetDutList();
  840. dsf_setTypeFormat(ds_main_dutlist, "conthr:BIGDECIMAL^realhr:BIGDECIMAL");
  841. }
  842. function fGetDutList()
  843. {
  844. if(ds_main_emplist.rowposition < 0)
  845. {
  846. misfGridInit(grd_dutlist);
  847. }
  848. else
  849. {
  850. var powertp = ds_main_powerinfo.getColumn(0, "powertp");
  851. var procstat = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "procstat")
  852. if(utlf_isNull(powertp))
  853. {
  854. if(utlf_isNull(procstat) || procstat == "T")
  855. {
  856. btn_delete.enable = true;
  857. btn_save.enable = true;
  858. btn_send.enable = true;
  859. }
  860. else
  861. {
  862. btn_delete.enable = false;
  863. btn_save.enable = false;
  864. btn_send.enable = false;
  865. }
  866. }
  867. else if(powertp == "1")
  868. {
  869. if(utlf_isNull(procstat) || procstat == "T" || procstat == "0")
  870. {
  871. btn_delete.enable = true;
  872. btn_save.enable = true;
  873. btn_send.enable= true;
  874. }
  875. else
  876. {
  877. btn_delete.enable = false;
  878. btn_save.enable = false;
  879. btn_send.enable = false;
  880. }
  881. }
  882. else if(powertp == "2")
  883. {
  884. if(procstat == "1")
  885. {
  886. btn_send.enable = true;
  887. }
  888. else
  889. {
  890. btn_send.enable = false;
  891. }
  892. }
  893. else if(powertp == "3")
  894. {
  895. if(utlf_isNull(procstat)|| procstat == "T" || procstat == "0" || procstat == "1" || procstat == "2")
  896. {
  897. btn_delete.enable = true;
  898. btn_save.enable = true;
  899. btn_send.enable = true;
  900. btn_sendCancel.enable = false;
  901. }
  902. else if(procstat == "3")
  903. {
  904. btn_delete.enable = false;
  905. btn_save.enable = false;
  906. btn_send.enable = false;
  907. btn_sendCancel.enable= true;
  908. }
  909. else if(procstat == "4")
  910. {
  911. btn_delete.enable = false;
  912. btn_save.enable = false;
  913. btn_send.enable = false;
  914. btn_sendCancel.enable = false;
  915. }
  916. }
  917. else if(powertp == "4")
  918. {
  919. if(procstat == "3")
  920. {
  921. btn_send.enable = true;
  922. btn_sendCancel.enable = false;
  923. }
  924. else
  925. {
  926. btn_send.enable = false
  927. btn_sendCancel.enable = true;
  928. }
  929. }
  930. ds_main_dutlist.clearData();
  931. ds_send.clearData();
  932. dsf_makeValue(ds_send, "instcd", "string", grp_sea.cmb_instcd.value, 0);
  933. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  934. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"), 0);
  935. dsf_makeValue(ds_send, "deptcd", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd"), 0);
  936. var oParam = {};
  937. oParam.id = "TRRPD30802";
  938. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  939. oParam.method = "reqGetDutyPsnListNew";
  940. oParam.inds = "req=ds_send";
  941. oParam.outds = "ds_main_dutlist=dutlist";
  942. oParam.async = false;
  943. oParam.callback = "cf_TRRPD30802";
  944. tranf_submit(oParam);
  945. }
  946. }
  947. function cf_TRRPD30802(sSvcId, nErrorCode, sErrorMsg)
  948. {
  949. if(nErrorCode < 0)
  950. {
  951. return;
  952. }
  953. else
  954. {
  955. ds_main_dutlist.addColumn("colBack9", "string");
  956. ds_main_dutlist.addColumn("realhr", "string");
  957. ds_main_dutlist.addColumn("contrealhr", "string");
  958. ds_main_dutlist.enableevent = false;
  959. ds_main_dutlist.updatecontrol = false;
  960. for(var i = 0; i < ds_main_dutlist.rowcount; i++)
  961. {
  962. if(ds_main_dutlist.getColumn(i, "workflag") == "I")
  963. {
  964. ds_main_dutlist.setRowType(i, "i");
  965. }
  966. if(ds_main_dutlist.getColumn(i, "holiflag") != "8") {
  967. ds_main_dutlist.setColumn(i, "colBack9", "#faeefa"); //"#fefee9"; 노랑톤 //"#faeefa"; 분홍톤 //"#fff6ee"; 주황톤
  968. } else {
  969. ds_main_dutlist.setColumn(i, "colBack9", "white"); //"#fefee9"; 노랑톤 //"#faeefa"; 분홍톤 //"#fff6ee"; 주황톤
  970. }
  971. }
  972. ds_main_dutlist.updatecontrol = true;
  973. ds_main_dutlist.enableevent = true;
  974. fSetContHr();
  975. grd_duttype.setFocus();
  976. }
  977. }
  978. function fSetContHr()
  979. {
  980. ds_main_dutlist.enableevent = false;
  981. ds_main_dutlist.updatecontrol = false;
  982. for(var i = 0; i < ds_main_dutlist.rowcount; i++)
  983. {
  984. var iTranHr = 0;
  985. var iTranRealHr = 0;
  986. var k = 0;
  987. if(ds_main_dutlist.getColumn(i, "duthrd") != 0)
  988. {
  989. for( k = i - 1; k >= 0; k--)
  990. {
  991. if(ds_main_dutlist.getColumn(k, "duthrn") == 0){
  992. break;
  993. }else{
  994. iTranHr += parseInt(ds_main_dutlist.getColumn(k, "duthrn"));
  995. iTranRealHr += parseFloat(ds_main_dutlist.getColumn(k, "realhrn"));
  996. }
  997. if( (ds_main_dutlist.getColumn(k, "duthrd") == 0 || ds_main_dutlist.getColumn(k, "duttyped") == "A5" || ds_main_dutlist.getColumn(k, "duttyped") == "19") &&
  998. (ds_main_dutlist.getColumn(k, "duttypen") != "ET" && ds_main_dutlist.getColumn(k, "duttypen") != "NT") ){
  999. break;
  1000. }else if( ds_main_dutlist.getColumn(k, "duttyped") == "18" ){
  1001. iTranHr += parseFloat(ds_main_dutlist.getColumn(k, "duthrd"));
  1002. iTranRealHr += parseFloat(ds_main_dutlist.getColumn(k, "realhrd"));
  1003. break;
  1004. }else if( ds_main_dutlist.getColumn(k, "duttyped") == "NC" && ds_main_dutlist.getColumn(k, "duttypen") != "3C" ){
  1005. break;
  1006. }else if( ds_main_dutlist.getColumn(k, "duttyped") == "T3" ){
  1007. iTranHr += parseFloat(ds_main_dutlist.getColumn(k, "duthrd"));
  1008. iTranRealHr += parseFloat(ds_main_dutlist.getColumn(k, "realhrd"));
  1009. break;
  1010. }else{
  1011. iTranHr += parseInt(ds_main_dutlist.getColumn(k, "duthrd"));
  1012. }
  1013. }
  1014. if(k == 0)
  1015. {
  1016. iTranHr += parseInt(ds_main_dutlist.getColumn(0, "tranhr"));
  1017. iTranRealHr += parseFloat(ds_main_dutlist.getColumn(0, "tranrealhr"));
  1018. }
  1019. }
  1020. ds_main_dutlist.setColumn(i, "conthr", iTranHr+parseInt(ds_main_dutlist.getColumn(i, "duthrd"))+parseInt(ds_main_dutlist.getColumn(i, "duthrn")));
  1021. ds_main_dutlist.setColumn(i, "realhr", iTranRealHr+parseInt(ds_main_dutlist.getColumn(i, "realhrd"))+parseInt(ds_main_dutlist.getColumn(i, "realhrn")));
  1022. if(ds_main_dutlist.getColumn(i, "duttyped") == "18"){
  1023. var sConthr = parseFloat(ds_main_dutlist.getColumn(i, "duthrd")) + parseFloat(ds_main_dutlist.getColumn(i, "duthrn"));
  1024. var sRealthr = parseFloat(ds_main_dutlist.getColumn(i, "realhrd")) + parseFloat(ds_main_dutlist.getColumn(i, "realhrn"));
  1025. }else if(ds_main_dutlist.getColumn(i, "duttyped") == "19"){
  1026. var sConthr = parseFloat(ds_main_dutlist.getColumn(i, "duthrn"));
  1027. var sRealthr = parseFloat(ds_main_dutlist.getColumn(i, "realhrn"));
  1028. }else if(ds_main_dutlist.getColumn(i, "duttyped") == "T3"){
  1029. var sConthr = parseFloat(ds_main_dutlist.getColumn(i, "duthrd")) + parseFloat(ds_main_dutlist.getColumn(i, "duthrn"));
  1030. var sRealthr = parseFloat(ds_main_dutlist.getColumn(i, "realhrd")) + parseFloat(ds_main_dutlist.getColumn(i, "realhrn"));
  1031. }else if(ds_main_dutlist.getColumn(i, "duttyped") == "NC" && ds_main_dutlist.getColumn(i, "duttyped") == "3C"){
  1032. var sConthr = iTranHr + parseFloat(ds_main_dutlist.getColumn(i, "duthrd")) + parseFloat(ds_main_dutlist.getColumn(i, "duthrn"));
  1033. var sRealthr = iTranRealHr + parseFloat(ds_main_dutlist.getColumn(i, "realhrd")) + parseFloat(ds_main_dutlist.getColumn(i, "realhrn"));
  1034. }else if(ds_main_dutlist.getColumn(i, "duttyped") == "NC" && ds_main_dutlist.getColumn(i, "duttyped") != "3C"){
  1035. var sConthr = iTranHr + parseFloat(ds_main_dutlist.getColumn(i, "duthrd"));
  1036. var sRealthr = iTranRealHr + parseFloat(ds_main_dutlist.getColumn(i, "realhrd"));
  1037. }else{
  1038. var sConthr = iTranHr + parseFloat(ds_main_dutlist.getColumn(i, "duthrd")) + parseFloat(ds_main_dutlist.getColumn(i, "duthrn"));
  1039. var sRealthr = iTranRealHr + parseFloat(ds_main_dutlist.getColumn(i, "realhrd")) + parseFloat(ds_main_dutlist.getColumn(i, "realhrn"));
  1040. }
  1041. ds_main_dutlist.setColumn(i, "conthr", parseFloat(ds_main_dutlist.getColumn(i, "duthrd")) + parseFloat(ds_main_dutlist.getColumn(i, "duthrn")));
  1042. ds_main_dutlist.setColumn(i, "realhr", parseFloat(ds_main_dutlist.getColumn(i, "realhrd")) + parseFloat(ds_main_dutlist.getColumn(i, "realhrn")) + parseFloat(ds_main_dutlist.getColumn(i, "conftm")));
  1043. if ( sRealthr > 16 ){
  1044. ds_main_dutlist.setColumn(i, "contrealhr", sRealthr);
  1045. }else{
  1046. ds_main_dutlist.setColumn(i, "contrealhr", sConthr);
  1047. }
  1048. // if(grd_dutlist.valueMatrix(i, grd_dutlist.colRef("contrealhr")) > 16){
  1049. // grd_dutlist.valueMatrix(i, grd_dutlist.colRef("contrealhr")) = grd_dutlist.valueMatrix(i, grd_dutlist.colRef("realhr"));
  1050. // }else{
  1051. // grd_dutlist.valueMatrix(i, grd_dutlist.colRef("contrealhr")) = grd_dutlist.valueMatrix(i, grd_dutlist.colRef("conthr"));
  1052. // }
  1053. if(ds_main_dutlist.getColumn(i, "contrealhr") > 36){
  1054. ds_main_dutlist.setColumn(i, "colBack9", "#ccffcc");
  1055. }else{
  1056. //휴일구분(0:휴일, 4:토요일, 8:평일)이 평일 아닌 경우, 요일컬럼의 Color 를 변경한다.
  1057. if(ds_main_dutlist.getColumn(i, "holiflag") != "8") {
  1058. ds_main_dutlist.setColumn(i, "colBack9", "#faeefa");
  1059. } else {
  1060. ds_main_dutlist.setColumn(i, "colBack9", "#white");
  1061. }
  1062. }
  1063. }
  1064. ds_main_dutlist.updatecontrol = true;
  1065. ds_main_dutlist.enableevent = true;
  1066. }
  1067. function ds_main_dutlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1068. {
  1069. if(e.columnid == "conftm"){
  1070. if(utlf_isNull(obj.getColumn(e.row, "conftm"))){
  1071. obj.setColumn(e.row, "conftm", "0");
  1072. }
  1073. }
  1074. fDutHrSet(e.row);
  1075. }
  1076. function fDutHrSet(rowIdx)
  1077. {
  1078. if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "TR"){
  1079. ds_main_dutlist.setColumn(rowIdx, "duthrd", "9");
  1080. ds_main_dutlist.setColumn(rowIdx, "realhrd", "12");
  1081. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "A5"){
  1082. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4.5");
  1083. ds_main_dutlist.setColumn(rowIdx, "realhrd", "6");
  1084. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "ET" || ds_main_dutlist.getColumn(rowIdx, "duttyped") == "NT"){
  1085. ds_main_dutlist.setColumn(rowIdx, "duthrd", "7");
  1086. ds_main_dutlist.setColumn(rowIdx, "realhrd", "12");
  1087. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "18" || ds_main_dutlist.getColumn(rowIdx, "duttyped") == "19"){
  1088. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4.5");
  1089. ds_main_dutlist.setColumn(rowIdx, "realhrd", "6");
  1090. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "T1"){
  1091. ds_main_dutlist.setColumn(rowIdx, "duthrd", "10");
  1092. ds_main_dutlist.setColumn(rowIdx, "realhrd", "13");
  1093. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "T2"){
  1094. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4");
  1095. ds_main_dutlist.setColumn(rowIdx, "realhrd", "5");
  1096. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "NC"){
  1097. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4");
  1098. ds_main_dutlist.setColumn(rowIdx, "realhrd", "5");
  1099. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1100. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "N1"){
  1101. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4");
  1102. ds_main_dutlist.setColumn(rowIdx, "realhrd", "5");
  1103. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "N2"){
  1104. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4");
  1105. ds_main_dutlist.setColumn(rowIdx, "realhrd", "5");
  1106. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "T3"){
  1107. ds_main_dutlist.setColumn(rowIdx, "duthrd", "4");
  1108. ds_main_dutlist.setColumn(rowIdx, "realhrd", "5");
  1109. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "T4"){
  1110. ds_main_dutlist.setColumn(rowIdx, "duthrd", "3");
  1111. ds_main_dutlist.setColumn(rowIdx, "realhrd", "4");
  1112. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "ED"){
  1113. ds_main_dutlist.setColumn(rowIdx, "duthrd", "9");
  1114. ds_main_dutlist.setColumn(rowIdx, "realhrd", "12");
  1115. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "H9"){
  1116. ds_main_dutlist.setColumn(rowIdx, "duthrd", "9");
  1117. ds_main_dutlist.setColumn(rowIdx, "realhrd", "12");
  1118. }else if(ds_main_dutlist.getColumn(rowIdx, "duttyped") == "C3"){
  1119. ds_main_dutlist.setColumn(rowIdx, "duthrd", "8");
  1120. ds_main_dutlist.setColumn(rowIdx, "realhrd", "10");
  1121. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1122. }else{
  1123. ds_main_dutlist.setColumn(rowIdx, "duthrd", "0");
  1124. ds_main_dutlist.setColumn(rowIdx, "realhrd", "0");
  1125. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "0");
  1126. }
  1127. if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "ND"){
  1128. ds_main_dutlist.setColumn(rowIdx, "duthrn", "8");
  1129. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1130. ds_main_dutlist.setColumn(rowIdx, "realhrn", "12");
  1131. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "ER"){
  1132. ds_main_dutlist.setColumn(rowIdx, "duthrn", "8");
  1133. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1134. ds_main_dutlist.setColumn(rowIdx, "realhrn", "12");
  1135. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "EN"){
  1136. ds_main_dutlist.setColumn(rowIdx, "duthrn", "8");
  1137. ds_main_dutlist.setColumn(rowIdx, "realhrn", "12");
  1138. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "ET" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NT"){
  1139. ds_main_dutlist.setColumn(rowIdx, "duthrn", "9.5");
  1140. ds_main_dutlist.setColumn(rowIdx+1, "duthrd", "7");
  1141. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1142. ds_main_dutlist.setColumn(rowIdx, "realhrn", "11");
  1143. ds_main_dutlist.setColumn(rowIdx+1, "realhrd", "12");
  1144. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "ES" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NS"){
  1145. ds_main_dutlist.setColumn(rowIdx, "duthrn", "13");
  1146. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1147. ds_main_dutlist.setColumn(rowIdx, "realhrn", "19");
  1148. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "N0" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "A1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "A2"){
  1149. ds_main_dutlist.setColumn(rowIdx, "duthrn", "7");
  1150. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1151. ds_main_dutlist.setColumn(rowIdx, "realhrn", "11");
  1152. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "N0" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "O1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "O2"){
  1153. ds_main_dutlist.setColumn(rowIdx, "duthrn", "9");
  1154. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1155. ds_main_dutlist.setColumn(rowIdx, "realhrn", "14");
  1156. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NB" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "B1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "B2"){
  1157. ds_main_dutlist.setColumn(rowIdx, "duthrn", "13");
  1158. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1159. ds_main_dutlist.setColumn(rowIdx, "realhrn", "19");
  1160. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "CP" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "C1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "C2"){
  1161. ds_main_dutlist.setColumn(rowIdx, "duthrn", "9");
  1162. ds_main_dutlist.setColumn(rowIdx, "ndcnt", parseInt(ds_main_dutlist.getColumn(rowIdx, "ndcnt")) + 1);
  1163. ds_main_dutlist.setColumn(rowIdx, "realhrn", "14");
  1164. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NQ" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "Q1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "Q2"){
  1165. ds_main_dutlist.setColumn(rowIdx, "duthrn", "12");
  1166. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1167. ds_main_dutlist.setColumn(rowIdx, "realhrn", "17");
  1168. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NR" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "R1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "R2"){
  1169. ds_main_dutlist.setColumn(rowIdx, "duthrn", "14");
  1170. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1171. ds_main_dutlist.setColumn(rowIdx, "realhrn", "20");
  1172. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "NP" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "P1" || ds_main_dutlist.getColumn(rowIdx, "duttypen") == "P2"){
  1173. ds_main_dutlist.setColumn(rowIdx, "duthrn", "11");
  1174. ds_main_dutlist.setColumn(rowIdx, "ndcnt", "1");
  1175. ds_main_dutlist.setColumn(rowIdx, "realhrn", "17");
  1176. }else if(ds_main_dutlist.getColumn(rowIdx, "duttypen") == "3C"){
  1177. ds_main_dutlist.setColumn(rowIdx, "duthrn", "13");
  1178. ds_main_dutlist.setColumn(rowIdx, "ndcnt", parseInt(ds_main_dutlist.getColumn(rowIdx, "ndcnt")) + 1);
  1179. ds_main_dutlist.setColumn(rowIdx, "realhrn", "19");
  1180. }else{
  1181. ds_main_dutlist.setColumn(rowIdx, "duthrn", "0");
  1182. ds_main_dutlist.setColumn(rowIdx, "ndcnt", parseInt(ds_main_dutlist.getColumn(rowIdx, "ndcnt")) + 0);
  1183. ds_main_dutlist.setColumn(rowIdx, "realhrn", "0");
  1184. }
  1185. fSetContHr();
  1186. }
  1187. function grd_duttype_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  1188. {
  1189. if(ds_init_duttype_codelist.getColumn(e.row, "useyn") == "N") return;
  1190. for(var t = 0; t < ds_init_duttype_codelist.rowcount; t++){
  1191. if(ds_init_duttype_codelist.getColumn(t, "cdid") == "TR"){
  1192. var sTrfromtime = ds_init_duttype_codelist.getColumn(t, "cntlcd1");
  1193. var sTrtotime = ds_init_duttype_codelist.getColumn(t, "cntlcd2");
  1194. break;
  1195. }
  1196. }
  1197. if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttyped") || grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttypen"))
  1198. {
  1199. var duttype = ds_init_duttype_codelist.getColumn(e.row, "cdid");
  1200. var holiflag = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "holiflag");
  1201. var sDeptgbn = "A";
  1202. var sDutname = ds_init_duttype_codelist.getColumn(ds_init_duttype_codelist.rowposition, "cdnm");
  1203. var sDaynm = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "day");
  1204. var sFromtime = ds_init_duttype_codelist.getColumn(e.row, "cntlcd1");
  1205. var sTotime = ds_init_duttype_codelist.getColumn(e.row, "cntlcd2");
  1206. var sDutdd = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "dutdd");
  1207. var sDeptcd = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd");
  1208. if ( sDeptcd == "2010000000")
  1209. {
  1210. sDeptgbn = "S";
  1211. }
  1212. else if ( sDeptcd == "4110200000")
  1213. {
  1214. sDeptgbn = "I";
  1215. }
  1216. if(holiflag != "8" && (duttype == "18" || duttype == "19"))
  1217. {
  1218. sysf_messageBox("평일에만 연차(AM), 연차(PM) 입력이 가능합니다.", "I999", "");
  1219. return;
  1220. }
  1221. if(sDeptgbn == "S")
  1222. {
  1223. // if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttyped") && duttype == "EN")
  1224. // {
  1225. // sysf_messageBox("주간에 ER N수련을 입력할 수 없습니다.", "I999", "");
  1226. // return;
  1227. // }
  1228. //
  1229. // if(duttype == "EN" && sDaynm == "토")
  1230. // {
  1231. // sysf_messageBox( sDutname + " 근무는 '일요일~금요일' 야간에 입력 가능합니다.","I999","");
  1232. // return;
  1233. // }
  1234. //
  1235. // if(duttype == "EN" && (holiflag == "0" && sDaynm == "일"))
  1236. // {
  1237. // if(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") != "OF")
  1238. // {
  1239. // sysf_messageBox("일요일 오전이 'OFF' 일때만 입력 가능합니다. ","I999","");
  1240. // return;
  1241. // }
  1242. // }
  1243. //2018.05.15 내과 수련현황표 새로 만들기.
  1244. // 주간에 당직 입력 불가
  1245. if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("body", "duttyped")
  1246. && (duttype == "N0" ||duttype == "A1" ||duttype == "A2" ||duttype == "NO" ||duttype == "O1" ||duttype == "O2"
  1247. ||duttype == "NB" ||duttype == "B1" ||duttype == "B2" ||duttype == "CP" ||duttype == "C1" ||duttype == "C2"
  1248. ||duttype == "NQ" ||duttype == "Q1" ||duttype == "Q2" ||duttype == "NR" ||duttype == "R1" ||duttype == "R2"
  1249. ||duttype == "NP" ||duttype == "P1" ||duttype == "P2" ||duttype == "EN"
  1250. ||duttype == "3C" )){
  1251. sysf_messageBox("주간에 입력할 수 없는 근무코드 입니다..", "I999", "");
  1252. return;
  1253. }
  1254. //야간에 수련 입력 불가
  1255. if (grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("body", "duttypen")
  1256. && (duttype == "T1" ||duttype == "T2" ||duttype == "NC" ||duttype == "N1" ||duttype == "N2"
  1257. ||duttype == "T3" ||duttype == "T4" ||duttype == "ED" ||duttype == "H9"
  1258. ||duttype == "C3" )) {
  1259. sysf_messageBox("야간에 입력할 수 없는 근무코드 입니다.", "I999", "");
  1260. return;
  1261. }
  1262. //평일 근무코드, 당직근무일때는 '수련1' 필요, 공휴일전날평일당직일때는 다음날 OFF 혹은 수련4 필요 ( 월말일때 다음 근무 작성안내 메세지)
  1263. if(duttype == "T1" || duttype == "N0" || duttype == "A1" || duttype == "A2" || duttype == "NO" || duttype == "O1" || duttype == "O2" ){
  1264. if(holiflag == "8"){
  1265. }else{
  1266. sysf_messageBox(sDutname + " 근무는 평일에만 입력할 수 있습니다", "I999", "");
  1267. return;
  1268. }
  1269. }
  1270. //토요일만 가능
  1271. if(duttype == "T2" || duttype == "NB" || duttype == "B1" || duttype == "B2"){
  1272. if(sDaynm != "토"){
  1273. sysf_messageBox(sDutname + " 근무는 토요일에만 입력가능합니다.", "I999", "");
  1274. return;
  1275. }
  1276. }
  1277. //일요일만 가능
  1278. if(duttype == "C3" || duttype == "NC" || duttype == "T3" || duttype == "3C"|| duttype == "CP"){
  1279. if(sDaynm != "일"){
  1280. sysf_messageBox(sDutname + " 근무는 일요일에만 입력가능합니다.", "I999", "");
  1281. return;
  1282. }
  1283. if(duttype == "C3" || duttype == "T3"){
  1284. if(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttypen") != "CP" &&
  1285. ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttypen") != "OF"){
  1286. sysf_messageBox(sDutname + " 근무는 [OFF],[당직(CP)] 근무 이전 주간에만 입력할 수 있습니다", "I999", "");
  1287. return;
  1288. }
  1289. } else if(duttype == "3C"){
  1290. if(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") != "NC" &&
  1291. ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") != "OF"){
  1292. sysf_messageBox(sDutname + " 근무는 [당직(Ca)],[OFF] 근무 이후에만 입력할 수 있습니다", "I999", "");
  1293. return;
  1294. }
  1295. }
  1296. }
  1297. //평일공휴일 근무코드
  1298. if(duttype == "T4" || duttype == "NQ" || duttype == "Q1" || duttype == "Q2" || duttype == "NR" || duttype == "R1" || duttype == "R2" ){
  1299. if(holiflag == "0" && (sDaynm == "월" || sDaynm == "화" || sDaynm == "수" || sDaynm == "목" || sDaynm == "금")){
  1300. }else{
  1301. sysf_messageBox(sDutname + " 근무는 평일공휴일에만 입력할 수 있습니다", "I999", "");
  1302. return;
  1303. }
  1304. }
  1305. //평일공휴일 근무코드, ( 월말일때 다음 근무 작성안내 메세지)
  1306. if(duttype == "NP" || duttype == "P1" || duttype == "P2" ){
  1307. if(holiflag == "0" && sDaynm == "일"){
  1308. var nextHoliflag = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition+1, "holiflag"); //휴일구분(0:휴일, 4:토요일, 8:평일)
  1309. if(nextHoliflag != "0" && !utlf_isNull(nextHoliflag)){ // 공휴일, 월말일 체크
  1310. sysf_messageBox(sDutname + " 근무는 다음날이 '공휴일'일때만 입력할 수 있습니다", "I999", "");
  1311. return;
  1312. }
  1313. }else{
  1314. sysf_messageBox(sDutname + " 근무는 일요일 야간에만 입력할 수 있습니다", "I999", "");
  1315. return;
  1316. }
  1317. }
  1318. }
  1319. if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttyped") && duttype == "ND")
  1320. {
  1321. sysf_messageBox("주간에 당직을 입력할 수 없습니다", "I999", "");
  1322. return;
  1323. }
  1324. else if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttyped") && duttype == "ER")
  1325. {
  1326. sysf_messageBox("주간에 당직(ER)을 입력할 수 없습니다", "I999", "");
  1327. return;
  1328. }
  1329. else if (grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttypen") && duttype == "TR")
  1330. {
  1331. sysf_messageBox("야간에 수련을 입력할 수 없습니다", "I999", "");
  1332. return;
  1333. }
  1334. if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttypen") && sDeptgbn == "A" && duttype != "ND" && duttype != "ER" && duttype != "OF" && duttype != "NA")
  1335. {
  1336. sysf_messageBox("야간에는 당직, 당직(ER) 또는 OFF만 입력 가능합니다", "I999", "");
  1337. return;
  1338. }
  1339. if (grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("Body", "duttypen") && sDeptgbn == "I" && duttype != "ND" && duttype != "ER" && duttype != "OF" && duttype != "NA" && duttype != "EN")
  1340. {
  1341. sysf_messageBox("야간에는 당직, 당직(ER),ER N수련 또는 OFF만 입력 가능합니다", "I999", "");
  1342. return;
  1343. }
  1344. if(holiflag != "8" && duttype == "ND")
  1345. {
  1346. if(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "OF" || ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "NA" || utlf_isNull(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped")))
  1347. {
  1348. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", "TR");
  1349. //주간코드 변경과 동시에 시간도 입력
  1350. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDutdd + sTrfromtime);
  1351. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDutdd + sTrtotime);
  1352. }
  1353. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", "ND");
  1354. ds_main_dutlist.enableevent = false;
  1355. ds_main_dutlist.updatecontrol = false;
  1356. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1357. ds_main_dutlist.updatecontrol = true;
  1358. ds_main_dutlist.enableevent = true;
  1359. }
  1360. else if(holiflag != "8" && duttype == "ER")
  1361. {
  1362. if(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "OF" || ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "NA" || utlf_isNull(ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped")))
  1363. {
  1364. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", "TR");
  1365. //주간코드 변경과 동시에 시간도 입력
  1366. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDutdd + sTrfromtime);
  1367. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDutdd + sTrtotime);
  1368. }
  1369. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttypen", "ER");
  1370. ds_main_dutlist.enableevent = false;
  1371. ds_main_dutlist.updatecontrol = false;
  1372. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1373. ds_main_dutlist.updatecontrol = true;
  1374. ds_main_dutlist.enableevent = true;
  1375. }else if( holiflag != "8" && duttype == "OFF" && //평일이 아닐 때, 당직을 취소하면 |수련|OFF| 가 아닌 |OFF|OFF| set 으로 입력한다.
  1376. ((ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "TR" && ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttypen") == "ND") ||
  1377. (ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped") == "TR" && ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttypen") == "ER")) ){
  1378. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", "OF");
  1379. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttypen", "OF");
  1380. //주간코드 변경과 동시에 시간도 입력
  1381. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDutdd + "0000");
  1382. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDutdd + "0000");
  1383. //야간코드 변경과 동시에 시간도 입력
  1384. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDutdd + "0000");
  1385. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDutdd + "0000");
  1386. ds_main_dutlist.enableevent = false;
  1387. ds_main_dutlist.updatecontrol = false;
  1388. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1389. ds_main_dutlist.updatecontrol = true;
  1390. ds_main_dutlist.enableevent = true;
  1391. } else if(duttype == "NA") { // N/A를 클릭하면 야간 역시 빈칸이 될 수 있게
  1392. var duttyped = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttyped");
  1393. if (duttyped == "TR" || duttyped == "OF" || utlf_isNull(duttyped)) {
  1394. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", "NA");
  1395. //주간코드 변경과 동시에 시간도 입력
  1396. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDutdd + "0000");
  1397. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDutdd + "0000");
  1398. ds_main_dutlist.enableevent = false;
  1399. ds_main_dutlist.updatecontrol = false;
  1400. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1401. ds_main_dutlist.updatecontrol = true;
  1402. ds_main_dutlist.enableevent = true;
  1403. }
  1404. var duttypen = ds_main_dutlist.getColumn(ds_main_dutlist.rowposition, "duttypen");
  1405. if (duttypen == "ND" || duttypen == "ER" || duttypen == "OF" || utlf_isNull(duttypen)) {
  1406. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttypen", "NA");
  1407. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "ngtfromdd", sDutdd + "0000");
  1408. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "ngttodd", sDutdd + "0000");
  1409. ds_main_dutlist.enableevent = false;
  1410. ds_main_dutlist.updatecontrol = false;
  1411. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1412. ds_main_dutlist.updatecontrol = true;
  1413. ds_main_dutlist.enableevent = true;
  1414. }
  1415. }
  1416. else
  1417. {
  1418. if(grd_dutlist.currentcol == 3)
  1419. {
  1420. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttyped", duttype);
  1421. }
  1422. else
  1423. {
  1424. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "duttypen", duttype);
  1425. }
  1426. ds_main_dutlist.enableevent = false;
  1427. ds_main_dutlist.updatecontrol = false;
  1428. ds_main_dutlist.setRowType(ds_main_dutlist.rowposition, 4);
  1429. ds_main_dutlist.updatecontrol = true;
  1430. ds_main_dutlist.enableevent = true;
  1431. }
  1432. if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("body", "duttyped")){
  1433. var sDayfromdd = sDutdd + sFromtime;
  1434. var sDaytodd = sDutdd + sTotime;
  1435. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "dayfromdd", sDayfromdd);
  1436. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "daytodd", sDaytodd);
  1437. }else if(grd_dutlist.currentcell == grd_dutlist.getBindCellIndex("body", "duttypen")){
  1438. var sNgtfromdd = sDutdd + sFromtime;
  1439. if(parseInt(sFromtime) > parseInt(sTotime)){
  1440. var sNgttodd = ((sDutdd.toDate("YYYYMMDD")).getAddDate(1)).getDateFormat() + sTotime;
  1441. }else{
  1442. var sNgttodd = sDutdd + sTotime;
  1443. }
  1444. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "ngtfromdd", sNgtfromdd);
  1445. ds_main_dutlist.setColumn(ds_main_dutlist.rowposition, "ngttodd", sNgttodd);
  1446. }
  1447. }
  1448. }
  1449. function btn_new_onclick(obj:Button, e:ClickEventInfo)
  1450. {
  1451. if(String(ds_main_condition.getColumn(0, "ym")).length != 6 )
  1452. {
  1453. sysf_messageBox("먼저 근무년월을 정확하게 입력하십시요. ", "I999", "");
  1454. grp_sea.ipt_ym.setFocus();
  1455. return;
  1456. }
  1457. if(String(grp_sea.ipt_emplnos.value).length == 0 || String(grp_sea.ipt_emplnms.value).length == 0)
  1458. {
  1459. sysf_messageBox("먼저 사번을 정확하게 입력한 후 대상추가 버튼을 누르세요. ", "I999", "");
  1460. grp_sea.ipt_emplnos.setFocus();
  1461. return;
  1462. }
  1463. var irow = ds_main_emplist.addRow();
  1464. ds_main_emplist.setColumn(irow, "emplno", grp_sea.ipt_emplnos.value);
  1465. ds_main_emplist.setColumn(irow, "emplnm", grp_sea.ipt_emplnms.value);
  1466. fGetDutList();
  1467. }
  1468. function btn_print3_onclick(obj:Button, e:ClickEventInfo)
  1469. {
  1470. var updtdata = grdf_getGridUpdateData(grd_dutlist).rowcount;
  1471. if(updtdata != 0)
  1472. {
  1473. sysf_messageBox("저장되지 않은 작업 내용이 존재합니다.\n\n먼저 저장 후 출력 처리하십시요. ", "E999", "");
  1474. return;
  1475. }
  1476. ds_send.clearData();
  1477. dsf_makeValue(ds_send, "instcd", "string", grp_sea.cmb_instcd.value, 0);
  1478. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  1479. var oParam = {};
  1480. oParam.id = "TRRPD30806";
  1481. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1482. oParam.method = "reqGetInternNdList";
  1483. oParam.inds = "req=ds_send";
  1484. oParam.outds = "ds_print3_printlist=printlist";
  1485. oParam.async = false;
  1486. oParam.callback = "cf_TRRPD30806";
  1487. tranf_submit(oParam);
  1488. }
  1489. function cf_TRRPD30806(sSvcId, nErrorCode, sErrorMsg)
  1490. {
  1491. if(nErrorCode < 0)
  1492. {
  1493. return;
  1494. }
  1495. else
  1496. {
  1497. var objDOM = rptf_createDOM();
  1498. rptf_setNodeListToDOM(objDOM, "/root/print3/printlist", ds_print3_printlist);
  1499. rptf_setNodeListToDOM(objDOM, "/root/send", ds_send);
  1500. var objParam = new Object();
  1501. objParam.xml_data_XML1 = objDOM.documentElement.source;
  1502. var option = "";
  1503. rptf_exeReportPreview30(["RPRPD30803"],[objParam], option);
  1504. }
  1505. }
  1506. function btn_print2_onclick(obj:Button, e:ClickEventInfo)
  1507. {
  1508. var updtdata = grdf_getGridUpdateData(grd_dutlist).rowcount;
  1509. if(updtdata != 0 )
  1510. {
  1511. sysf_messageBox("저장되지 않은 작업 내용이 존재합니다.\n\n먼저 저장 후 출력 처리하십시요. ", "E999", "");
  1512. return;
  1513. }
  1514. ds_send.clearData();
  1515. dsf_makeValue(ds_send, "instcd", "string", grp_sea.cmb_instcd.value, 0);
  1516. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  1517. dsf_makeValue(ds_send, "deptcd", "string", grp_sea.ipt_deptcd.value, 0);
  1518. var oParam = {};
  1519. oParam.id = "TRRPD30804";
  1520. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1521. oParam.method = "reqGetDeptNdList";
  1522. oParam.inds = "req=ds_send";
  1523. oParam.outds = "ds_print2_print2list=print2list";
  1524. oParam.async = false;
  1525. oParam.callback = "cf_TRRPD30804";
  1526. tranf_submit(oParam);
  1527. }
  1528. function cf_TRRPD30804(sSvcId, nErrorCode, sErrorMsg)
  1529. {
  1530. if(nErrorCode < 0)
  1531. {
  1532. return;
  1533. }
  1534. else
  1535. {
  1536. var objDOM = rptf_createDOM();
  1537. rptf_setNodeListToDOM(objDOM, "/root/print2/print2list", ds_print2_print2list);
  1538. rptf_setNodeListToDOM(objDOM, "/root/send", ds_send);
  1539. var objParam = new Object();
  1540. objParam.xml_data_XML1 = objDOM.documentElement.source;
  1541. var option = "";
  1542. rptf_exeReportPreview30(["RPRPD30802"],[objParam], option);
  1543. }
  1544. }
  1545. function btn_print_onclick(obj:Button, e:ClickEventInfo)
  1546. {
  1547. var updtdata = grdf_getGridUpdateData(grd_dutlist).rowcount;
  1548. if(updtdata != 0)
  1549. {
  1550. sysf_messageBox("저장되지 않은 작업 내용이 존재합니다.\n\n먼저 저장 후 출력 처리하십시요. ", "E999", "");
  1551. return;
  1552. }
  1553. ds_print_dutlist.copyData(ds_main_dutlist)
  1554. for(var i = 0; i < ds_print_dutlist.rowcount; i++)
  1555. {
  1556. dsf_makeValue(ds_print_dutlist, "duttypednm", "string", ds_init_duttype_codelist.lookup("cdid", ds_main_dutlist.getColumn(i, "duttyped"), "cdnm"), i);
  1557. dsf_makeValue(ds_print_dutlist, "duttypennm", "string", ds_init_duttype_codelist.lookup("cdid", ds_main_dutlist.getColumn(i, "duttypen"), "cdnm"), i);
  1558. }
  1559. ds_print.setColumn(0, "emplno", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"));
  1560. ds_print.setColumn(0, "emplnm", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplnm"));
  1561. ds_print.setColumn(0, "deptnm", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptnm"));
  1562. ds_print.setColumn(0, "anual", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "anual"));
  1563. ds_print.setColumn(0, "ym", ds_main_condition.getColumn(0, "ym"));
  1564. var objDOM = rptf_createDOM();
  1565. rptf_setNodeListToDOM(objDOM, "/root/main/dutlist", ds_print_dutlist);
  1566. rptf_setNodeListToDOM(objDOM, "/root/print", ds_print);
  1567. var objParam = new Object();
  1568. objParam.xml_data_XML1 = objDOM.documentElement.source;
  1569. var option = "";
  1570. rptf_exeReportPreview30(["RPRPD30801"],[objParam], option);
  1571. }
  1572. function btn_delete_onclick(obj:Button, e:ClickEventInfo)
  1573. {
  1574. if (sysf_messageBox( "선택한 대상자의 자료를 삭제하시겠습니까? \n\n※ 단, 전자결재와 연동된 근태일자의 자료는 삭제되지 않습니다.\n삭제후 결과를 다시 한번 확인하고 수정해주십시요. ", "Q999", "") != 6 )
  1575. {
  1576. return;
  1577. }
  1578. ds_main_dutlist.updatecontrol = false;
  1579. for(var i = 0; i < ds_main_dutlist.rowcount; i++)
  1580. {
  1581. ds_main_dutlist.setRowType(i, "d");
  1582. }
  1583. ds_main_dutlist.updatecontrol = true;
  1584. fClickSaveBtn();
  1585. }
  1586. function fClickSaveBtn()
  1587. {
  1588. ds_send.clearData();
  1589. dsf_makeValue(ds_send, "instcd", "string", grp_sea.cmb_instcd.value, 0);
  1590. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  1591. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"), 0);
  1592. dsf_makeValue(ds_send, "deptcd", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd"), 0);
  1593. var oParam = {};
  1594. oParam.id = "TXRPD30801";
  1595. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1596. oParam.method = "reqExeSavePsnDutyList";
  1597. oParam.inds = "req=ds_send dutlist=ds_main_dutlist:u";
  1598. oParam.async = false;
  1599. oParam.callback = "cf_TXRPD30801";
  1600. tranf_submit(oParam);
  1601. }
  1602. function cf_TXRPD30801(sSvcId, nErrorCode, sErrorMsg)
  1603. {
  1604. if(nErrorCode < 0)
  1605. {
  1606. return;
  1607. }
  1608. else
  1609. {
  1610. fGetEmpList();
  1611. var sEmplno = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno")
  1612. var iRow = ds_main_emplist.findRow("emplno", sEmplno);
  1613. if(iRow > -1)
  1614. {
  1615. ds_main_emplist.rowposition = iRow;
  1616. fGetDutList();
  1617. }
  1618. }
  1619. }
  1620. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  1621. {
  1622. fClickSaveBtn();
  1623. }
  1624. function btn_send_onclick(obj:Button, e:ClickEventInfo)
  1625. {
  1626. var updtdata = grdf_getGridUpdateData(grd_dutlist).rowcount;
  1627. if(updtdata != 0)
  1628. {
  1629. sysf_messageBox("저장되지 않은 작업 내용이 존재합니다.\n\n먼저 저장 후 " + btn_send.label + " 처리 하십시요. ", "E999", "");
  1630. return;
  1631. }
  1632. var powertp = ds_main_condition.getColumn(0, "powertp");
  1633. if(powertp == "4") { //권한유형 4 교육수련실장 : 일괄 승인 및 일괄 승인취소가 되도록 메시지 처리
  1634. if (sysf_messageBox( "대상 전체를 일괄 " + btn_send.text + " 처리 하시겠습니까? ", "Q999", "") != 6 ) return;
  1635. }
  1636. else {
  1637. if (sysf_messageBox( "선택한 대상자의 자료를 " + btn_send.text + " 처리 하시겠습니까? ", "Q999", "") != 6 )
  1638. {
  1639. return;
  1640. }
  1641. }
  1642. fClickSendBtn("confirm");
  1643. }
  1644. function fClickSendBtn(pWorktype)
  1645. {
  1646. ds_send.clearData();
  1647. dsf_makeValue(ds_send, "instcd", "string", grp_sea.cmb_instcd.value, 0);
  1648. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  1649. dsf_makeValue(ds_send, "powertp", "string", ds_main_condition.getColumn(0, "powertp"), 0);
  1650. dsf_makeValue(ds_send, "worktp", "string", pWorktype, 0);
  1651. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"), 0);
  1652. dsf_makeValue(ds_send, "deptcd", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd"), 0);
  1653. var oParam = {};
  1654. oParam.id = "TXRPD30802";
  1655. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1656. oParam.method = "reqExeSaveProcessInfoNew";
  1657. oParam.inds = "req=ds_send";
  1658. oParam.outds = "ds_=item";
  1659. oParam.async = false;
  1660. oParam.callback = "cf_TXRPD30802";
  1661. tranf_submit(oParam);
  1662. }
  1663. function cf_TXRPD30802(sSvcId, nErrorCode, sErrorMsg)
  1664. {
  1665. if(nErrorCode < 0)
  1666. {
  1667. return;
  1668. }
  1669. else
  1670. {
  1671. fGetEmpList();
  1672. var iRow = ds_main_emplist.findRow("emplno", sEmplno);
  1673. var sEmplno = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno");
  1674. if(iRow > -1)
  1675. {
  1676. ds_main_emplist.rowposition = iRow;
  1677. fGetDutList(); //개인 수련 현황 재조회
  1678. }
  1679. }
  1680. }
  1681. function btn_sendCancel_onclick(obj:Button, e:ClickEventInfo)
  1682. {
  1683. var powertp = ds_main_condition.getColumn(0, "powertp");
  1684. if(powertp == "4") { //권한유형 4 교육수련실장 : 일괄 승인 및 일괄 승인취소가 되도록 메시지 처리
  1685. if (sysf_messageBox( "대상 전체를 일괄 " + btn_send.text + " 처리 하시겠습니까? ", "Q999", "") != 6 ) return;
  1686. }
  1687. else {
  1688. if (sysf_messageBox( "선택한 대상자의 자료를 " + btn_sendCancel.text + " 처리 하시겠습니까? ", "Q999", "") != 6 )
  1689. {
  1690. return;
  1691. }
  1692. }
  1693. fClickSendBtn("cancel");
  1694. }
  1695. function btn_admcancel_onclick(obj:Button, e:ClickEventInfo)
  1696. {
  1697. var powertp = ds_main_condition.getColumn(0, "powertp");
  1698. if(powertp == "3") { //교육수련실 담당자 강제 승인 취소 처리( procstat = 'T')
  1699. if (sysf_messageBox( "대상 전체를 일괄 '강제승인취소' 처리 하시겠습니까? ", "Q999", "") != 6 ) return;
  1700. }
  1701. else {
  1702. return;
  1703. }
  1704. fClickAdmSend("admcancel");
  1705. }
  1706. //========================================================================================
  1707. // 교육수련실 담당자 강제승인,승인취소
  1708. //========================================================================================
  1709. function fClickAdmSend(pWorktype) {
  1710. ds_send.clearData();
  1711. ds_send.addRow();
  1712. ds_send.setColumn(0, "instcd", grp_sea.cmb_instcd.value);
  1713. ds_send.setColumn(0, "ym", ds_main_condition.getColumn(0, "ym") );
  1714. ds_send.setColumn(0, "powertp", ds_main_condition.getColumn(0, "powertp") );
  1715. ds_send.setColumn(0, "worktp", pWorktype );
  1716. ds_send.setColumn(0, "emplno", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno") );
  1717. ds_send.setColumn(0, "deptcd", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "deptcd") );
  1718. //선택했던 사번이 어떤 것인지 저장하는 변수
  1719. var sEmplno = ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno");
  1720. var oParam = {};
  1721. oParam.id = "TXRPD30803";
  1722. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1723. oParam.method = "reqExeSaveAdmSend";
  1724. oParam.inds = "req=ds_send";
  1725. oParam.outds = "ds_temp_hidden_item=item";
  1726. oParam.async = false;
  1727. oParam.callback = "cf_TXRPD30803";
  1728. tranf_submit(oParam);
  1729. if(arErrorCode.pop("TXRPD30803") > -1) {
  1730. fGetEmpList();//대상 목록 재조회
  1731. //대상목록에서 선택했던 사번 찾기
  1732. var iRow = ds_main_emplist.findRow("emplno", sEmplno);
  1733. if(iRow >= 0) {
  1734. ds_main_emplist.rowposition = iRow;
  1735. fGetDutList(); //개인 수련 현황 재조회
  1736. }
  1737. }
  1738. }
  1739. function cf_TXRPD30803(sSvcId, nErrorCode, sErrorMsg) {
  1740. arErrorCode.push(sSvcId, nErrorCode);
  1741. }
  1742. function btn_admconfirm_onclick(obj:Button, e:ClickEventInfo)
  1743. {
  1744. var powertp = ds_main_condition.getColumn(0, "powertp");
  1745. if(powertp == "3") { //교육수련실 담당자 강제 승인 취소 처리( procstat = 'T')
  1746. if (sysf_messageBox( "대상 전체를 일괄 '강제승인' 처리 하시겠습니까? ", "Q999", "") != 6 ) return;
  1747. }
  1748. else {
  1749. return;
  1750. }
  1751. fClickAdmSend("admconfirm");
  1752. }
  1753. function btn_im_onclick(obj:Button, e:ClickEventInfo)
  1754. {
  1755. frmf_open("SMRPD30802", "SMRPD30802", null, null, null, null, null, null, null, null, null, null, "M"); //주메인
  1756. }
  1757. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  1758. {
  1759. //그리드에 변경된 자료가 있는지 확인
  1760. var updtdata = grdf_getGridUpdateData(grd_dutlist);
  1761. if(!utlf_isNull(updtdata) && updtdata.rowcount > 0 ) { // 변경된 데이터가 있는 경우
  1762. sysf_messageBox("저장되지 않은 작업 내용이 존재합니다.\n\n먼저 저장 후 엑셀다운 처리 하십시요. ", "E999", "");
  1763. return;
  1764. }
  1765. //radfSaveExcel(grd_dutlist);
  1766. //misfSaveExcel(grd_dutlist, "전공의 수련대장(개인별)");
  1767. if( grd_dutlist.rowcount > 0 ){
  1768. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn1"), "size", 0);
  1769. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn2"), "size", 0);
  1770. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn3"), "size", 0);
  1771. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn4"), "size", 0);
  1772. grdf_exportExcel(grd_dutlist, "save", "savetype", false, "", "user", false);
  1773. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn1"), "size", 56);
  1774. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn2"), "size", 56);
  1775. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn3"), "size", 56);
  1776. grd_dutlist.setFormatColProperty(grd_dutlist.getBindCellIndex("body", "aprvpsn4"), "size", 56);
  1777. } else {
  1778. sysf_messageBox("조회된 데이터가 ", "I004");
  1779. return;
  1780. }
  1781. }
  1782. function grd_dutlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  1783. {
  1784. if(e.row < 0) return;
  1785. if(e.col == grd_dutlist.getBindCellIndex("body", "duttyped")) {
  1786. //shiftKey 를 누른 채 마우스click을 하면 해당 일자까지 파견을 일괄적으로 입력한다.
  1787. //단, 이전의 최근 파견일자가 있으면 그날 이후부터 마우스click한 날짜까지 파견을 입력한다.
  1788. //주간이 TR, OF 인 경우만 주간data를 파견으로 변경 처리한다.
  1789. if(e.shiftKey == true) {
  1790. if (sysf_messageBox( "해당 일자까지 일괄 파견 처리 하시겠습니까? \n\n - 주간이 수련, OFF인 경우만 파견으로 일괄 변경됩니다. ", "Q999", "") != 6 ) return;
  1791. for(var i = ds_main_dutlist.rowposition; i >= 0; i--) {
  1792. var duttype = ds_main_dutlist.getColumn(i, "duttyped"); //선택한 근무코드
  1793. if(duttype == "TR" || duttype == "OF" || duttype == "NA" || utlf_isNull(duttype)) {
  1794. ds_main_dutlist.enableevent = false;
  1795. ds_main_dutlist.updatecontrol = false;
  1796. ds_main_dutlist.setColumn(i, "duttyped", "25"); //25:파견
  1797. ds_main_dutlist.setRowType(i, 4);
  1798. fDutHrSet(i);
  1799. ds_main_dutlist.updatecontrol = true;
  1800. ds_main_dutlist.enableevent = true;
  1801. } else if(duttype == "25") { //25:파견
  1802. break;
  1803. }
  1804. }
  1805. }
  1806. //controlKey 를 누른 채 마우스click을 하면 해당 일자까지 분만을 일괄적으로 입력한다.
  1807. //단, 이전의 최근 분만일자가 있으면 그날 이후부터 마우스click한 날짜까지 분만을 입력한다.
  1808. //주간이 TR, OF 인 경우만 주간data를 분만으로 변경 처리한다.
  1809. else if(e.ctrlKey == true) {
  1810. if (sysf_messageBox( "해당 일자까지 일괄 분만 처리 하시겠습니까? \n\n - 주간이 수련, OFF인 경우만 분만으로 일괄 변경됩니다. ", "Q999", "") != 6 ) return;
  1811. for(var i = ds_main_dutlist.rowposition; i >= 0; i--) {
  1812. var duttype = ds_main_dutlist.getColumn(i, "duttyped"); //선택한 근무코드
  1813. if(duttype == "TR" || duttype == "OF" || duttype == "NA" || utlf_isNull(duttype)) {
  1814. ds_main_dutlist.enableevent = false;
  1815. ds_main_dutlist.updatecontrol = false;
  1816. ds_main_dutlist.setColumn(i, "duttyped", "26"); //26:분만
  1817. ds_main_dutlist.setRowType(i, 4);
  1818. fDutHrSet(i);
  1819. ds_main_dutlist.updatecontrol = true;
  1820. ds_main_dutlist.enableevent = true;
  1821. } else if(duttype == "26") { //26:분만
  1822. break;
  1823. }
  1824. }
  1825. }
  1826. }
  1827. }
  1828. ]]></Script>
  1829. </Form>
  1830. </FDL>