SMRPD30300_전공의수련현황표.xfdl 61 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMRPD30300" position="absolute 0 0 1199 805" titletext="전공의 수련 현황표" oninit="SMRPD30300_oninit" onload="SMRPD30300_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="전공의 수련 현황표" class="tit_1" position="absolute 0 0 293 25"/>
  8. <Shape id="line2" class="line_6" position="absolute 0 46 1194 52" anchor="left top right"/>
  9. <Button id="btn_excelAll" taborder="1" text="엑셀출력(전체)" class="btn1" visible="false" position="absolute 360 24 476 46" onclick="btn_excelAll_onclick"/>
  10. <Button id="btn_send" taborder="2" text="확정" class="btn4" position="absolute 1056 25 1112 47" anchor="top right" onclick="btn_send_onclick"/>
  11. <Button id="btn_sendCancel" taborder="3" text="확정취소" class="btn4" position="absolute 1114 25 1194 47" anchor="top right" onclick="btn_sendCancel_onclick"/>
  12. <Div id="grp_sea" taborder="4" class="div_SA2" position="absolute 0 50 1194 90" anchor="left top right">
  13. <Layouts>
  14. <Layout>
  15. <Shape id="line5" linetype="vertical" class="line_4" position="absolute 1077 8 1083 32" anchor="top right"/>
  16. <Button id="btn_search" taborder="6" text="조회" class="btn1" position="absolute 1100 9 1156 31" anchor="top right" onclick="grp_sea_btn_search_onclick"/>
  17. <Edit id="opt_deptnm" taborder="7" readonly="true" position="absolute 622 10 812 29" autoselect="true" autoskip="true" class="output"/>
  18. <Static id="caption1" text="부서코드" class="search_name" position="absolute 445 11 521 28"/>
  19. <Edit id="ipt_deptcd" taborder="8" class="input_default" position="absolute 527 10 602 29" autoselect="true" autoskip="true" onkeyup="grp_sea_ipt_deptcd_onkeyup"/>
  20. <Button id="btn_deptcd" taborder="9" class="icon_search" position="absolute 604 11 620 27" onclick="grp_sea_btn_deptcd_onclick"/>
  21. <Static id="caption9" text="근무년월" class="search_name" position="absolute 275 11 356 28"/>
  22. <Button id="btn_emplnos" taborder="10" class="icon_search" position="absolute 937 12 953 28" onclick="grp_sea_btn_emplnos_onclick"/>
  23. <Static id="caption2" text="사번" class="search_name" position="absolute 824 11 880 28"/>
  24. <Edit id="ipt_emplnos" taborder="11" class="input_default" position="absolute 879 10 935 29" autoskip="true" autoselect="true" onkeyup="grp_sea_ipt_emplnos_onkeyup"/>
  25. <Edit id="ipt_emplnms" taborder="12" class="input_default" position="absolute 955 10 1061 29" autoskip="true" autoselect="true" onkeyup="grp_sea_ipt_emplnms_onkeyup"/>
  26. <Calendar id="ipt_ym" taborder="13" class="input_default" position="absolute 357 10 435 29" mask="yyyy-mm" autoselect="true" autoskip="true" dateformat="yyyy-MM" value="null" editformat="yyyy-MM" onchanged="grp_sea_ipt_ym_onchanged"/>
  27. <Combo id="cmb_instcd" taborder="14" class="combo_s_default" enable="false" position="absolute 120 10 262 29" onitemchanged="grp_sea_cmb_instcd_onitemchanged"/>
  28. <Static id="caption29" text="기관코드" class="search_name" position="absolute 39 11 115 28"/>
  29. </Layout>
  30. </Layouts>
  31. </Div>
  32. <Shape id="line3" class="line_10" position="absolute 0 116 280 122"/>
  33. <Static id="caption21" text="대상 목록" class="tit_2" position="absolute 0 100 80 122"/>
  34. <Button id="btn_excel" taborder="5" text="엑셀출력" class="btn7" position="absolute 768 97 848 116" anchor="top right" onclick="btn_excel_onclick"/>
  35. <Grid id="grd_emplist" taborder="6" binddataset="ds_main_emplist" autoenter="select" useinputpanel="false" cellsizingtype="col" autofittype="col" position="absolute 0 121 280 671" anchor="left top bottom" oncellclick="grd_emplist_oncellclick" selecttype="multirow">
  36. <Formats>
  37. <Format id="default">
  38. <Columns>
  39. <Column size="27"/>
  40. <Column size="34"/>
  41. <Column size="41"/>
  42. <Column size="56"/>
  43. <Column size="114"/>
  44. <Column size="0"/>
  45. <Column size="0"/>
  46. </Columns>
  47. <Rows>
  48. <Row size="24" band="head"/>
  49. <Row size="24"/>
  50. </Rows>
  51. <Band id="head">
  52. <Cell/>
  53. <Cell col="1" text="선택"/>
  54. <Cell col="2" text="사번"/>
  55. <Cell col="3" text="성명"/>
  56. <Cell col="4" text="처리상태"/>
  57. <Cell col="5" text="procstat"/>
  58. <Cell col="6" text="deptcd"/>
  59. </Band>
  60. <Band id="body">
  61. <Cell celltype="head" expr="expr:currow == ds_main_emplist.rowposition ? '▶' : ''" displayexpdec="0"/>
  62. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'Y' || chk == '1' ? 1 : 0"/>
  63. <Cell col="2" text="bind:emplno"/>
  64. <Cell col="3" text="bind:emplnm"/>
  65. <Cell col="4" text="bind:procstatnm"/>
  66. <Cell col="5" text="bind:procstat"/>
  67. <Cell col="6" text="bind:deptcd"/>
  68. </Band>
  69. </Format>
  70. </Formats>
  71. </Grid>
  72. <Grid id="grd_dutlist" taborder="7" binddataset="ds_main_dutlist" autoenter="select" useinputpanel="false" cellsizingtype="col" position="absolute 282 121 1193 486" anchor="all" oncellclick="grd_dutlist_oncellclick" selecttype="multirow">
  73. <Formats>
  74. <Format id="default">
  75. <Columns>
  76. <Column size="21"/>
  77. <Column size="34"/>
  78. <Column size="48"/>
  79. <Column size="68"/>
  80. <Column size="30"/>
  81. <Column size="66"/>
  82. <Column size="131"/>
  83. <Column size="78"/>
  84. <Column size="73"/>
  85. <Column size="38"/>
  86. <Column size="73"/>
  87. <Column size="38"/>
  88. <Column size="55"/>
  89. <Column size="55"/>
  90. <Column size="178"/>
  91. <Column size="60"/>
  92. <Column size="0"/>
  93. <Column size="62"/>
  94. <Column size="0"/>
  95. <Column size="66"/>
  96. <Column size="0"/>
  97. <Column size="88"/>
  98. <Column size="0"/>
  99. <Column size="0"/>
  100. <Column size="0"/>
  101. <Column size="0"/>
  102. <Column size="0"/>
  103. <Column size="0"/>
  104. </Columns>
  105. <Rows>
  106. <Row size="24" band="head"/>
  107. <Row size="24"/>
  108. </Rows>
  109. <Band id="head">
  110. <Cell/>
  111. <Cell col="1" text="No."/>
  112. <Cell col="2" text="사번"/>
  113. <Cell col="3" text="성명"/>
  114. <Cell col="4" text="년차"/>
  115. <Cell col="5" text="직종"/>
  116. <Cell col="6" text="부서"/>
  117. <Cell col="7" text="근무형태"/>
  118. <Cell col="8" colspan="2" text="시작일시" taborder="undefined"/>
  119. <Cell col="10" colspan="2" text="종료일시" taborder="undefined"/>
  120. <Cell col="12" text="근무시간"/>
  121. <Cell col="13" text="첨부파일"/>
  122. <Cell col="14" text="비고"/>
  123. <Cell col="15" text="의국장"/>
  124. <Cell col="16" text="의국장확인"/>
  125. <Cell col="17" text="임상과장"/>
  126. <Cell col="18" text="과장승인"/>
  127. <Cell col="19" text="교육수련"/>
  128. <Cell col="20" text="교육수련확인"/>
  129. <Cell col="21" text="교육수련실장"/>
  130. <Cell col="22" text="최종승인"/>
  131. <Cell col="23" text="첨부파일경로"/>
  132. <Cell col="24" text="첨부파일명"/>
  133. <Cell col="25" text="근무형태코드"/>
  134. <Cell col="26" text="orgfromdd"/>
  135. <Cell col="27" text="orgfromtm"/>
  136. </Band>
  137. <Band id="body">
  138. <Cell celltype="head"/>
  139. <Cell col="1" text="bind:no"/>
  140. <Cell col="2" text="bind:emplno"/>
  141. <Cell col="3" text="bind:emplnm"/>
  142. <Cell col="4" text="bind:anual"/>
  143. <Cell col="5" text="bind:jobkindnm"/>
  144. <Cell col="6" text="bind:deptnm"/>
  145. <Cell col="7" text="bind:duttypenm"/>
  146. <Cell col="8" displaytype="date" text="bind:fromdd" calendardisplaynulltype="nulltext"/>
  147. <Cell col="9" text="bind:fromtm" mask="##:##" maskchar=" "/>
  148. <Cell col="10" displaytype="date" text="bind:todd" calendardisplaynulltype="nulltext"/>
  149. <Cell col="11" text="bind:totm" mask="##:##" maskchar=" "/>
  150. <Cell col="12" text="bind:duttime"/>
  151. <Cell col="13" text="bind:fileyn"/>
  152. <Cell col="14" text="bind:cmt"/>
  153. <Cell col="15" text="bind:aprvpsn1"/>
  154. <Cell col="16" text="bind:aprvdd1" mask="yyyy-mm-dd"/>
  155. <Cell col="17" text="bind:aprvpsn2"/>
  156. <Cell col="18" text="bind:aprvdd2" mask="yyyy-mm-dd"/>
  157. <Cell col="19" text="bind:aprvpsn3"/>
  158. <Cell col="20" text="bind:aprvdd3" mask="yyyy-mm-dd"/>
  159. <Cell col="21" text="bind:aprvpsn4"/>
  160. <Cell col="22" text="bind:aprvdd4" mask="yyyy-mm-dd"/>
  161. <Cell col="23" text="bind:filepath"/>
  162. <Cell col="24" text="bind:filenm"/>
  163. <Cell col="25" text="bind:duttype"/>
  164. <Cell col="26" text="bind:orgfromdd"/>
  165. <Cell col="27" text="bind:orgfromtm"/>
  166. </Band>
  167. </Format>
  168. </Formats>
  169. </Grid>
  170. <Shape id="line1" class="line_10" position="absolute 282 116 1193 122" anchor="left top right"/>
  171. <Static id="caption3" text="개인별 수련 현황" class="tit_2" position="absolute 283 100 409 121"/>
  172. <Static id="caption14" text="상세내역" class="tit_2" position="absolute 286 510 435 531" anchor="left bottom"/>
  173. <Button id="btn_new" taborder="8" text="신규" class="btn4" position="absolute 1018 508 1074 530" anchor="right bottom" onclick="btn_new_onclick"/>
  174. <Button id="btn_delete" taborder="9" text="삭제" class="btn4" position="absolute 1078 508 1134 530" anchor="right bottom" onclick="btn_delete_onclick"/>
  175. <Button id="btn_save" taborder="10" text="저장" class="btn4" position="absolute 1138 508 1194 530" anchor="right bottom" onclick="btn_save_onclick"/>
  176. <Static id="caption22" text=" - 인턴 : 개인자료 등록(=임시저장) -&gt; 개인자료 (월단위) 확정 -&gt; 교육수련 담당자 확인 -&gt; 최종승인(교육수련실장)" position="absolute 5 702 849 722" style="color:#ff0000ff;" anchor="left bottom"/>
  177. <Button id="btn_print1" taborder="11" text="수련대장(개인별)" class="btn2" position="absolute 850 97 958 116" anchor="top right" onclick="btn_print1_onclick"/>
  178. <Static id="caption23" text="※ 부서, 년차, 직종은 조회하신 근무년월의 마지막 일자를 기준으로 인사발령정보를 참조합니다." position="absolute 5 720 539 740" style="color:#ff0000ff;" anchor="left bottom"/>
  179. <Static id="caption24" text=" - 레지던트 : 개인자료 등록(=임시저장) -&gt; 개인자료 (월단위) 확정 -&gt; 의국장 확인 -&gt; 부서장 승인 -&gt; 교육수련 담당자 확인 -&gt; 최종승인(교육수련실장)" position="absolute 5 687 849 707" style="color:#ff0000ff;" anchor="left bottom"/>
  180. <Static id="caption25" text="※ 처리 절차" position="absolute 5 671 849 691" style="color:#ff0000ff;" anchor="left bottom"/>
  181. <Static id="caption26" text="※ 칠곡 소아청소년 분과 중 하나를 선택 시, 아래 8개 분과 전체가 다 함께 조회됩니다. (본원은 해당되지 않습니다.)" position="absolute 5 735 812 763" style="color:#ff0000ff;" anchor="left bottom"/>
  182. <Static id="caption27" text="- 소아알레르기호흡기, 소아청소년내분비, 소아청소년소화기영양, 소아청소년신경, 소아청소년신장, 소아청소년심장, 소아청소년혈액종양, 신생아" position="absolute 20 752 827 780" style="color:#ff0000ff;" anchor="left bottom"/>
  183. <Button id="btn_upload" taborder="12" text="엑셀 Upload" class="btn7" position="absolute 910 508 1014 530" anchor="right bottom" onclick="btn_upload_onclick"/>
  184. <CheckBox id="cbx_perioduseyn" taborder="13" text="기간" truevalue="Y" position="absolute 962 96 1007 116" anchor="top right" onclick="cbx_perioduseyn_onclick"/>
  185. <Calendar id="ipt_periodfrom" taborder="14" autoselect="true" autoskip="true" class="input_default" position="absolute 1010 97 1095 116" mask="yyyy-mm-dd" anchor="top right"/>
  186. <Static id="caption28" text="~" position="absolute 1095 99 1110 114" anchor="top right"/>
  187. <Calendar id="ipt_periodto" taborder="15" autoselect="true" autoskip="true" class="input_default" position="absolute 1107 97 1192 116" mask="yyyy-mm-dd" anchor="top right"/>
  188. <Div id="grp_dutinfo" taborder="16" class="div_SA2" position="absolute 283 532 1195 672" anchor="left right bottom">
  189. <Layouts>
  190. <Layout>
  191. <Static id="caption5" text="근태코드" position="absolute 18 36 95 53" anchor="default" style="font:Dotum,9,bold;"/>
  192. <Static id="caption10" text="근무일시" position="absolute 18 61 95 78" anchor="default" style="font:Dotum,9,bold;"/>
  193. <Static id="caption11" text="사 번" class="search_s_default" position="absolute 18 11 95 28" anchor="default" style="font:Dotum,9,bold;"/>
  194. <Static id="caption12" text="비 고" position="absolute 18 86 95 103" anchor="default" style="font:Dotum,9,bold;"/>
  195. <Static id="caption13" text="첨부파일" position="absolute 18 112 95 129" anchor="default" style="font:Dotum,9,bold;"/>
  196. <Static id="caption15" text="시" position="absolute 215 61 230 81" anchor="default"/>
  197. <Static id="caption16" text="분 부터" position="absolute 258 61 300 83" anchor="default"/>
  198. <Button id="btn_fileup1" taborder="60" text="등록" class="btn2" position="absolute 140 110 182 129" anchor="default" onclick="grp_dutinfo_btn_fileup1_onclick" visible="false"/>
  199. <Edit id="ipt_updpath" taborder="61" autoselect="true" autoskip="true" visible="false" position="absolute 310 110 410 129" anchor="default"/>
  200. <Button id="btn_filedown1" taborder="62" text="다운" class="btn2" position="absolute 230 110 272 129" anchor="default" onclick="grp_dutinfo_btn_filedown1_onclick"/>
  201. <Combo id="cmb_fileyn1" taborder="63" codecolumn="codecolumn" datacolumn="datacolumn" enable="false" position="absolute 95 110 135 129" anchor="default">
  202. <Dataset id="innerdataset">
  203. <ColumnInfo>
  204. <Column id="codecolumn"/>
  205. <Column id="datacolumn"/>
  206. </ColumnInfo>
  207. <Rows>
  208. <Row>
  209. <Col id="codecolumn">Y</Col>
  210. <Col id="datacolumn">Y</Col>
  211. </Row>
  212. <Row>
  213. <Col id="codecolumn">N</Col>
  214. <Col id="datacolumn">N</Col>
  215. </Row>
  216. </Rows>
  217. </Dataset>
  218. </Combo>
  219. <Button id="btn_filedel1" taborder="64" text="삭제" class="btn2" position="absolute 185 110 227 129" anchor="default" onclick="grp_dutinfo_btn_filedel1_onclick" visible="false"/>
  220. <Static id="caption8" text="의 국 장 확 인" position="absolute 553 11 660 28" anchor="default" style="font:Dotum,9,bold;"/>
  221. <Static id="caption17" text="부 서 장 승 인" position="absolute 553 36 663 53" anchor="default" style="font:Dotum,9,bold;"/>
  222. <Static id="caption18" text="교육수련담당확인" position="absolute 553 61 659 78" anchor="default" style="font:Dotum,9,bold;"/>
  223. <Static id="caption19" text="시" position="absolute 424 61 439 81" anchor="default"/>
  224. <Static id="caption20" text="분 까지" position="absolute 467 61 509 83" anchor="default"/>
  225. <Edit id="ipt_aprvpsn1" taborder="65" enable="false" position="absolute 665 10 737 29" anchor="default"/>
  226. <Edit id="ipt_aprvpsn2" taborder="66" enable="false" position="absolute 665 35 737 54" anchor="default"/>
  227. <Edit id="ipt_aprvpsn3" taborder="67" enable="false" position="absolute 665 60 737 79" anchor="default"/>
  228. <Edit id="ipt_aprvpsn4" taborder="68" enable="false" position="absolute 665 85 737 104" anchor="default"/>
  229. <MaskEdit id="ipt_aprvdd1" taborder="69" mask="yyyy-mm-dd" enable="false" visible="false" position="absolute 740 10 835 29" anchor="default"/>
  230. <MaskEdit id="ipt_aprvdd2" taborder="70" mask="yyyy-mm-dd" enable="false" visible="false" position="absolute 740 35 835 54" anchor="default"/>
  231. <MaskEdit id="ipt_aprvdd3" taborder="71" mask="yyyy-mm-dd" enable="false" visible="false" position="absolute 740 60 835 79" anchor="default"/>
  232. <MaskEdit id="ipt_aprvdd4" taborder="72" mask="yyyy-mm-dd" enable="false" visible="false" position="absolute 740 85 835 104" anchor="default"/>
  233. <Combo id="cmb_duttype" taborder="73" innerdataset="@ds_init_duttype_codelist" codecolumn="cdid" datacolumn="cdnm" class="combo_s_default" position="absolute 95 35 260 54" anchor="default"/>
  234. <Calendar id="ipt_fromdd" taborder="74" autoselect="true" autoskip="true" position="absolute 95 60 185 79" mask="yyyy-mm-dd" anchor="default"/>
  235. <MaskEdit id="ipt_fromtm1" taborder="75" mask="hh" autoselect="true" autoskip="true" position="absolute 189 60 215 79" anchor="default" onkeyup="grp_dutinfo_ipt_fromtm1_onkeyup"/>
  236. <MaskEdit id="ipt_fromtm2" taborder="76" mask="nn" enable="false" position="absolute 232 60 258 79" anchor="default"/>
  237. <Calendar id="ipt_todd" taborder="77" autoselect="true" autoskip="true" position="absolute 304 60 394 79" mask="yyyy-mm-dd" anchor="default"/>
  238. <MaskEdit id="ipt_totm1" taborder="78" mask="hh" autoselect="true" autoskip="true" position="absolute 398 60 424 79" anchor="default" onkeyup="grp_dutinfo_ipt_totm1_onkeyup"/>
  239. <MaskEdit id="ipt_totm2" taborder="79" mask="nn" enable="false" position="absolute 441 60 467 79" anchor="default"/>
  240. <Edit id="ipt_cmt" taborder="80" autoselect="true" autoskip="true" position="absolute 95 85 510 104" anchor="default"/>
  241. <Button id="btn_emplno" taborder="81" class="icon_search" position="absolute 153 11 169 27" anchor="default" onclick="grp_dutinfo_btn_emplno_onclick"/>
  242. <Edit id="ipt_emplno" taborder="82" autoselect="true" autoskip="true" class="input_default" position="absolute 95 10 151 29" anchor="default" onkeyup="grp_dutinfo_ipt_emplno_onkeyup"/>
  243. <Edit id="ipt_emplnm" taborder="83" autoselect="true" autoskip="true" class="input_default" position="absolute 171 10 260 29" anchor="default" onkeyup="grp_dutinfo_ipt_emplnm_onkeyup"/>
  244. <Static id="caption7" text="최 종 승 인" position="absolute 553 86 659 103" anchor="default" style="font:Dotum,9,bold;"/>
  245. </Layout>
  246. </Layouts>
  247. </Div>
  248. </Layout>
  249. </Layouts>
  250. <Objects>
  251. <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">
  252. <ColumnInfo>
  253. <Column id="ym" type="STRING" size="256"/>
  254. <Column id="deptcd" type="STRING" size="256"/>
  255. <Column id="deptnm" type="STRING" size="256"/>
  256. <Column id="emplno" type="STRING" size="256"/>
  257. <Column id="emplnm" type="STRING" size="256"/>
  258. <Column id="powertp" type="STRING" size="256"/>
  259. <Column id="perioduseyn" type="STRING" size="256"/>
  260. <Column id="periodfrom" type="STRING" size="256"/>
  261. <Column id="periodto" type="STRING" size="256"/>
  262. <Column id="instcd" type="STRING" size="256"/>
  263. </ColumnInfo>
  264. <Rows>
  265. <Row>
  266. <Col id="ym"/>
  267. <Col id="deptcd"/>
  268. <Col id="deptnm"/>
  269. <Col id="emplno"/>
  270. <Col id="emplnm"/>
  271. <Col id="powertp"/>
  272. <Col id="perioduseyn"/>
  273. <Col id="periodfrom"/>
  274. <Col id="periodto"/>
  275. <Col id="instcd"/>
  276. </Row>
  277. </Rows>
  278. </Dataset>
  279. <Dataset id="ds_main_emplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_emplist_oncolumnchanged">
  280. <ColumnInfo>
  281. <Column id="chk" type="STRING" size="256" sumtext="순번"/>
  282. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  283. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  284. <Column id="procstatnm" type="STRING" size="256" sumtext="처리상태"/>
  285. <Column id="procstat" type="STRING" size="256" sumtext="처리상태"/>
  286. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  287. </ColumnInfo>
  288. </Dataset>
  289. <Dataset id="ds_main_dutlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  290. <ColumnInfo>
  291. <Column id="no" type="STRING" size="256" sumtext="순번"/>
  292. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  293. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  294. <Column id="anual" type="STRING" size="256" sumtext="년차"/>
  295. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종"/>
  296. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  297. <Column id="duttype" type="STRING" size="256" sumtext="근무형태"/>
  298. <Column id="duttypenm" type="STRING" size="256" sumtext="근태명"/>
  299. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  300. <Column id="fromtm" type="STRING" size="256" sumtext="시작시간"/>
  301. <Column id="todd" type="STRING" size="256" sumtext="종료일자"/>
  302. <Column id="totm" type="STRING" size="256" sumtext="종료시간"/>
  303. <Column id="duttime" type="STRING" size="256" sumtext="시간"/>
  304. <Column id="procstat" type="STRING" size="256" sumtext="진행상태"/>
  305. <Column id="cmt" type="STRING" size="256" sumtext="비고"/>
  306. <Column id="fileyn" type="STRING" size="256" sumtext="첨부파일여부"/>
  307. <Column id="filepath" type="STRING" size="256" sumtext="첨부파일경로"/>
  308. <Column id="filenm" type="STRING" size="256" sumtext="첨부파일명"/>
  309. <Column id="aprvpsn1" type="STRING" size="256" sumtext="승인자1"/>
  310. <Column id="aprvdd1" type="STRING" size="256" sumtext="승인일시1"/>
  311. <Column id="aprvpsn2" type="STRING" size="256" sumtext="승인자2"/>
  312. <Column id="aprvdd2" type="STRING" size="256" sumtext="승인일시2"/>
  313. <Column id="aprvpsn3" type="STRING" size="256" sumtext="승인자3"/>
  314. <Column id="aprvdd3" type="STRING" size="256" sumtext="승인일시3"/>
  315. <Column id="aprvpsn4" type="STRING" size="256" sumtext="승인자4"/>
  316. <Column id="aprvdd4" type="STRING" size="256" sumtext="승인일시4"/>
  317. <Column id="orgfromdd" type="STRING" size="256" sumtext="성명"/>
  318. <Column id="orgfromtm" type="STRING" size="256" sumtext="성명"/>
  319. </ColumnInfo>
  320. </Dataset>
  321. <Dataset id="ds_main_dutinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_dutinfo_oncolumnchanged">
  322. <ColumnInfo>
  323. <Column id="emplno" type="STRING" size="256"/>
  324. <Column id="emplnm" type="STRING" size="256"/>
  325. <Column id="anual" type="STRING" size="256"/>
  326. <Column id="jobkindnm" type="STRING" size="256"/>
  327. <Column id="deptnm" type="STRING" size="256"/>
  328. <Column id="duttypenm" type="STRING" size="256"/>
  329. <Column id="fromdd" type="STRING" size="256"/>
  330. <Column id="fromtm" type="STRING" size="256"/>
  331. <Column id="todd" type="STRING" size="256"/>
  332. <Column id="totm" type="STRING" size="256"/>
  333. <Column id="duttime" type="STRING" size="256"/>
  334. <Column id="fileyn" type="STRING" size="256"/>
  335. <Column id="cmt" type="STRING" size="256"/>
  336. <Column id="filepath" type="STRING" size="256"/>
  337. <Column id="filenm" type="STRING" size="256"/>
  338. <Column id="duttype" type="STRING" size="256"/>
  339. <Column id="procstat" type="STRING" size="256"/>
  340. <Column id="aprvpsn1" type="STRING" size="256"/>
  341. <Column id="aprvdd1" type="STRING" size="256"/>
  342. <Column id="aprvpsn2" type="STRING" size="256"/>
  343. <Column id="aprvdd2" type="STRING" size="256"/>
  344. <Column id="aprvpsn3" type="STRING" size="256"/>
  345. <Column id="aprvdd3" type="STRING" size="256"/>
  346. <Column id="aprvpsn4" type="STRING" size="256"/>
  347. <Column id="aprvdd4" type="STRING" size="256"/>
  348. <Column id="orgfromdd" type="STRING" size="256"/>
  349. <Column id="orgfromtm" type="STRING" size="256"/>
  350. <Column id="fromtm1" type="STRING" size="256"/>
  351. <Column id="fromtm2" type="STRING" size="256"/>
  352. <Column id="totm1" type="STRING" size="256"/>
  353. <Column id="totm2" type="STRING" size="256"/>
  354. <Column id="status" type="STRING" size="256"/>
  355. </ColumnInfo>
  356. <Rows>
  357. <Row>
  358. <Col id="emplno"/>
  359. <Col id="emplnm"/>
  360. <Col id="anual"/>
  361. <Col id="jobkindnm"/>
  362. <Col id="deptnm"/>
  363. <Col id="duttypenm"/>
  364. <Col id="fromdd"/>
  365. <Col id="fromtm"/>
  366. <Col id="todd"/>
  367. <Col id="totm"/>
  368. <Col id="duttime"/>
  369. <Col id="fileyn"/>
  370. <Col id="cmt"/>
  371. <Col id="filepath"/>
  372. <Col id="filenm"/>
  373. <Col id="duttype"/>
  374. <Col id="procstat"/>
  375. <Col id="aprvpsn1"/>
  376. <Col id="aprvdd1"/>
  377. <Col id="aprvpsn2"/>
  378. <Col id="aprvdd2"/>
  379. <Col id="aprvpsn3"/>
  380. <Col id="aprvdd3"/>
  381. <Col id="aprvpsn4"/>
  382. <Col id="aprvdd4"/>
  383. <Col id="orgfromdd"/>
  384. <Col id="orgfromtm"/>
  385. <Col id="fromtm1"/>
  386. <Col id="fromtm2"/>
  387. <Col id="totm1"/>
  388. <Col id="totm2"/>
  389. <Col id="status"/>
  390. </Row>
  391. </Rows>
  392. </Dataset>
  393. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  394. <ColumnInfo>
  395. <Column id="file" type="STRING" size="256"/>
  396. </ColumnInfo>
  397. </Dataset>
  398. <Dataset id="ds_init_duttype_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  399. <ColumnInfo>
  400. <Column id="cdid" type="STRING" size="256" sumtext="코드"/>
  401. <Column id="cdnm" type="STRING" size="256" sumtext="코드명"/>
  402. </ColumnInfo>
  403. </Dataset>
  404. <Dataset id="ds_main_powerinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  405. <ColumnInfo>
  406. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  407. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  408. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  409. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  410. <Column id="powertp" type="STRING" size="256" sumtext="권한유형"/>
  411. </ColumnInfo>
  412. </Dataset>
  413. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  414. <ColumnInfo>
  415. <Column id="fromdd" type="STRING" size="256"/>
  416. <Column id="todd" type="STRING" size="256"/>
  417. <Column id="deptcd" type="STRING" size="256"/>
  418. <Column id="emplno" type="STRING" size="256"/>
  419. </ColumnInfo>
  420. <Rows>
  421. <Row/>
  422. </Rows>
  423. </Dataset>
  424. <Dataset id="ds_print_prtlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  425. <ColumnInfo>
  426. <Column id="emplno" type="STRING" size="256" sumtext="사번"/>
  427. <Column id="emplnm" type="STRING" size="256" sumtext="성명"/>
  428. <Column id="anual" type="STRING" size="256" sumtext="년차"/>
  429. <Column id="jobkindnm" type="STRING" size="256" sumtext="직종"/>
  430. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  431. <Column id="duttypenm" type="STRING" size="256" sumtext="근태명"/>
  432. <Column id="detldesc" type="STRING" size="256" sumtext="상세업무기술"/>
  433. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  434. <Column id="fromtm" type="STRING" size="256" sumtext="시작시간"/>
  435. <Column id="todd" type="STRING" size="256" sumtext="종료일자"/>
  436. <Column id="totm" type="STRING" size="256" sumtext="종료시간"/>
  437. <Column id="duttime" type="STRING" size="256" sumtext="시간"/>
  438. <Column id="cmt" type="STRING" size="256" sumtext="비고"/>
  439. <Column id="day" type="STRING" size="256" sumtext="요일"/>
  440. <Column id="jugan" type="STRING" size="256" sumtext="주간"/>
  441. <Column id="dangjik" type="STRING" size="256" sumtext="당직"/>
  442. <Column id="hyusik" type="STRING" size="256" sumtext="휴식"/>
  443. <Column id="off" type="STRING" size="256" sumtext="휴일"/>
  444. <Column id="aprv1" type="STRING" size="256" sumtext="승인자1"/>
  445. <Column id="aprv2" type="STRING" size="256" sumtext="승인자2"/>
  446. <Column id="aprv3" type="STRING" size="256" sumtext="승인자3"/>
  447. <Column id="aprv4" type="STRING" size="256" sumtext="승인자4"/>
  448. </ColumnInfo>
  449. </Dataset>
  450. <Dataset id="ds_send_emplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  451. <Dataset id="ds_delete" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  452. <ColumnInfo>
  453. <Column id="filepath" type="STRING" size="256"/>
  454. </ColumnInfo>
  455. </Dataset>
  456. <Dataset id="ds_attachfile" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  457. <ColumnInfo>
  458. <Column id="filedata" type="STRING" size="256"/>
  459. </ColumnInfo>
  460. </Dataset>
  461. <Dataset id="ds_send_attach" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  462. <ColumnInfo>
  463. <Column id="filenm" type="STRING" size="256" sumtext="파일명"/>
  464. <Column id="filedata" type="STRING" size="256" sumtext="파일데이터"/>
  465. <Column id="filesize" type="STRING" size="256" sumtext="파일크기"/>
  466. <Column id="filetype" type="STRING" size="256" sumtext="파일종류"/>
  467. </ColumnInfo>
  468. </Dataset>
  469. </Objects>
  470. <Bind>
  471. <BindItem id="item0" compid="grp_sea.ipt_ym" propid="value" datasetid="ds_main_condition" columnid="ym"/>
  472. <BindItem id="item1" compid="grp_sea.cmb_instcd" propid="value" datasetid="ds_main_condition" columnid="instcd"/>
  473. <BindItem id="item2" compid="grp_sea.ipt_deptcd" propid="value" datasetid="ds_main_condition" columnid="deptcd"/>
  474. <BindItem id="item3" compid="grp_sea.opt_deptnm" propid="value" datasetid="ds_main_condition" columnid="deptnm"/>
  475. <BindItem id="item4" compid="grp_sea.ipt_emplnos" propid="value" datasetid="ds_main_condition" columnid="emplno"/>
  476. <BindItem id="item5" compid="grp_sea.ipt_emplnms" propid="value" datasetid="ds_main_condition" columnid="emplnm"/>
  477. <BindItem id="item6" compid="ipt_periodfrom" propid="value" datasetid="ds_main_condition" columnid="periodfrom"/>
  478. <BindItem id="item7" compid="ipt_periodto" propid="value" datasetid="ds_main_condition" columnid="periodto"/>
  479. <BindItem id="item8" compid="cbx_perioduseyn" propid="value" datasetid="ds_main_condition" columnid="perioduseyn"/>
  480. <BindItem id="item9" compid="grp_dutinfo.ipt_emplno" propid="value" datasetid="ds_main_dutinfo" columnid="emplno"/>
  481. <BindItem id="item10" compid="grp_dutinfo.ipt_emplnm" propid="value" datasetid="ds_main_dutinfo" columnid="emplnm"/>
  482. <BindItem id="item11" compid="grp_dutinfo.cmb_duttype" propid="value" datasetid="ds_main_dutinfo" columnid="duttype"/>
  483. <BindItem id="item12" compid="grp_dutinfo.ipt_fromdd" propid="value" datasetid="ds_main_dutinfo" columnid="fromdd"/>
  484. <BindItem id="item13" compid="grp_dutinfo.ipt_fromtm1" propid="value" datasetid="ds_main_dutinfo" columnid="fromtm1"/>
  485. <BindItem id="item14" compid="grp_dutinfo.ipt_fromtm2" propid="value" datasetid="ds_main_dutinfo" columnid="fromtm2"/>
  486. <BindItem id="item15" compid="grp_dutinfo.ipt_todd" propid="value" datasetid="ds_main_dutinfo" columnid="todd"/>
  487. <BindItem id="item16" compid="grp_dutinfo.ipt_totm1" propid="value" datasetid="ds_main_dutinfo" columnid="totm1"/>
  488. <BindItem id="item17" compid="grp_dutinfo.ipt_totm2" propid="value" datasetid="ds_main_dutinfo" columnid="totm2"/>
  489. <BindItem id="item18" compid="grp_dutinfo.ipt_cmt" propid="value" datasetid="ds_main_dutinfo" columnid="cmt"/>
  490. <BindItem id="item19" compid="grp_dutinfo.ipt_updpath" propid="value" datasetid="ds_hidden" columnid="file"/>
  491. <BindItem id="item20" compid="grp_dutinfo.cmb_fileyn1" propid="value" datasetid="ds_main_dutinfo" columnid="fileyn"/>
  492. <BindItem id="item21" compid="grp_dutinfo.ipt_aprvpsn1" propid="value" datasetid="ds_main_dutinfo" columnid="aprvpsn1"/>
  493. <BindItem id="item22" compid="grp_dutinfo.ipt_aprvdd1" propid="value" datasetid="ds_main_dutinfo" columnid="aprvdd1"/>
  494. <BindItem id="item23" compid="grp_dutinfo.ipt_aprvdd2" propid="value" datasetid="ds_main_dutinfo" columnid="aprvdd2"/>
  495. <BindItem id="item24" compid="grp_dutinfo.ipt_aprvpsn2" propid="value" datasetid="ds_main_dutinfo" columnid="aprvpsn2"/>
  496. <BindItem id="item25" compid="grp_dutinfo.ipt_aprvpsn3" propid="value" datasetid="ds_main_dutinfo" columnid="aprvpsn3"/>
  497. <BindItem id="item26" compid="grp_dutinfo.ipt_aprvdd3" propid="value" datasetid="ds_main_dutinfo" columnid="aprvdd3"/>
  498. <BindItem id="item27" compid="grp_dutinfo.ipt_aprvpsn4" propid="value" datasetid="ds_main_dutinfo" columnid="aprvpsn4"/>
  499. <BindItem id="item28" compid="grp_dutinfo.ipt_aprvdd4" propid="value" datasetid="ds_main_dutinfo" columnid="aprvdd4"/>
  500. </Bind>
  501. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  502. * System Name :
  503. * Job Name :
  504. * Creator :
  505. * Make Date : 2017-06-19
  506. * Description :
  507. *---------------------------------------------------------------------------------------
  508. * Modify Date Modifier Modify Description
  509. *---------------------------------------------------------------------------------------
  510. * 2017-06-19 Live Converter TF->XP
  511. *
  512. *---------------------------------------------------------------------------------------
  513. ****************************************************************************************/
  514. include "com_commonxp::comm_main.xjs";
  515. include "mis_miscommonxp::MIS.xjs";
  516. include "mis_humtrafactmngtxp::RPB001.xjs";
  517. var toggleVal = "Y";
  518. function SMRPD30300_oninit(obj:Form, e:InitEventInfo)
  519. {
  520. frmf_initForm(obj);
  521. }
  522. function SMRPD30300_onload(obj:Form, e:LoadEventInfo)
  523. {
  524. grdf_initGrid(grd_emplist);
  525. //grdf_setRowTypeIcon(grd_emplist, 0);
  526. grdf_initGrid(grd_dutlist);
  527. grdf_setRowTypeIcon(grd_dutlist, 0);
  528. var instcd = sysf_getUserInfo("dutplceinstcd");
  529. if(instcd == "031" || instcd == "032")
  530. {
  531. btn_send.visible = false;
  532. btn_sendCancel.visible = false;
  533. btn_upload.visible = false;
  534. btn_new.visible = false;
  535. btn_delete.visible = false;
  536. btn_save.visible = false;
  537. grp_dutinfo.btn_fileup1.visible = false;
  538. grp_dutinfo.btn_filedel1.visible = false;
  539. }
  540. fOpenForm();
  541. }
  542. function fOpenForm()
  543. {
  544. misfComboInstCdListMulti("grp_sea.cmb_instcd", utlf_getCurrentDate(),"","N");
  545. grp_sea.cmb_instcd.value = sysf_getUserInfo("dutplceinstcd");
  546. ds_main_emplist.clearData();
  547. ds_main_dutinfo.clearData();
  548. ds_main_condition.setColumn(0, "ym", String(utlf_getCurrentDate()).substr(0,6));
  549. var oParam = {};
  550. oParam.id = "TRRPD30303";
  551. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  552. oParam.method = "reqGetDuttypeList";
  553. oParam.inds = "req=ds_send";
  554. oParam.outds = "ds_init_duttype_codelist=codelist";
  555. oParam.async = false;
  556. //oParam.callback = "cf_TRRPD30303";
  557. tranf_submit(oParam);
  558. var oParam = {};
  559. oParam.id = "TRRPD30305";
  560. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  561. oParam.method = "reqGetDutyPowerInfo";
  562. oParam.inds = "req=ds_send";
  563. oParam.outds = "ds_main_powerinfo=powerinfo";
  564. oParam.async = false;
  565. oParam.callback = "cf_TRRPD30305";
  566. tranf_submit(oParam);
  567. }
  568. function cf_TRRPD30305(sSvcId, nErrorCode, sErrorMsg)
  569. {
  570. if(nErrorCode < 0)
  571. {
  572. return;
  573. }
  574. else
  575. {
  576. var powertp = ds_main_powerinfo.getColumn(0, "powertp");
  577. ds_main_condition.setColumn(0, "powertp", powertp);
  578. if(utlf_isNull(powertp))
  579. {
  580. grp_sea.ipt_emplnos.value = sysf_getUserInfo("userid");
  581. grp_sea.ipt_emplnms.value = sysf_getUserInfo("usernm");
  582. grp_sea.ipt_emplnos.enable = false;
  583. grp_sea.btn_emplnos.enable = false;
  584. grp_sea.ipt_emplnms.enable = false;
  585. btn_send.text = "확정";
  586. btn_sendCancel.text = "확정취소";
  587. }
  588. else if(powertp == "1")
  589. {
  590. grp_sea.ipt_deptcd.value = ds_main_powerinfo.getColumn(0, "deptcd");
  591. grp_sea.opt_deptnm.value = ds_main_powerinfo.getColumn(0, "deptnm");
  592. grp_sea.ipt_deptcd.enable = false;
  593. grp_sea.btn_deptcd.enable = false;
  594. btn_send.text = "확인";
  595. btn_sendCancel.text = "확인취소";
  596. }
  597. else if(powertp == "2")
  598. {
  599. grp_sea.ipt_deptcd.value = ds_main_powerinfo.getColumn(0, "deptcd");
  600. grp_sea.opt_deptnm.value = ds_main_powerinfo.getColumn(0, "deptnm");
  601. grp_sea.ipt_deptcd.enable = false;
  602. grp_sea.btn_deptcd.enable = false;
  603. btn_new.enable = false;
  604. btn_delete.enable = false;
  605. btn_save.enable = false;
  606. grp_dutinfo.btn_fileup1.enable = false;
  607. grp_dutinfo.btn_filedel1.enable = false;
  608. btn_send.text = "승인";
  609. btn_sendCancel.text= "승인취소";
  610. }
  611. else if(powertp == "3")
  612. {
  613. btn_new.enable = false;
  614. btn_delete.enable = false;
  615. btn_save.enable = false;
  616. grp_dutinfo.btn_fileup1.enable = false;
  617. grp_dutinfo.btn_filedel1.enable = false;
  618. btn_send.text = "확인";
  619. btn_sendCancel.text = "확인취소";
  620. }
  621. else if(powertp == "4")
  622. {
  623. btn_new.enable = false;
  624. btn_delete.enable = false;
  625. btn_save.enable = false;
  626. grp_dutinfo.btn_fileup1.enable = false;
  627. grp_dutinfo.btn_filedel1.enable = false;
  628. btn_send.text = "승인";
  629. btn_sendCancel.text = "승인취소";
  630. }
  631. grp_dutinfo.ipt_fromtm2.value = "00";
  632. grp_dutinfo.ipt_totm2.value = "00";
  633. dsf_makeValue(ds_main_dutinfo, "status", "string", "i", 0);
  634. }
  635. }
  636. function grp_sea_ipt_ym_onchanged(obj:Calendar, e:ChangeEventInfo)
  637. {
  638. var date = String(obj.value).substr(0,6);
  639. ds_main_condition.setColumn(0, "ym", date);
  640. ds_main_emplist.clearData();
  641. ds_main_dutlist.clearData();
  642. ds_main_dutinfo.clearData();
  643. ds_main_dutinfo.addRow();
  644. }
  645. function ds_main_condition_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  646. {
  647. if(e.columnid == "deptcd")
  648. {
  649. ds_main_emplist.clearData();
  650. ds_main_dutlist.clearData();
  651. ds_main_dutinfo.clearData();
  652. ds_main_dutinfo.addRow();
  653. grp_sea.opt_deptnm.value = "";
  654. misfValidationCheck("02", "", "deptcd,deptnm" );
  655. }
  656. if(e.columnid == "emplno")
  657. {
  658. grp_sea.ipt_emplnos.setFocus();
  659. grp_sea.ipt_emplnos.value = e.newvalue;
  660. var recv_list = "emplno,emplnm" ;
  661. rpbfValidationCheck("EMPLNO", recv_list);
  662. if (String(e.newvalue).length > 0)
  663. {
  664. grp_sea.btn_search.click();
  665. }
  666. }
  667. if(e.columnid == "emplnm")
  668. {
  669. grp_sea.ipt_emplnms.setFocus();
  670. grp_sea.ipt_emplnms.value = e.newvalue;
  671. var recv_list = "emplno,emplnm" ;
  672. rpbfValidationCheck("EMPLNM", recv_list);
  673. if (String(grp_sea.ipt_emplnos.value).length > 0)
  674. {
  675. grp_sea.btn_search.click();
  676. }
  677. }
  678. }
  679. function grp_sea_ipt_deptcd_onkeyup(obj:Edit, e:KeyEventInfo)
  680. {
  681. if(e.keycode == 13)
  682. {
  683. obj.updateToDataset();
  684. }
  685. }
  686. function grp_sea_btn_deptcd_onclick(obj:Button, e:ClickEventInfo)
  687. {
  688. var vOrigDeptcd = ds_main_condition.getColumn(0, "deptcd");
  689. var recv_list = "deptcd,deptnm";
  690. misfOpenPopUpList("02", grp_sea.ipt_deptcd,"", recv_list) ;
  691. if(vOrigDeptcd != grp_sea.ipt_deptcd.value)
  692. {
  693. ds_main_emplist.clearData();
  694. ds_main_dutlist.clearData();
  695. ds_main_dutinfo.clearData();
  696. ds_main_dutinfo.addRow();
  697. }
  698. }
  699. function grp_sea_ipt_emplnos_onkeyup(obj:Edit, e:KeyEventInfo)
  700. {
  701. if(e.keycode == 13)
  702. {
  703. obj.updateToDataset();
  704. grp_sea.btn_search.click();
  705. }
  706. }
  707. function grp_sea_btn_emplnos_onclick(obj:Button, e:ClickEventInfo)
  708. {
  709. var recv_list = "emplno,emplnm" ;
  710. rpbfOpenPopUpList("SPRPB00101", ds_main_condition, recv_list,"1","N");
  711. if (String(grp_sea.ipt_emplnos.value).length > 0)
  712. {
  713. grp_sea.btn_search.click();
  714. }
  715. }
  716. function grp_sea_ipt_emplnms_onkeyup(obj:Edit, e:KeyEventInfo)
  717. {
  718. if(e.keycode == 13)
  719. {
  720. obj.updateToDataset();
  721. grp_sea.btn_search.click();
  722. }
  723. }
  724. function grp_sea_btn_search_onclick(obj:Button, e:ClickEventInfo)
  725. {
  726. fGetEmpList();
  727. }
  728. function fGetEmpList()
  729. {
  730. if( String(ds_main_condition.getColumn(0, "ym")).length != 6 )
  731. {
  732. sysf_messageBox("근무년월을 정확하게 입력하십시요. ", "E999", "");
  733. grp_sea.ipt_ym.setFocus();
  734. return;
  735. }
  736. grp_sea.ipt_deptcd.value = String(grp_sea.ipt_deptcd.value).getTrim();
  737. grp_sea.ipt_emplnos.value = String(grp_sea.ipt_emplnos.value).getTrim();
  738. ds_main_emplist.clearData();
  739. ds_main_dutlist.clearData();
  740. ds_main_dutinfo.clearData();
  741. ds_main_dutinfo.addRow();
  742. ds_send.copyData(ds_main_condition);
  743. if(sysf_getUserInfo("dutplceinstcd") == "032")
  744. {
  745. var sDeptcd = grp_sea.ipt_deptcd.value;
  746. if( sDeptcd == "2110500000" || sDeptcd == "2112300000" || sDeptcd == "2112400000" || sDeptcd == "2112500000" ||
  747. sDeptcd == "2112600000" || sDeptcd == "2112700000" || sDeptcd == "2112800000" || sDeptcd == "2112900000" )
  748. {
  749. ds_send.setColumn(0, "deptcd", "2110000000");
  750. }
  751. }
  752. var oParam = {};
  753. oParam.id = "TRRPD30301";
  754. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  755. oParam.method = "reqGetDutyEmpList";
  756. oParam.inds = "req=ds_send";
  757. oParam.outds = "ds_main_emplist=emplist";
  758. oParam.async = false;
  759. //oParam.callback = "cf_TRRPD30301";
  760. tranf_submit(oParam);
  761. ds_main_emplist.rowposition = -1;
  762. }
  763. function cbx_perioduseyn_onclick(obj:CheckBox, e:ClickEventInfo)
  764. {
  765. if(obj.value == "Y")
  766. {
  767. }
  768. else
  769. {
  770. ds_main_condition.setColumn(0, "perioduseyn", "");
  771. }
  772. }
  773. function btn_excelAll_onclick(obj:Button, e:ClickEventInfo)
  774. {
  775. grdf_exportExcel(grd_excellist, "전공의 수련대장(전체)", "see", false);
  776. }
  777. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  778. {
  779. grdf_exportExcel(grd_dutlist, "excel", "see", false);
  780. }
  781. function btn_print1_onclick(obj:Button, e:ClickEventInfo)
  782. {
  783. if(cbx_perioduseyn.value == "Y")
  784. {
  785. ds_send.clearData();
  786. dsf_makeValue(ds_send, "periodfrom", "string", ipt_periodfrom.value, 0);
  787. dsf_makeValue(ds_send, "periodto", "string", ipt_periodto.value, 0);
  788. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"), 0);
  789. var oParam = {};
  790. oParam.id = "TRRPD30306";
  791. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  792. oParam.method = "reqGetDutyBookPeriodList";
  793. oParam.inds = "req=ds_send";
  794. oParam.outds = "ds_print_prtlist=prtlist";
  795. oParam.async = false;
  796. oParam.callback = "cf_TRRPD30306";
  797. tranf_submit(oParam);
  798. }
  799. else
  800. {
  801. ds_send.clearData();
  802. dsf_makeValue(ds_send, "ym", "string", grp_sea.ipt_ym.value, 0);
  803. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(ds_main_emplist.rowposition, "emplno"), 0);
  804. var oParam = {};
  805. oParam.id = "TRRPD30304";
  806. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  807. oParam.method = "reqGetDutyBookList";
  808. oParam.inds = "req=ds_send";
  809. oParam.outds = "ds_print_prtlist=prtlist";
  810. oParam.async = false;
  811. oParam.callback = "cf_TRRPD30304";
  812. tranf_submit(oParam);
  813. }
  814. }
  815. function cf_TRRPD30306(sSvcId, nErrorCode, sErrorMsg)
  816. {
  817. if(nErrorCode < 0)
  818. {
  819. return;
  820. }
  821. else
  822. {
  823. var objDOM = rptf_createDOM();
  824. rptf_setNodeListToDOM(objDOM, "/root/print/prtlist", ds_print_prtlist);
  825. rptf_setNodeListToDOM(objDOM, "/root/main/comdition", ds_main_condition);
  826. var objParam = new Object();
  827. objParam.xml_data_XML1 = objDOM.documentElement.source;
  828. var option = "";
  829. rptf_exeReportPreview30(["RPRPD30302"],[objParam], option);
  830. }
  831. }
  832. function cf_TRRPD30304(sSvcId, nErrorCode, sErrorMsg)
  833. {
  834. if(nErrorCode < 0)
  835. {
  836. return;
  837. }
  838. else
  839. {
  840. var objDOM = rptf_createDOM();
  841. rptf_setNodeListToDOM(objDOM, "/root/print/prtlist", ds_print_prtlist);
  842. rptf_setNodeListToDOM(objDOM, "/root/main/comdition", ds_main_condition);
  843. var objParam = new Object();
  844. objParam.xml_data_XML1 = objDOM.documentElement.source;
  845. var option = "";
  846. rptf_exeReportPreview30(["RPRPD30301"],[objParam], option);
  847. }
  848. }
  849. function btn_send_onclick(obj:Button, e:ClickEventInfo)
  850. {
  851. var iCnt = 0;
  852. for(var i = 0; i < ds_main_emplist.rowcount; i++)
  853. {
  854. if(ds_main_emplist.getColumn(i, "chk") == "Y")
  855. {
  856. iCnt = iCnt + 1;
  857. break;
  858. }
  859. }
  860. if(iCnt == 0)
  861. {
  862. sysf_messageBox( btn_send.text + " 처리 대상자가 선택되지 않았습니다. \n먼저 대상 목록에서 대상자를 선택하십시요. ", "E999", "");
  863. return;
  864. }
  865. if (sysf_messageBox( "선택한 대상자의 자료를 " + btn_send.text + " 처리 하시겠습니까? ", "Q999", "") != 6 )
  866. {
  867. return;
  868. }
  869. fClickSendBtn("confirm");
  870. }
  871. function btn_sendCancel_onclick(obj:Button, e:ClickEventInfo)
  872. {
  873. var iCnt = 0;
  874. for(var i = 0; i < ds_main_emplist.rowcount; i++)
  875. {
  876. if(ds_main_emplist.getColumn(i, "chk") == "Y")
  877. {
  878. iCnt = iCnt + 1;
  879. break;
  880. }
  881. }
  882. if(iCnt == 0)
  883. {
  884. sysf_messageBox( btn_sendCancel.text + " 처리 대상자가 선택되지 않았습니다. \n먼저 대상 목록에서 대상자를 선택하십시요. ", "E999", "");
  885. return;
  886. }
  887. if (sysf_messageBox( "선택한 대상자의 자료를 " + btn_sendCancel.text + " 처리 하시겠습니까? ", "Q999", "") != 6 ) return;
  888. fClickSendBtn("cancel");
  889. }
  890. function fClickSendBtn(pWorktype)
  891. {
  892. ds_send.clearData();
  893. dsf_makeValue(ds_send, "ym", "string", ds_main_condition.getColumn(0, "ym"), 0);
  894. dsf_makeValue(ds_send, "powertp", "string", ds_main_condition.getColumn(0, "powertp"), 0);
  895. dsf_makeValue(ds_send, "worktp", "string", pWorktype, 0);
  896. var update = grdf_getGridUpdateData(grd_emplist);
  897. ds_send_emplist.copyData(update);
  898. var oParam = {};
  899. oParam.id = "TXRPD30302";
  900. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  901. oParam.method = "reqExeSaveProcessInfo";
  902. oParam.inds = "req=ds_send emplist=ds_send_emplist";
  903. oParam.outds = "ds_=item";
  904. oParam.async = false;
  905. oParam.callback = "cf_TXRPD30302";
  906. tranf_submit(oParam);
  907. }
  908. function cf_TXRPD30302(sSvcId, nErrorCode, sErrorMsg)
  909. {
  910. if(nErrorCode < 0)
  911. {
  912. return;
  913. }
  914. else
  915. {
  916. fGetEmpList();
  917. }
  918. }
  919. function btn_upload_onclick(obj:Button, e:ClickEventInfo)
  920. {
  921. frmf_modal("SMRPD30500", "SMRPD30500", "", "", "", "", "", "", "", "", "", "", "M");
  922. }
  923. function btn_new_onclick(obj:Button, e:ClickEventInfo)
  924. {
  925. ds_main_dutinfo.clearData();
  926. ds_main_dutinfo.addRow();
  927. if(!utlf_isNull(grp_sea.ipt_emplnos.value))
  928. {
  929. grp_dutinfo.ipt_emplno.value = grp_sea.ipt_emplnos.value;
  930. grp_dutinfo.ipt_emplnm.value = grp_sea.ipt_emplnms.value;
  931. }
  932. else if(ds_main_dutlist.rowcount > 0)
  933. {
  934. grp_dutinfo.ipt_emplno.value = ds_main_dutlist.getColumn(0, "emplno");
  935. grp_dutinfo.ipt_emplnm.value = ds_main_dutlist.getColumn(0, "emplnm");
  936. }
  937. else
  938. {
  939. grp_dutinfo.ipt_emplno.value = "";
  940. grp_dutinfo.ipt_emplnm.value = "";
  941. }
  942. grp_dutinfo.ipt_fromtm2.value = "00";
  943. grp_dutinfo.ipt_totm2.value = "00";
  944. dsf_makeValue(ds_main_dutinfo, "status", "string", "i", 0);
  945. grp_dutinfo.ipt_emplno.enable = true;
  946. grp_dutinfo.ipt_emplnm.enable = true;
  947. grp_dutinfo.btn_emplno.enable = true;
  948. }
  949. function btn_delete_onclick(obj:Button, e:ClickEventInfo)
  950. {
  951. if(utlf_isNull(ds_main_dutinfo.getColumn(0, "emplno")))
  952. {
  953. sysf_messageBox("삭제할 자료가 없습니다.", "I999", "");
  954. return;
  955. }
  956. if(grp_dutinfo.ipt_emplno.value != sysf_getUserInfo("userid"))
  957. {
  958. sysf_messageBox("사용자 본인의 자료가 아니므로 삭제가 불가합니다.", "E999", "");
  959. grp_dutinfo.ipt_emplno.setFocus();
  960. return false;
  961. }
  962. if (sysf_messageBox("내역을", "Q001") == 6)
  963. {
  964. dsf_makeValue(ds_main_dutinfo, "status", "string", "d", 0);
  965. fClickSaveBtn();
  966. }
  967. }
  968. function fClickSaveBtn()
  969. {
  970. ds_main_dutinfo.setColumn(0, "fromtm", grp_dutinfo.ipt_fromtm1.value+""+grp_dutinfo.ipt_fromtm2.value);
  971. ds_main_dutinfo.setColumn(0, "totm", grp_dutinfo.ipt_totm1.value+""+grp_dutinfo.ipt_totm2.value);
  972. var oParam = {};
  973. oParam.id = "TXRPD30301";
  974. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  975. oParam.method = "reqExeSaveDutyInfo";
  976. oParam.inds = "req=ds_main_dutinfo";
  977. oParam.outds = "ds_=item";
  978. oParam.async = false;
  979. oParam.callback = "cf_TXRPD30301";
  980. tranf_submit(oParam);
  981. }
  982. function cf_TXRPD30301(sSvcId, nErrorCode, sErrorMsg)
  983. {
  984. if(nErrorCode < 0)
  985. {
  986. return;
  987. }
  988. else
  989. {
  990. if(ds_main_emplist.rowcount == 0)
  991. {
  992. fGetEmpList();
  993. ds_main_emplist.rowposition = 0;
  994. }
  995. grd_emplist_oncellclick();
  996. btn_new.click();
  997. }
  998. }
  999. function grd_emplist_oncellclick(obj:Grid, e:GridClickEventInfo)
  1000. {
  1001. if(ds_main_emplist.rowcount == 0)
  1002. {
  1003. return;
  1004. }
  1005. if(e.row < 0 && e.col == 1)
  1006. {
  1007. for(var i = 0; i < ds_main_emplist.rowcount; i++)
  1008. {
  1009. ds_main_emplist.setColumn(i, "chk", toggleVal);
  1010. }
  1011. if( toggleVal == "Y" )
  1012. {
  1013. toggleVal = "N"
  1014. }
  1015. else
  1016. {
  1017. toggleVal = "Y";
  1018. }
  1019. }
  1020. else if(e.row > -1 && e.col != 1)
  1021. {
  1022. var powertp = ds_main_condition.getColumn(0, "powertp");
  1023. if(utlf_isNull(powertp))
  1024. {
  1025. if(ds_main_emplist.getColumn(e.row, "procstat") == "T")
  1026. {
  1027. grp_dutinfo.btn_fileup1.enable = true;
  1028. grp_dutinfo.btn_filedel1.enable = true;
  1029. }
  1030. else
  1031. {
  1032. grp_dutinfo.btn_fileup1.enable = false;
  1033. grp_dutinfo.btn_filedel1.enable = false;
  1034. }
  1035. }
  1036. else if(powertp == "1")
  1037. {
  1038. if(ds_main_emplist.getColumn(e.row, "emplno") == sysf_getUserInfo("userid") && ds_main_emplist.getColumn(e.row, "procstat") == "T")
  1039. {
  1040. grp_dutinfo.btn_fileup1.enable = true;
  1041. grp_dutinfo.btn_filedel1.enable = true;
  1042. }
  1043. else
  1044. {
  1045. grp_dutinfo.btn_fileup1.enable = false;
  1046. grp_dutinfo.btn_filedel1.enable = false;
  1047. }
  1048. }
  1049. ds_main_dutlist.clearData();
  1050. ds_main_dutinfo.clearData();
  1051. ds_main_dutinfo.addRow();
  1052. ds_send.clearData();
  1053. dsf_makeValue(ds_send, "ym", "string", utlf_transNullToEmpty(String(grp_sea.ipt_ym.value)).substr(0, 6), 0);
  1054. dsf_makeValue(ds_send, "emplno", "string", ds_main_emplist.getColumn(e.row, "emplno"), 0);
  1055. var oParam = {};
  1056. oParam.id = "TRRPD30302";
  1057. oParam.service = "dligclaznsmngtapp.DutScheMngt";
  1058. oParam.method = "reqGetDutyPsnList";
  1059. oParam.inds = "req=ds_send";
  1060. oParam.outds = "ds_main_dutlist=dutlist";
  1061. oParam.async = false;
  1062. //oParam.callback = "cf_TRRPD30302";
  1063. tranf_submit(oParam);
  1064. grp_sea.btn_search.setFocus();
  1065. }
  1066. }
  1067. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  1068. {
  1069. if(utlf_isNull(ds_main_dutinfo.getColumn(0, "emplno")))
  1070. {
  1071. sysf_messageBox("저장할 자료가 없습니다.", "I999", "");
  1072. return;
  1073. }
  1074. if(utlf_isNull(grp_dutinfo.ipt_emplno.value))
  1075. {
  1076. sysf_messageBox("사번이 입력되지 않았습니다.", "E999", "");
  1077. grp_dutinfo.ipt_emplno.setFocus();
  1078. return false;
  1079. }
  1080. if(utlf_isNull(grp_dutinfo.ipt_emplnm.value))
  1081. {
  1082. sysf_messageBox("이름이 확인되지 않았습니다.", "E999", "");
  1083. grp_dutinfo.ipt_emplno.setFocus();
  1084. return false;
  1085. }
  1086. if(grp_dutinfo.ipt_emplno.value != sysf_getUserInfo("userid"))
  1087. {
  1088. sysf_messageBox("사용자 본인의 자료가 아니므로 저장이 불가합니다.", "E999", "");
  1089. grp_dutinfo.ipt_emplno.setFocus();
  1090. return false;
  1091. }
  1092. if(utlf_isNull(grp_dutinfo.cmb_duttype.value))
  1093. {
  1094. sysf_messageBox("근태코드가 선택되지 않았습니다.", "E999", "");
  1095. grp_dutinfo.cmb_duttype.setFocus();
  1096. return false;
  1097. }
  1098. if(utlf_isNull(grp_dutinfo.ipt_emplnm.value))
  1099. {
  1100. sysf_messageBox("이름이 확인되지 않았습니다.", "E999", "");
  1101. grp_dutinfo.ipt_emplno.setFocus();
  1102. return false;
  1103. }
  1104. if(String(grp_dutinfo.ipt_fromdd.value),length != 8)
  1105. {
  1106. sysf_messageBox("근무시작일자가 정확하지 않습니다.", "E999", "");
  1107. grp_dutinfo.ipt_fromdd.setFocus();
  1108. return false;
  1109. }
  1110. if(grp_sea.ipt_ym.value != String(grp_dutinfo.ipt_fromdd.value).substr(0, 6))
  1111. {
  1112. sysf_messageBox("근무시작일자가 조회조건의 근무년월과 일치하지 않습니다. ", "E999", "");
  1113. grp_dutinfo.ipt_fromdd.setFocus();
  1114. return false;
  1115. }
  1116. if(utlf_isNull(grp_dutinfo.ipt_fromtm1.value))
  1117. {
  1118. sysf_messageBox("근무시작시간이 입력되지 않습니다.", "E999", "");
  1119. grp_dutinfo.ipt_fromtm1.setFocus();
  1120. return false;
  1121. }
  1122. if(String(grp_dutinfo.ipt_todd.value),length != 8)
  1123. {
  1124. sysf_messageBox("근무종료일자가 정확하지 않습니다.", "E999", "");
  1125. grp_dutinfo.ipt_todd.setFocus();
  1126. return false;
  1127. }
  1128. if(utlf_isNull(grp_dutinfo.ipt_totm1.value))
  1129. {
  1130. sysf_messageBox("근무종료시간이 입력되지 않습니다.", "E999", "");
  1131. grp_dutinfo.ipt_totm1.setFocus();
  1132. return false;
  1133. }
  1134. if(grp_dutinfo.ipt_fromdd.value+grp_dutinfo.ipt_fromtm1.value+grp_dutinfo.ipt_fromtm2.value >= grp_dutinfo.ipt_todd.value + grp_dutinfo.ipt_totm1.value + grp_dutinfo.ipt_totm2.value)
  1135. {
  1136. sysf_messageBox("근무 종료일시가 시작일시보다 작거나 같습니다. \n근무일시를 확인하십시요. ", "E999", "");
  1137. grp_dutinfo.ipt_todd.setFocus();
  1138. return false;
  1139. }
  1140. fClickSaveBtn();
  1141. }
  1142. function grp_dutinfo_ipt_emplno_onkeyup(obj:Edit, e:KeyEventInfo)
  1143. {
  1144. if(e.keycode == 13)
  1145. {
  1146. obj.updateToDataset();
  1147. }
  1148. }
  1149. function ds_main_dutinfo_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1150. {
  1151. if(e.columnid == "emplno")
  1152. {
  1153. grp_dutinfo.ipt_emplno.setFocus();
  1154. grp_dutinfo.ipt_emplno.value = e.newvalue;
  1155. var recv_list = "emplno,emplnm" ;
  1156. rpbfValidationCheck("EMPLNO", recv_list);
  1157. }
  1158. if(e.columnid == "emplnm")
  1159. {
  1160. grp_dutinfo.ipt_emplnm.setFocus();
  1161. grp_dutinfo.ipt_emplnm.value = e.newvalue;
  1162. var recv_list = "emplno,emplnm" ;
  1163. rpbfValidationCheck("EMPLNM", recv_list);
  1164. }
  1165. if(e.columnid == "fromtm1")
  1166. {
  1167. grp_dutinfo.ipt_fromtm1.value = String(e.newvalue).getLeftPad(2,"0");
  1168. }
  1169. if(e.columnid == "totm1")
  1170. {
  1171. grp_dutinfo.ipt_totm1.value = String(e.newvalue).getLeftPad(2,"0");
  1172. }
  1173. }
  1174. function grp_dutinfo_btn_emplno_onclick(obj:Button, e:ClickEventInfo)
  1175. {
  1176. var recv_list = "emplno,emplnm" ;
  1177. rpbfOpenPopUpList("SPRPB00101", ds_main_dutinfo, recv_list,"1","N");
  1178. }
  1179. function grp_dutinfo_ipt_emplnm_onkeyup(obj:Edit, e:KeyEventInfo)
  1180. {
  1181. if(e.keycode == 13)
  1182. {
  1183. obj.updateToDataset();
  1184. }
  1185. }
  1186. function grp_dutinfo_ipt_totm1_onkeyup(obj:MaskEdit, e:KeyEventInfo)
  1187. {
  1188. if(e.keycode == 13)
  1189. {
  1190. obj.updateToDataset();
  1191. }
  1192. }
  1193. function grp_dutinfo_ipt_fromtm1_onkeyup(obj:MaskEdit, e:KeyEventInfo)
  1194. {
  1195. if(e.keycode == 13)
  1196. {
  1197. obj.updateToDataset();
  1198. }
  1199. }
  1200. function grp_dutinfo_btn_fileup1_onclick(obj:Button, e:ClickEventInfo)
  1201. {
  1202. fupload("1");
  1203. if(!utlf_isNull(ds_main_filepath.getColumn(0, "filepath")))
  1204. {
  1205. ds_main_dutinfo.setColumn(0, "fileyn", "Y");
  1206. grp_dutinfo.btn_filedel1.enable = true;
  1207. grp_dutinfo.btn_filedown1.enable = true;
  1208. }
  1209. }
  1210. function grp_dutinfo_btn_filedel1_onclick(obj:Button, e:ClickEventInfo)
  1211. {
  1212. fdelete("1");
  1213. grp_dutinfo.btn_filedel1.enable = false;
  1214. grp_dutinfo.btn_filedown1.enable = false;
  1215. }
  1216. function grp_dutinfo_btn_filedown1_onclick(obj:Button, e:ClickEventInfo)
  1217. {
  1218. if(grp_dutinfo.cmb_fileyn1.value == "Y")
  1219. {
  1220. fdown("1");
  1221. }
  1222. else
  1223. {
  1224. sysf_messageBox("내려받을 첨부 파일이 없습니다.", "E999", "");
  1225. }
  1226. }
  1227. function fupload(flag)
  1228. {
  1229. var files = window.fileDialog("open", ",", false);
  1230. var replacepath = "";
  1231. if ( files.length <= 0 ) return;
  1232. model.makeValue(ipt_updpath.attribute("ref") , files); //전체 파일경로 와 이름을 셋팅
  1233. var filename = files.substring(files.lastIndexOf('\\') + 1 , files.length ); //파일이름만 나오게 문자 정리
  1234. if(flag == "1")
  1235. {
  1236. ds_main_dutinfo.setColumn(0, "filenm", filename);
  1237. var oParam = {};
  1238. oParam.id = "TXRSC20203";
  1239. oParam.service = "reqapp.ReqMngt";
  1240. oParam.method = "reqExeSavePurcPrcsPresCondFile";
  1241. oParam.inds = "filepath=ds_ attach=ds_";
  1242. oParam.outds = "ds_main_filepath=filepath";
  1243. oParam.async = false;
  1244. //oParam.callback = "cf_TXRSC20203";
  1245. tranf_submit(oParam);
  1246. if(model.getValue("/root/main/filepath[1]/filepath") != ""){
  1247. model.setValue("/root/main/dutinfo/filepath", model.getValue("/root/main/filepath[1]/filepath"));
  1248. }
  1249. }
  1250. }
  1251. function fdelete(flag)
  1252. {
  1253. if(flag == "1")
  1254. {
  1255. ds_delete.setColumn(0, "filepath", ds_main_dutinfo.getColumn(0, "filepath"));
  1256. var oParam = {};
  1257. oParam.id = "TXRSC20204";
  1258. oParam.service = "reqapp.ReqMngt";
  1259. oParam.method = "reqExeDeletePurcPrcsPresCondFile";
  1260. oParam.inds = "req=ds_delete";
  1261. oParam.outds = "";
  1262. oParam.async = false;
  1263. oParam.callback = "cf_TXRSC20204";
  1264. tranf_submit(oParam);
  1265. }
  1266. }
  1267. function cf_TXRSC20204(sSvcId, nErrorCode, sErrorMsg)
  1268. {
  1269. if(nErrorCode < 0)
  1270. {
  1271. return;
  1272. }
  1273. else
  1274. {
  1275. ds_main_dutinfo.setColumn(0, "fileyn", "N");
  1276. ds_main_dutinfo.setColumn(0, "filepath", "");
  1277. ds_main_dutinfo.setColumn(0, "filenm", "");
  1278. }
  1279. }
  1280. function fdown(flag)
  1281. {
  1282. var filepath = "";
  1283. var filenm = "";
  1284. if(flag == "1")
  1285. {
  1286. filepath = ds_main_dutinfo.getColumn(0, "filepath");
  1287. filenm = ds_main_dutinfo.getColumn(0, "filenm");
  1288. }
  1289. var oParam = {};
  1290. oParam.id = "TRRWC03003";
  1291. oParam.service = "paybaseinfomngtapp.PayBaseInfoMngt";
  1292. oParam.method = "reqGetManualAtt";
  1293. oParam.inds = "req=ds_main_dutinfo";
  1294. oParam.outds = "ds_attachfile=attachfile";
  1295. oParam.async = false;
  1296. //oParam.callback = "cf_TRRWC03003";
  1297. tranf_submit(oParam);
  1298. var rtn = sysf_messageBox("파일을", "Q004");
  1299. if( rtn == 6 )
  1300. {
  1301. var fd = new FileDialog;
  1302. var objVFile = fd.open("FileSave", FileDialog.SAVE, "%MYDOCUMENT%", filenm); // 단일 파일 선택
  1303. if (!utlf_isNull(objVFile))
  1304. {
  1305. var temp = dsf_readFileFromDs(objVFile.fullpath, ds_file_attachfile, 0, "filedata"); // 파일저장
  1306. }
  1307. }
  1308. }
  1309. function grd_dutlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  1310. {
  1311. if(ds_main_dutlist.rowcount == 0)
  1312. {
  1313. return;
  1314. }
  1315. ds_main_dutinfo.clearData();
  1316. ds_main_dutinfo.addRow();
  1317. ds_main_dutinfo.copyRow(0, ds_main_dutlist, ds_main_dutlist.rowposition);
  1318. dsf_makeValue(ds_main_dutinfo, "fromtm1", "string", String(ds_main_dutinfo.getColumn(0, "fromtm")).substr(0,2), 0);
  1319. dsf_makeValue(ds_main_dutinfo, "fromtm2", "string", String(ds_main_dutinfo.getColumn(0, "fromtm")).substr(2,2), 0);
  1320. dsf_makeValue(ds_main_dutinfo, "totm1", "string", String(ds_main_dutinfo.getColumn(0, "totm")).substr(0,2), 0);
  1321. dsf_makeValue(ds_main_dutinfo, "totm2", "string", String(ds_main_dutinfo.getColumn(0, "totm")).substr(2,2), 0);
  1322. dsf_makeValue(ds_main_dutinfo, "status", "string", "u", 0);
  1323. grp_dutinfo.ipt_emplno.enable = false;
  1324. grp_dutinfo.ipt_emplnm.enable = false;
  1325. grp_dutinfo.btn_emplno.enable = false;
  1326. grp_sea.btn_search.setFocus();
  1327. }
  1328. function ds_main_emplist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  1329. {
  1330. if( e.columnid == "chk" )
  1331. {
  1332. obj.setColumn(e.row, "chk", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  1333. }
  1334. }
  1335. ]]></Script>
  1336. </Form>
  1337. </FDL>