SMMMI00960_진료과의사별근무관리.xfdl 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMMNE09004" position="absolute 0 0 1020 886" titletext="진료과별 의사 근무관리" oninit="SMMNE09600_oninit" onload="SMMNE09600_onload">
  5. <Layouts>
  6. <Layout>
  7. <TextArea id="TextArea00" taborder="7" position="absolute 748 66 992 94" value="1.진료일자 체크 2.근무시간 선택" style="font:dotum,9,bold;"/>
  8. <TextArea id="TextArea01" taborder="8" value="진료시간" position="absolute 516 66 584 94" style="font:dotum,9,bold;"/>
  9. <Grid position="absolute 1 128 320 858" id="grd_drlist" binddataset="ds_grd_drlist" oncelldblclick="grd_drlist_oncelldblclick">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="70"/>
  14. <Column size="80"/>
  15. <Column size="153"/>
  16. <Column size="0"/>
  17. </Columns>
  18. <Rows>
  19. <Row size="24" band="head"/>
  20. <Row size="24"/>
  21. </Rows>
  22. <Band id="head">
  23. <Cell text="사번"/>
  24. <Cell col="1" text="이름"/>
  25. <Cell col="2" text="근무구분"/>
  26. <Cell col="3"/>
  27. </Band>
  28. <Band id="body">
  29. <Cell text="bind:drid"/>
  30. <Cell col="1" text="bind:drnm"/>
  31. <Cell col="2" text="bind:jobkindnm"/>
  32. <Cell col="3" text="bind:orddeptcd"/>
  33. </Band>
  34. </Format>
  35. </Formats>
  36. </Grid>
  37. <Static text="근무 의사 선택" position="absolute 5 70 293 91" id="caption3" class="tit_2"/>
  38. <Div position="absolute 1 18 996 63" align="align:center top;" id="group4">
  39. <Layouts>
  40. <Layout/>
  41. </Layouts>
  42. </Div>
  43. <Grid position="absolute 322 88 995 858" align="align:center middle;" id="grd_workerlist" binddataset="ds_grd_workerlist" selecttype="row" autoenter="select" onheadclick="grd_workerlist_onheadclick" ontextchanged="grd_workerlist_ontextchanged" onkeydown="grd_workerlist_onkeydown" autofittype="col">
  44. <Formats>
  45. <Format id="default">
  46. <Columns>
  47. <Column size="30"/>
  48. <Column size="75"/>
  49. <Column size="45"/>
  50. <Column size="0"/>
  51. <Column size="43"/>
  52. <Column size="96"/>
  53. <Column size="358"/>
  54. <Column size="0"/>
  55. <Column size="0"/>
  56. <Column size="0"/>
  57. <Column size="0"/>
  58. <Column size="0"/>
  59. <Column size="0"/>
  60. <Column size="0"/>
  61. <Column size="0"/>
  62. <Column size="0"/>
  63. <Column size="0"/>
  64. </Columns>
  65. <Rows>
  66. <Row size="24" band="head"/>
  67. <Row size="24"/>
  68. </Rows>
  69. <Band id="head">
  70. <Cell displaytype="checkbox" edittype="checkbox"/>
  71. <Cell col="1" text="일자" taborder="undefined"/>
  72. <Cell col="2" text="요일" taborder="undefined"/>
  73. <Cell col="3" text="구분"/>
  74. <Cell col="4" text="A/P"/>
  75. <Cell col="5" text="진료시간"/>
  76. <Cell col="6" text="비고" taborder="undefined"/>
  77. <Cell col="7" text="drid_d"/>
  78. <Cell col="8" text="drid_d2"/>
  79. <Cell col="9" text="drid_n"/>
  80. <Cell col="10" text="ddeptcd"/>
  81. <Cell col="11" text="ddeptnm"/>
  82. <Cell col="12" text="d2deptcd"/>
  83. <Cell col="13" text="d2deptnm"/>
  84. <Cell col="14" text="ndeptcd"/>
  85. <Cell col="15" text="ndeptnm"/>
  86. <Cell col="16" text="placecd"/>
  87. </Band>
  88. <Band id="body">
  89. <Cell displaytype="checkbox" edittype="expr:datenm == '토요일' ? 'none' : datenm == '일요일' ? 'none':'checkbox'" style="background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:chk"/>
  90. <Cell col="1" displaytype="date" edittype="readonly" style="background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:workdd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  91. <Cell col="2" edittype="readonly" style="background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:datenm"/>
  92. <Cell col="3" displaytype="combo" edittype="combo" style="background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:gbn" enable="false"/>
  93. <Cell col="4" displaytype="text" edittype="readonly" style="align:center;background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:ampm" editautoselect="true"/>
  94. <Cell col="5" displaytype="text" edittype="expr:hday == 'H' ? 'readonly' :'text'" style="align:center;background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:worktime" editautoselect="true" editlimitbymask="decimal"/>
  95. <Cell col="6" displaytype="text" edittype="none" style="background:EXPR(hday == 'H' ? '#FFA7A7' :'');background2:EXPR(hday == 'H' ? '#FFA7A7' :'');" text="bind:reason"/>
  96. <Cell col="7" text="bind:drid_d"/>
  97. <Cell col="8" text="bind:drid_d2"/>
  98. <Cell col="9" text="bind:drid_n"/>
  99. <Cell col="10" text="bind:ddeptcd"/>
  100. <Cell col="11" text="bind:ddeptnm"/>
  101. <Cell col="12" text="bind:d2deptcd"/>
  102. <Cell col="13" text="bind:d2deptnm"/>
  103. <Cell col="14" text="bind:ndeptcd"/>
  104. <Cell col="15" text="bind:ndeptnm"/>
  105. <Cell col="16" text="bind:placecd"/>
  106. </Band>
  107. </Format>
  108. </Formats>
  109. </Grid>
  110. <Static text="근무 현황" position="absolute 322 70 416 91" id="cpt_worktitle" class="tit_2"/>
  111. <Button position="absolute 571 2 687 24" id="button3" class="btn3" taborder="3" text="진료일정(외래)" onclick="button3_onclick" visible="false"/>
  112. <Button position="absolute 490 2 570 24" id="button4" class="btn3" taborder="3" text="휴진일정" onclick="button4_onclick" visible="false"/>
  113. <Static id="caption6" text="진료과별 의사별 진료시간 관리" class="tit_1" position="absolute 0 0 234 26"/>
  114. <Div id="grp_srch" taborder="4" class="div_SA" position="absolute 0 26 1006 66">
  115. <Layouts>
  116. <Layout width="1006" height="40">
  117. <Button id="btn_afyear" taborder="10" class="icon_next_year" position="absolute 259 14 275 30" onclick="grp_srch_btn_afyear_onclick"/>
  118. <Button id="btn_afmonth" taborder="11" class="icon_next_month" position="absolute 241 14 257 30" onclick="grp_srch_btn_afmonth_onclick"/>
  119. <Button id="btn_bfmonth" taborder="13" class="icon_pre_month" position="absolute 108 14 124 30" onclick="grp_srch_btn_bfmonth_onclick"/>
  120. <Button id="btn_bfyear" taborder="14" class="icon_pre_year" position="absolute 90 14 106 30" onclick="grp_srch_btn_bfyear_onclick"/>
  121. <Static id="caption4" text="근무년월 :" class="search_name" position="absolute 5 13 88 30"/>
  122. <Button id="button6" taborder="17" text="근무표출력" class="btn2" position="absolute 777 10 871 32" onclick="grp_srch_button6_onclick" visible="false"/>
  123. <Button id="button5" taborder="18" text="Excel" onclick="button5_onclick" class="btn7" position="absolute 712 10 775 32" visible="false"/>
  124. <Calendar id="ipt_srchdd" taborder="19" autoselect="true" dateformat="yyyy-MM" position="absolute 131 12 238 32" style="align:center middle;" value="null" editformat="yyyy-MM" onchanged="grp_srch_ipt_srchdd_onchanged"/>
  125. <Shape id="line20" linetype="vertical" class="line_4" position="absolute 871 10 877 33" anchor="default"/>
  126. <Button id="btn_search00" taborder="8" text="조회" class="btn1" position="absolute 876 10 932 32" anchor="default" onclick="grp_srch_btn_search00_onclick"/>
  127. </Layout>
  128. </Layouts>
  129. </Div>
  130. <Shape id="roundrect2" type="roundrectangle" position="absolute 1 88 320 123"/>
  131. <Static id="caption1" text="진 료 과 :" position="absolute 10 96 101 113"/>
  132. <Combo id="cmb_orddeptcd" taborder="5" innerdataset="@ds_init_deptlist" codecolumn="orddeptcd" datacolumn="deptnm" position="absolute 95 96 300 115" enable="false" onitemchanged="cmb_orddeptcd_onitemchanged"/>
  133. <Radio id="Radio_Time" taborder="6" columncount="3" rowcount="0" position="absolute 588 67 720 87" innerdataset="@ds_time" codecolumn="code" datacolumn="name" onitemchanged="Radio_Time_onitemchanged"/>
  134. <Grid id="grd_workerlistexcel" taborder="10" binddataset="ds_grd_workerlist_excel" autoenter="select" useinputpanel="false" selecttype="cell" onheadclick="grd_workerlist_onheadclick" oncelldblclick="grd_workerlist_oncelldblclick" position="absolute 2 128 995 850" visible="false">
  135. <Formats>
  136. <Format id="default">
  137. <Columns>
  138. <Column size="44"/>
  139. <Column size="58"/>
  140. <Column size="70"/>
  141. <Column size="0"/>
  142. <Column size="104"/>
  143. <Column size="152"/>
  144. <Column size="70"/>
  145. <Column size="70"/>
  146. <Column size="75"/>
  147. <Column size="110"/>
  148. <Column size="221"/>
  149. <Column size="0"/>
  150. <Column size="0"/>
  151. <Column size="0"/>
  152. <Column size="0"/>
  153. <Column size="0"/>
  154. <Column size="0"/>
  155. <Column size="0"/>
  156. <Column size="0"/>
  157. <Column size="0"/>
  158. <Column size="0"/>
  159. </Columns>
  160. <Rows>
  161. <Row size="49" band="head"/>
  162. <Row size="24" band="head"/>
  163. <Row size="24"/>
  164. </Rows>
  165. <Band id="head">
  166. <Cell colspan="11" style="font:HY견고딕,16,bold;" expr="expr:getTitle()" taborder="undefined"/>
  167. <Cell col="11"/>
  168. <Cell col="12"/>
  169. <Cell col="13"/>
  170. <Cell col="14"/>
  171. <Cell col="15"/>
  172. <Cell col="16"/>
  173. <Cell col="17"/>
  174. <Cell col="18"/>
  175. <Cell col="19"/>
  176. <Cell col="20"/>
  177. <Cell row="1" displaytype="normal" edittype="text" style="align:center;" text="연번"/>
  178. <Cell row="1" col="1" style="font:arial,9,bold;" text="사번" taborder="undefined"/>
  179. <Cell row="1" col="2" style="font:arial,9,bold;" text="성명" taborder="undefined"/>
  180. <Cell row="1" col="3" text="구분"/>
  181. <Cell row="1" col="4" text="직종"/>
  182. <Cell row="1" col="5" text="부서"/>
  183. <Cell row="1" col="6" text="산출시간"/>
  184. <Cell row="1" col="7" style="font:arial,9,bold;" text="적용시간"/>
  185. <Cell row="1" col="8" style="align:center;font:arial,9,bold;" text="단가"/>
  186. <Cell row="1" col="9" style="align:center;font:arial,9,bold;" text="발생금액"/>
  187. <Cell row="1" col="10" text="비고" taborder="undefined"/>
  188. <Cell row="1" col="11" text="drid_d"/>
  189. <Cell row="1" col="12" text="drid_d2"/>
  190. <Cell row="1" col="13" text="drid_n"/>
  191. <Cell row="1" col="14" text="ddeptcd"/>
  192. <Cell row="1" col="15" text="ddeptnm"/>
  193. <Cell row="1" col="16" text="d2deptcd"/>
  194. <Cell row="1" col="17" text="d2deptnm"/>
  195. <Cell row="1" col="18" text="ndeptcd"/>
  196. <Cell row="1" col="19" text="ndeptnm"/>
  197. <Cell row="1" col="20" text="placecd"/>
  198. </Band>
  199. <Band id="body">
  200. <Cell displaytype="normal" edittype="text" style="align:center;" expr="currow+1"/>
  201. <Cell col="1" displaytype="text" style="align:center;font:arial,9,bold;" text="bind:drid" calendardisplaynulltype="nulltext"/>
  202. <Cell col="2" style="font:arial,9,bold;" text="bind:drnm"/>
  203. <Cell col="3" displaytype="combo" edittype="combo" text="bind:gbn" enable="false"/>
  204. <Cell col="4" text="bind:jobkindnm"/>
  205. <Cell col="5" style="align:left;" text="bind:deptnm"/>
  206. <Cell col="6" displaytype="text" edittype="text" style="align:center;color:EXPR(worktime &gt; '72' ? '#FF0000' :'');color2:EXPR(worktime &gt; '72' ? '#FF0000' :'');" text="bind:worktime" editautoselect="true"/>
  207. <Cell col="7" style="font:arial,9,bold;" text="bind:sudangtime"/>
  208. <Cell col="8" style="align:right;font:arial,9,bold;" text="bind:danga"/>
  209. <Cell col="9" style="align:right;font:arial,9,bold;" text="bind:sudangamt"/>
  210. <Cell col="10" displaytype="text" edittype="text" text="bind:reason"/>
  211. <Cell col="11" text="bind:drid_d"/>
  212. <Cell col="12" text="bind:drid_d2"/>
  213. <Cell col="13" text="bind:drid_n"/>
  214. <Cell col="14" text="bind:ddeptcd"/>
  215. <Cell col="15" text="bind:ddeptnm"/>
  216. <Cell col="16" text="bind:d2deptcd"/>
  217. <Cell col="17" text="bind:d2deptnm"/>
  218. <Cell col="18" text="bind:ndeptcd"/>
  219. <Cell col="19" text="bind:ndeptnm"/>
  220. <Cell col="20" text="bind:placecd"/>
  221. </Band>
  222. </Format>
  223. </Formats>
  224. </Grid>
  225. <Button id="button42" taborder="9" text="저장" onclick="button42_onclick" class="btn4" position="absolute 935 35 991 57"/>
  226. <Button id="button_confirm" taborder="11" text="Confirm" class="btn4" position="absolute 923 2 1003 24" visible="false" onclick="button_confirm_onclick"/>
  227. <Button id="button_confirmsave" taborder="12" text="Confirm_저장" class="btn4" visible="false" position="absolute 810 2 920 24" onclick="button_confirmsave_onclick"/>
  228. <Button id="button_confirmcancel" taborder="13" text="Confirm_취소" class="btn4" visible="false" position="absolute 698 2 808 24" onclick="button_confirmcancel_onclick"/>
  229. </Layout>
  230. </Layouts>
  231. <Objects>
  232. <Dataset id="ds_grd_drlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  233. <ColumnInfo>
  234. <Column id="drid" type="STRING"/>
  235. <Column id="drnm" type="STRING"/>
  236. <Column id="nzone" type="STRING"/>
  237. <Column id="hpno" type="STRING"/>
  238. <Column id="orddeptcd" type="STRING"/>
  239. </ColumnInfo>
  240. </Dataset>
  241. <Dataset id="ds_grd_workerlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_workerlist_oncolumnchanged">
  242. <ColumnInfo>
  243. <Column id="workdd" type="STRING" size="256"/>
  244. <Column id="datenm" type="STRING" size="256"/>
  245. <Column id="dutycd" type="STRING" size="256"/>
  246. <Column id="deptcd" type="STRING" size="256"/>
  247. <Column id="drid" type="STRING" size="256"/>
  248. <Column id="worktime" type="STRING" size="256"/>
  249. <Column id="confirmyn" type="STRING" size="256"/>
  250. <Column id="reason" type="STRING" size="256"/>
  251. </ColumnInfo>
  252. </Dataset>
  253. <Dataset id="ds_init_cmb_orddeptcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false"/>
  254. <Dataset id="ds_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" onvaluechanged="ds_cond_onvaluechanged">
  255. <ColumnInfo>
  256. <Column id="gbn" type="STRING"/>
  257. <Column id="placecd" type="STRING"/>
  258. <Column id="srchym" type="STRING"/>
  259. <Column id="srchdd" type="STRING"/>
  260. <Column id="orddeptcd" type="STRING"/>
  261. <Column id="adminyn" type="STRING"/>
  262. <Column id="orddrid" type="STRING" size="0"/>
  263. </ColumnInfo>
  264. <Rows>
  265. <Row/>
  266. </Rows>
  267. </Dataset>
  268. <Dataset id="ds_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  269. <ColumnInfo>
  270. <Column id="actgubun" type="STRING"/>
  271. <Column id="gbn" type="STRING"/>
  272. <Column id="orddeptcd" type="STRING"/>
  273. <Column id="placecd" type="STRING"/>
  274. <Column id="workdd" type="STRING"/>
  275. <Column id="duty" type="STRING"/>
  276. <Column id="drid" type="STRING"/>
  277. <Column id="fromtm" type="STRING"/>
  278. <Column id="totm" type="STRING"/>
  279. <Column id="bigo" type="STRING"/>
  280. <Column id="ipinfo" type="STRING"/>
  281. </ColumnInfo>
  282. </Dataset>
  283. <Dataset id="ds_temp_printinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  284. <ColumnInfo>
  285. <Column id="weekno" type="STRING" size="256"/>
  286. <Column id="drid" type="STRING" size="256"/>
  287. <Column id="drnm" type="STRING" size="256"/>
  288. <Column id="weektime" type="STRING" size="256"/>
  289. <Column id="workdd1" type="STRING" size="256"/>
  290. <Column id="workam1" type="STRING" size="256"/>
  291. <Column id="workpm1" type="STRING" size="256"/>
  292. <Column id="workdd2" type="STRING" size="256"/>
  293. <Column id="workam2" type="STRING" size="256"/>
  294. <Column id="workpm2" type="STRING" size="256"/>
  295. <Column id="workdd3" type="STRING" size="256"/>
  296. <Column id="workam3" type="STRING" size="256"/>
  297. <Column id="workpm3" type="STRING" size="256"/>
  298. <Column id="workdd4" type="STRING" size="256"/>
  299. <Column id="workam4" type="STRING" size="256"/>
  300. <Column id="workpm4" type="STRING" size="256"/>
  301. <Column id="workdd5" type="STRING" size="256"/>
  302. <Column id="workam5" type="STRING" size="256"/>
  303. <Column id="workpm5" type="STRING" size="256"/>
  304. <Column id="workdd6" type="STRING" size="256"/>
  305. <Column id="workam6" type="STRING" size="256"/>
  306. <Column id="workpm6" type="STRING" size="256"/>
  307. <Column id="workdd7" type="STRING" size="256"/>
  308. <Column id="workam7" type="STRING" size="256"/>
  309. <Column id="workpm7" type="STRING" size="256"/>
  310. <Column id="workpm7" type="STRING" size="256"/>
  311. </ColumnInfo>
  312. </Dataset>
  313. <Dataset id="ds_init_deptlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  314. <ColumnInfo>
  315. <Column id="orddeptcd" type="STRING" size="256"/>
  316. <Column id="deptnm" type="STRING" size="256"/>
  317. </ColumnInfo>
  318. </Dataset>
  319. <Dataset id="ds_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  320. <Dataset id="ds_send_srch" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  321. <ColumnInfo>
  322. <Column id="srchflag" type="STRING" size="256"/>
  323. <Column id="deptcd" type="STRING" size="256"/>
  324. <Column id="roomcd" type="STRING" size="256"/>
  325. <Column id="newcdyn" type="STRING" size="256"/>
  326. <Column id="rsrvplce" type="STRING" size="256"/>
  327. <Column id="suppdeptcd" type="STRING" size="256"/>
  328. <Column id="excuroomcd" type="STRING" size="256"/>
  329. <Column id="excucd" type="STRING" size="256"/>
  330. </ColumnInfo>
  331. <Rows>
  332. <Row>
  333. <Col id="srchflag">D</Col>
  334. <Col id="deptcd"/>
  335. <Col id="roomcd"/>
  336. <Col id="newcdyn">Y</Col>
  337. <Col id="rsrvplce">T</Col>
  338. <Col id="suppdeptcd"/>
  339. <Col id="excuroomcd"/>
  340. <Col id="excucd"/>
  341. </Row>
  342. </Rows>
  343. </Dataset>
  344. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  345. <ColumnInfo>
  346. <Column id="holiflag" type="STRING" size="256"/>
  347. <Column id="orddrid" type="STRING" size="256"/>
  348. <Column id="orddeptcd" type="STRING" size="256"/>
  349. <Column id="srchcond" type="STRING" size="256"/>
  350. <Column id="fromdd" type="STRING" size="256"/>
  351. <Column id="todd" type="STRING" size="256"/>
  352. <Column id="datalist" type="STRING" size="256"/>
  353. <Column id="ordendcnfmyn" type="STRING" size="256"/>
  354. <Column id="acceptstatflag" type="STRING" size="256"/>
  355. <Column id="histstat" type="STRING" size="256"/>
  356. <Column id="endcnfmyn" type="STRING" size="256"/>
  357. <Column id="prcsstat" type="STRING" size="256"/>
  358. <Column id="endflag" type="STRING" size="256"/>
  359. <Column id="sumflag" type="STRING" size="256"/>
  360. <Column id="jobposcd" type="STRING" size="256"/>
  361. </ColumnInfo>
  362. <Rows>
  363. <Row/>
  364. </Rows>
  365. </Dataset>
  366. <Dataset id="ds_main_drholiordschelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  367. <ColumnInfo>
  368. <Column id="prcsstat" type="STRING" size="256" sumtext="진행상태"/>
  369. <Column id="orddrid" type="STRING" size="256" sumtext="진료의사코드"/>
  370. <Column id="orddrnm" type="STRING" size="256" sumtext="진료의사"/>
  371. <Column id="orddeptcd" type="STRING" size="256" sumtext="진료과코드"/>
  372. <Column id="orddeptnm" type="STRING" size="256" sumtext="진료과"/>
  373. <Column id="holiflag" type="STRING" size="256" sumtext="휴진구분"/>
  374. <Column id="ordendresn" type="STRING" size="256" sumtext="휴진사유"/>
  375. <Column id="ordendresnnm" type="STRING" size="256" sumtext="휴진사유"/>
  376. <Column id="fromdd" type="STRING" size="256" sumtext="시작일자"/>
  377. <Column id="fromtm" type="STRING" size="256" sumtext="시작시간"/>
  378. <Column id="fromflag" type="STRING" size="256" sumtext="시작구분"/>
  379. <Column id="todd" type="STRING" size="256" sumtext="종료일자"/>
  380. <Column id="totm" type="STRING" size="256" sumtext="종료시간"/>
  381. <Column id="toflag" type="STRING" size="256" sumtext="종료구분"/>
  382. <Column id="fromtodd" type="STRING" size="256" sumtext="휴진기간"/>
  383. <Column id="tempunit" type="STRING" size="256" sumtext="임시unit 수"/>
  384. <Column id="changunit" type="STRING" size="256" sumtext="대진unit 수"/>
  385. <Column id="layoffunitcnt" type="STRING" size="256" sumtext="휴진unit 수"/>
  386. <Column id="realunitcnt" type="STRING" size="256" sumtext="실진료unit 수"/>
  387. <Column id="layoffday" type="STRING" size="256" sumtext="휴진일수"/>
  388. <Column id="oupdtorddrnm" type="STRING" size="256" sumtext="외래대진진료의사"/>
  389. <Column id="iupdtorddrnm" type="STRING" size="256" sumtext="입원대진진료의사"/>
  390. <Column id="drappdd" type="STRING" size="256" sumtext="의사신청일"/>
  391. <Column id="endcnfmyn" type="STRING" size="256" sumtext="승인여부"/>
  392. <Column id="endcnfmyn" type="STRING" size="256" sumtext="승인여부"/>
  393. <Column id="lastupdtdt" type="STRING" size="256" sumtext="등록일자"/>
  394. <Column id="remfact" type="STRING" size="256" sumtext="비고"/>
  395. <Column id="fstrgstrid" type="STRING" size="256" sumtext="최초등로자ID"/>
  396. <Column id="fstrgstdt" type="STRING" size="256" sumtext="최초등록일시"/>
  397. <Column id="seqno" type="STRING" size="256" sumtext="일련번호"/>
  398. <Column id="histstat" type="STRING" size="256" sumtext="이력상태"/>
  399. <Column id="jobposcd" type="STRING" size="256" sumtext="직위"/>
  400. <Column id="jobgradcd" type="STRING" size="256" sumtext="직급"/>
  401. <Column id="sp" type="STRING" size="256" sumtext="선택진료여부"/>
  402. <Column id="misseqno" type="STRING" size="256" sumtext="mis입력일련번호"/>
  403. <Column id="todayholiyn" type="STRING" size="256" sumtext="당일휴진여부"/>
  404. <Column id="sumflag" type="STRING" size="256" sumtext="합산구분"/>
  405. </ColumnInfo>
  406. </Dataset>
  407. <Dataset id="ds_grd_workerlist_temp" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_workerlist_oncolumnchanged">
  408. <ColumnInfo>
  409. <Column id="workdd" type="STRING" size="256"/>
  410. <Column id="datenm" type="STRING" size="256"/>
  411. <Column id="dutycd" type="STRING" size="256"/>
  412. <Column id="deptcd" type="STRING" size="256"/>
  413. <Column id="drid" type="STRING" size="256"/>
  414. <Column id="worktime" type="STRING" size="256"/>
  415. <Column id="confirmyn" type="STRING" size="256"/>
  416. <Column id="reason" type="STRING" size="256"/>
  417. </ColumnInfo>
  418. </Dataset>
  419. <Dataset id="ds_time" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  420. <ColumnInfo>
  421. <Column id="code" type="STRING" size="256"/>
  422. <Column id="name" type="STRING" size="256"/>
  423. </ColumnInfo>
  424. <Rows>
  425. <Row>
  426. <Col id="code">4</Col>
  427. <Col id="name">4</Col>
  428. </Row>
  429. <Row>
  430. <Col id="code">8</Col>
  431. <Col id="name">8</Col>
  432. </Row>
  433. <Row>
  434. <Col id="code">0</Col>
  435. <Col id="name">0</Col>
  436. </Row>
  437. </Rows>
  438. </Dataset>
  439. <Dataset id="ds_grd_workerlist_print" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_workerlist_oncolumnchanged">
  440. <ColumnInfo>
  441. <Column id="workdd" type="STRING" size="256"/>
  442. <Column id="datenm" type="STRING" size="256"/>
  443. <Column id="dutycd" type="STRING" size="256"/>
  444. <Column id="deptcd" type="STRING" size="256"/>
  445. <Column id="drid" type="STRING" size="256"/>
  446. <Column id="worktime" type="STRING" size="256"/>
  447. <Column id="confirmyn" type="STRING" size="256"/>
  448. <Column id="reason" type="STRING" size="256"/>
  449. </ColumnInfo>
  450. </Dataset>
  451. <Dataset id="ds_grd_workerlist_excel" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_grd_workerlist_oncolumnchanged">
  452. <ColumnInfo>
  453. <Column id="workdd" type="STRING" size="256"/>
  454. <Column id="datenm" type="STRING" size="256"/>
  455. <Column id="dutycd" type="STRING" size="256"/>
  456. <Column id="deptcd" type="STRING" size="256"/>
  457. <Column id="drid" type="STRING" size="256"/>
  458. <Column id="worktime" type="STRING" size="256"/>
  459. <Column id="confirmyn" type="STRING" size="256"/>
  460. <Column id="reason" type="STRING" size="256"/>
  461. </ColumnInfo>
  462. </Dataset>
  463. <Dataset id="ds_admin_user" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_cond_oncolumnchanged">
  464. <ColumnInfo>
  465. <Column id="adminuser" type="STRING" size="0"/>
  466. </ColumnInfo>
  467. <Rows>
  468. <Row/>
  469. </Rows>
  470. </Dataset>
  471. </Objects>
  472. <Bind>
  473. <BindItem id="item1" compid="cmb_orddeptcd" propid="value" datasetid="ds_cond" columnid="orddeptcd"/>
  474. <BindItem id="item10" compid="grp_srch.ipt_srchdd" propid="value" datasetid="ds_cond" columnid="srchdd"/>
  475. </Bind>
  476. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  477. * System Name :
  478. * Job Name :
  479. * Creator :
  480. * Make Date : 2016-08-30
  481. * Description :
  482. ****************************************************************************************/
  483. include "com_commonxp::comm_main.xjs";
  484. include "emr_prcpmngtxp::MMO001.xjs";
  485. var arErrorCode = new HashArray();
  486. var adminyn = 'N';
  487. function SMMNE09600_oninit(obj:Form, e:InitEventInfo)
  488. {
  489. frmf_initForm(obj);
  490. grdf_initGrid(grd_drlist);
  491. //grdf_initGrid(grd_workerlist);
  492. }
  493. function SMMNE09600_onload(obj:Form, e:LoadEventInfo)
  494. {
  495. grdf_setToolTipBind(grd_drlist);
  496. grdf_setToolTipBind(grd_workerlist);
  497. fInitialize();
  498. }
  499. function grp_srch_btn_bfyear_onclick(obj:Button, e:ClickEventInfo)
  500. {
  501. fClkArrowBtn(obj.name);
  502. }
  503. function grp_srch_btn_bfmonth_onclick(obj:Button, e:ClickEventInfo)
  504. {
  505. fClkArrowBtn(obj.name);
  506. }
  507. function grp_srch_btn_afmonth_onclick(obj:Button, e:ClickEventInfo)
  508. {
  509. fClkArrowBtn(obj.name);
  510. }
  511. function grp_srch_btn_afyear_onclick(obj:Button, e:ClickEventInfo)
  512. {
  513. fClkArrowBtn(obj.name);
  514. }
  515. /****************************************************************************************
  516. * Function : fClkArrowBtn
  517. * Description : 당직년월 화살표 클릭시 날자변경
  518. * Argument : objName : 버튼명
  519. * return type :
  520. * Creator :
  521. ****************************************************************************************/
  522. function fClkArrowBtn(objName){
  523. var srchdd = ds_cond.getColumn(0,"srchdd");
  524. var sNewdd = "";
  525. if(objName == "btn_bfyear") {
  526. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "Y").getDateFormat();
  527. } else if(objName == "btn_bfmonth") {
  528. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "M").getDateFormat();
  529. } else if(objName == "btn_afmonth") {
  530. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "M").getDateFormat();
  531. } else if(objName == "btn_afyear"){
  532. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "Y").getDateFormat();
  533. }
  534. if (!utlf_isNull(sNewdd)) {
  535. ds_cond.setColumn(0,"srchdd", sNewdd);
  536. ds_cond.setColumn(0,"srchym", sNewdd.substr(0, 6));
  537. }
  538. }
  539. function cmb_orddeptcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  540. {
  541. fgetDrList(); // 근무의사 조회
  542. fgetWorkList();
  543. }
  544. function grp_srch_btn_search00_onclick(obj:Button, e:ClickEventInfo)
  545. {
  546. fgetWorkList(); // 근무정보 조회
  547. }
  548. function button4_onclick(obj:Button, e:ClickEventInfo)
  549. {
  550. var deptcd = ds_grd_drlist.getColumn(ds_grd_drlist.rowposition, "deptcd");
  551. var drid = ds_grd_drlist.getColumn(ds_grd_drlist.rowposition, "drid");
  552. frmf_setParameter("SMPMB00900_orddeptcd", deptcd);
  553. frmf_setParameter("SMPMB00900_orddrid", drid);
  554. frmf_setParameter("SMPMB00900_holiflag", "H");
  555. frmf_modal("SMPMB00900","SMPMB00900","","","","","","","","","","","M");
  556. }
  557. function button3_onclick(obj:Button, e:ClickEventInfo)
  558. {
  559. frmf_modal("SMPMB01900","SMPMB01900","","","","","","","","","","","M");
  560. }
  561. function button5_onclick(obj:Button, e:ClickEventInfo)
  562. {
  563. ds_send.clear();
  564. var srchym = ds_cond.getColumn(0, "srchym");
  565. var hardcdno = ds_cond.getColumn(0, "hardcdno");
  566. dsf_makeValue(ds_send,"excelyn", "string", "Y");
  567. dsf_makeValue(ds_send,"saveyn","string", "");
  568. dsf_makeValue(ds_send,"printyn","string", '');
  569. dsf_makeValue(ds_send,"searchyn","string", '');
  570. dsf_makeValue(ds_send,"srchym","string", srchym);
  571. dsf_makeValue(ds_send,"orddpetcd","string", "%");
  572. dsf_makeValue(ds_send,"hardcdno", "string", hardcdno);
  573. ds_grd_workerlist_excel.clearData();
  574. var oParam = {};
  575. oParam.id = "TRMNE09602";
  576. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  577. oParam.method = "reqGetDeptDrworkScheList";
  578. oParam.inds = "req=ds_send ";
  579. oParam.outds = "ds_grd_workerlist_excel=worklist";
  580. oParam.async = false;
  581. oParam.callback = "";
  582. tranf_submit(oParam);
  583. if (ds_grd_workerlist_excel.rowcount > 0 ) {
  584. grdf_exportExcel(grd_workerlistexcel, srchym+"_진료시간산출표", "진료시간산출표",true,"","user",true);
  585. }else {
  586. sysf_messageBox("엑셀 다운로드할 데이터가 없습니다.", "I");
  587. }
  588. }
  589. function grp_srch_button6_onclick(obj:Button, e:ClickEventInfo)
  590. {
  591. fPrintWorkSche();
  592. }
  593. function fInitialize(){
  594. var sInstCd = sysf_getUserInfo("dutplceinstcd");
  595. var sUserDeptCd = sysf_getUserInfo("dutplcecd"); // 로그인 사용자의 부서코드
  596. var sUserid = sysf_getUserId("userid");
  597. var sCurDd = utlf_getCurrentDate();
  598. var sCurYm = utlf_getCurrentDate().substring(0, 6);
  599. // //진료과 불러오기
  600. // var instcd = sysf_getUserInfo("dutplceinstcd");
  601. // var standard_yn = "orduseyn";
  602. // var ord_deptflag = "D";
  603. // var rslt_ref = "ds_init_deptlist";
  604. // var sort_field = "depthngnm";
  605. // var sort_method = "asc";
  606. //
  607. // appf_getDeptCodeList(instcd,"orduseyn","D","depthngnm","","","","","ds_init_deptlist",true,"");
  608. ds_init_deptlist.clearData();
  609. ds_send.clear();
  610. dsf_makeValue(ds_send,"deptinfo", "string", "Y");
  611. ds_grd_drlist.clearData();
  612. var oParam = {};
  613. oParam.id = "TRMNE09603";
  614. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  615. oParam.method = "reqGetDeptDrworkScheList";
  616. oParam.inds = "req=ds_send";
  617. oParam.outds = "ds_init_deptlist=deptinfolist";
  618. oParam.async = false;
  619. oParam.callback = "cf_TRMNE09603";
  620. tranf_submit(oParam);
  621. cmb_orddeptcd.index = 0;
  622. dsf_makeValue(ds_send,"deptinfo", "string", "");
  623. ds_cond.setColumn(0, "orddeptcd", sUserDeptCd);
  624. //ds_cond.setColumn(0, "orddeptcd", "2010300000");
  625. ds_cond.setColumn(0, "orddrid", sUserid);
  626. //ds_cond.setColumn(0, "orddrid", "93409"); //일반교수 테스트용
  627. //ds_cond.setColumn(0, "orddrid", "98094"); //과장교수 테스트용
  628. ds_cond.setColumn(0, "srchdd", sCurDd);
  629. ds_cond.setColumn(0, "srchym", sCurYm);
  630. }
  631. function fgetDrList(){
  632. var orddeptcd = ds_cond.getColumn(0,"orddeptcd");
  633. // if(utlf_isNull(orddeptcd)){
  634. // orddeptcd = ds_cond.getColumn(0,"orddeptcd");
  635. // }
  636. var frow = ds_init_deptlist.findRow("orddeptcd",orddeptcd);
  637. var hardcdno = ds_init_deptlist.getColumn(frow,"hardcdno");
  638. // 진료과 정보가 변경 되었는지 체크. end
  639. ds_send.clear();
  640. dsf_makeValue(ds_cond,"hardcdno","string", hardcdno);
  641. dsf_makeValue(ds_send,"hardcdno","string", hardcdno);
  642. dsf_makeValue(ds_send,"orddeptcd","string", orddeptcd);
  643. dsf_makeValue(ds_send,"srchdd", "string", ds_cond.getColumn(0,"srchdd"));
  644. dsf_makeValue(ds_send,"orddrid", "string", ds_cond.getColumn(0,"orddrid"));
  645. dsf_makeValue(ds_send,"drinfo", "string", "C");
  646. ds_grd_drlist.clearData();
  647. var oParam = {};
  648. oParam.id = "TRMNE09603";
  649. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  650. oParam.method = "reqGetDeptDrworkScheList";
  651. oParam.inds = "req=ds_send";
  652. oParam.outds = "ds_grd_drlist=drinfolist ds_admin_user=admininfolist";
  653. oParam.async = false;
  654. oParam.callback = "cf_TRMNE09603";
  655. tranf_submit(oParam);
  656. var sUserid = sysf_getUserId("userid");
  657. var adminuser = ds_admin_user.getColumn(0,"adminuser");
  658. //sUserid = 'aa';
  659. if (sUserid == adminuser || sUserid == "EMR") {
  660. adminyn = 'Y';
  661. grp_srch.button5.visible = true;
  662. button_confirm.visible = true;
  663. //button42.visible = false;
  664. cmb_orddeptcd.enable = true;
  665. dsf_makeValue(ds_cond,"orddrid", "string", "%");
  666. }else{
  667. adminyn = 'N';
  668. grp_srch.button5.visible = false;
  669. button_confirm.visible = false;
  670. button42.visible = true;
  671. }
  672. if(arErrorCode.pop("TRMNE09603") < 0){
  673. sysf_messageBox("진료과별 의사 조회를 실패하였습니다.", "E999");
  674. return false;
  675. }else{
  676. if (ds_grd_drlist.rowcount > 0) { //부서장인경우 전체 의사 조회
  677. dsf_makeValue(ds_send,"drinfo", "string", "Y");
  678. dsf_makeValue(ds_send,"orddrid", "string", "%");
  679. var chiefname = ds_grd_drlist.getColumn(0,"usernm");
  680. dsf_makeValue(ds_cond,"chiefname", "string", chiefname);
  681. button_confirm.visible = true;
  682. grp_srch.button6.visible = true;
  683. ds_grd_drlist.clearData();
  684. var oParam = {};
  685. oParam.id = "TRMNE09603";
  686. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  687. oParam.method = "reqGetDeptDrworkScheList";
  688. oParam.inds = "req=ds_send";
  689. oParam.outds = "ds_grd_drlist=drinfolist";
  690. oParam.async = false;
  691. oParam.callback = "cf_TRMNE09603";
  692. tranf_submit(oParam);
  693. if(arErrorCode.pop("TRMNE09603") < 0){
  694. sysf_messageBox("진료과별 의사 조회를 실패하였습니다.", "E999");
  695. return false;
  696. }
  697. }else {
  698. dsf_makeValue(ds_send,"drinfo", "string", "Y");
  699. dsf_makeValue(ds_send,"orddrid", "string", ds_cond.getColumn(0,"orddrid"));
  700. dsf_makeValue(ds_cond,"chiefname", "string", "");
  701. button_confirm.visible = false;
  702. grp_srch.button6.visible = false;
  703. ds_grd_drlist.clearData();
  704. var oParam = {};
  705. oParam.id = "TRMNE09603";
  706. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  707. oParam.method = "reqGetDeptDrworkScheList";
  708. oParam.inds = "req=ds_send";
  709. oParam.outds = "ds_grd_drlist=drinfolist";
  710. oParam.async = false;
  711. oParam.callback = "cf_TRMNE09603";
  712. tranf_submit(oParam);
  713. if(arErrorCode.pop("TRMNE09603") < 0){
  714. sysf_messageBox("진료과별 의사 조회를 실패하였습니다.", "E999");
  715. return false;
  716. }
  717. }
  718. if (adminyn == "Y") {
  719. grp_srch.button5.visible = true;
  720. button_confirm.visible = true;
  721. grp_srch.button6.visible = true;
  722. cmb_orddeptcd.enable = true;
  723. button_confirmcancel.visible = true;
  724. }
  725. }
  726. }
  727. /****************************************************************************************
  728. * Function : cf_TRMMO30001
  729. * Description : TRMMO30001 콜백함수
  730. * Argument :
  731. * return type :
  732. * Creator :
  733. ****************************************************************************************/
  734. function cf_TRMNE09603(sSvcId, nErrorCode, sErrorMsg) {
  735. arErrorCode.push(sSvcId, nErrorCode);
  736. }
  737. function fgetWorkList(){
  738. ds_send.clear();
  739. var orddrid = ds_grd_drlist.getColumn(ds_grd_drlist.rowposition,"drid");
  740. var srchym = ds_cond.getColumn(0,"srchym");
  741. var srchdd = ds_cond.getColumn(0,"srchdd");
  742. var deptcd = ds_cond.getColumn(0,"orddeptcd");
  743. var frow = ds_init_deptlist.findRow("orddeptcd",deptcd);
  744. //
  745. var hardcdno = ds_init_deptlist.getColumn(frow,"hardcdno");
  746. dsf_makeValue(ds_send,"hardcdno","string", hardcdno);
  747. dsf_makeValue(ds_send,"srchym","string", srchym);
  748. dsf_makeValue(ds_send,"srchdd","string", srchdd);
  749. dsf_makeValue(ds_send,"orddeptcd","string", deptcd);
  750. dsf_makeValue(ds_send,"orddrid","string", orddrid);
  751. dsf_makeValue(ds_send,"saveyn","string", "");
  752. dsf_makeValue(ds_send,"printyn","string", '');
  753. dsf_makeValue(ds_send,"searchyn","string", 'Y');
  754. ds_grd_workerlist.clearData();
  755. var oParam = {};
  756. oParam.id = "TRMNE09602";
  757. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  758. oParam.method = "reqGetDeptDrworkScheList";
  759. oParam.inds = "req=ds_send savedata=ds_grd_workerlist";
  760. oParam.outds = "ds_grd_workerlist=worklist";
  761. oParam.async = false;
  762. oParam.callback = "";
  763. tranf_submit(oParam);
  764. ds_grd_workerlist.addColumn("chk","string");
  765. }
  766. function fsetWorkSave(sActGubun, sGbn, sWorkDd, sDuty, sOrdDeptcd, sDrid, sBigo) {
  767. var nRow;
  768. nRow = ds_grd_workerlist.findRow('confirmyn','C'); //부서장 confirm
  769. if(nRow >=0 ) {
  770. sysf_messageBox("부서장 Confirm된 데이터는 저장하실 수 없습니다.!!!", "I");
  771. return;
  772. }
  773. nRow = ds_grd_workerlist.findRow('confirmyn','Y'); //진료행정실 최종 확인
  774. if(nRow >=0 ) {
  775. sysf_messageBox("최종 Confirm된 데이터는 저장하실 수 없습니다.!!!", "I");
  776. return;
  777. }
  778. dsf_makeValue(ds_cond,"saveyn","string", 'Y');
  779. dsf_makeValue(ds_cond,"printyn","string", '');
  780. dsf_makeValue(ds_cond,"searchyn","string", '');
  781. var oParam = {};
  782. oParam.id = "TRMNE09602";
  783. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  784. oParam.method = "reqGetDeptDrworkScheList";
  785. oParam.inds = "req=ds_cond savedata=ds_grd_workerlist";
  786. oParam.outds = "ds_grd_workerlist=worklist";
  787. oParam.async = false;
  788. oParam.callback = "cf_TXMNE09602";
  789. tranf_submit(oParam);
  790. if(arErrorCode.pop("TRMNE09602") > -1) { // 환경설정 값 조회
  791. sysf_messageBox("저장 하였습니다.", "I");
  792. } else {
  793. sysf_messageBox("근무정보 저장에 실패 하였습니다.", "I");
  794. }
  795. }
  796. function cf_TXMNE09602(sSvcId, nErrorCode, sErrorMsg) {
  797. arErrorCode.push(sSvcId, nErrorCode);
  798. }
  799. function fPrintWorkSche() {
  800. dsf_makeValue(ds_cond,"saveyn","string", "");
  801. dsf_makeValue(ds_cond,"printyn","string", 'Y');
  802. dsf_makeValue(ds_cond,"searchyn","string", '');
  803. ds_grd_workerlist_print.clearData();
  804. ds_grd_workerlist_temp.clearData();
  805. var oParam = {};
  806. oParam.id = "TRMNE09602";
  807. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  808. oParam.method = "reqGetDeptDrworkScheList";
  809. oParam.inds = "req=ds_cond ";
  810. oParam.outds = "ds_grd_workerlist_print=worklist";
  811. oParam.async = false;
  812. oParam.callback = "";
  813. tranf_submit(oParam);
  814. ds_grd_workerlist_temp.copyData(ds_grd_workerlist_print);
  815. var objDOM = rptf_createDOM();
  816. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo", ds_grd_workerlist_temp);
  817. rptf_setNodeListToDOM(objDOM, "/root/cond", ds_cond);
  818. var objParam = new Object();
  819. objParam.xml_data_XML1 = objDOM.documentElement.source;
  820. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0;";
  821. rptf_exeReportPreview30(["RPMMI00930"],[objParam], option);
  822. }
  823. function grd_drlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  824. {
  825. fgetWorkList();
  826. }
  827. function Radio_Time_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  828. {
  829. var idx = obj.index;
  830. var worktime = 0;
  831. if (idx == 0) {
  832. worktime = 4;
  833. }else if (idx == 1) {
  834. worktime = 8;
  835. }else if (idx == 2) {
  836. worktime = 0;
  837. }
  838. for (var k = 0; k < ds_grd_workerlist.rowcount; k++)
  839. {
  840. if (ds_grd_workerlist.getColumn(k,"chk") == 'true' || ds_grd_workerlist.getColumn(k,"chk") == '1' )
  841. {
  842. if (utlf_isNull(ds_grd_workerlist.getColumn(k,"reason") && ds_grd_workerlist.getColumn(k,"hday") != 'H')) {
  843. //if (ds_grd_workerlist.getColumn(k,"ampm") == '오전' || ds_grd_workerlist.getColumn(k,"ampm") == '오후' || ds_grd_workerlist.getColumn(k,"ampm") == '전일' ) {
  844. if (ds_grd_workerlist.getColumn(k,"ampm") != '-' ) {
  845. ds_grd_workerlist.setColumn(k,"worktime",worktime);
  846. }
  847. }
  848. }
  849. }
  850. }
  851. function button42_onclick(obj:Button, e:ClickEventInfo)
  852. {
  853. dsf_makeValue(ds_cond,"confirmyn","string", '');
  854. var worktime;
  855. for (var k = 0; k < ds_grd_workerlist.rowcount; k++)
  856. {
  857. worktime = Number(ds_grd_workerlist.getColumn(k,"worktime"));
  858. if(worktime > 8) {
  859. ds_grd_workerlist.rowposition = k;
  860. sysf_messageBox("진료시간이 8시간을 초과 했습니다.", "I");
  861. return;
  862. }
  863. }
  864. fsetWorkSave();
  865. }
  866. function grd_workerlist_onheadclick(obj:Grid, e:GridClickEventInfo)
  867. {
  868. var chk = obj.getCellText(e.row, e.col);
  869. if (chk != "1") {
  870. obj.setCellProperty("head",e.col,"text","1");
  871. if (e.col == '0') {
  872. for (var k = 0; k < ds_grd_workerlist.rowcount; k++)
  873. {
  874. if (utlf_isNull(ds_grd_workerlist.getColumn(k,"reason") && ds_grd_workerlist.getColumn(k,"hday") != 'H')) {
  875. if (ds_grd_workerlist.getColumn(k,"ampm") == '오전' || ds_grd_workerlist.getColumn(k,"ampm") == '오후' || ds_grd_workerlist.getColumn(k,"ampm") == '전일' ) {
  876. ds_grd_workerlist.setColumn(k,"chk",'1');
  877. }
  878. }
  879. }
  880. }
  881. }else {
  882. obj.setCellProperty("head",e.col,"text","0");
  883. for (var k = 0; k < ds_grd_workerlist.rowcount; k++)
  884. {
  885. ds_grd_workerlist.setColumn(k,"chk",'0');
  886. }
  887. }
  888. }
  889. function getTitle() {
  890. return '본원 - '+ds_grd_workerlist_excel.getColumn(0,"yymm")+' 진료시간 산출표';
  891. }
  892. function button_confirm_onclick(obj:Button, e:ClickEventInfo)
  893. {
  894. if( button_confirm.text == 'Confirm') {
  895. var srchym = ds_cond.getColumn(0, "srchym");
  896. var deptcd = ds_cond.getColumn(0,"orddeptcd");
  897. var sUserid = sysf_getUserId("userid");
  898. if(adminyn == 'Y') {
  899. deptcd = "%";
  900. }
  901. dsf_makeValue(ds_send,"excelyn", "string", "Y");
  902. dsf_makeValue(ds_send,"saveyn","string", "");
  903. dsf_makeValue(ds_send,"printyn","string", '');
  904. dsf_makeValue(ds_send,"searchyn","string", '');
  905. dsf_makeValue(ds_send,"srchym","string", srchym);
  906. dsf_makeValue(ds_send,"orddeptcd","string", deptcd);
  907. ds_grd_workerlist_excel.clearData();
  908. var oParam = {};
  909. oParam.id = "TRMNE09602";
  910. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  911. oParam.method = "reqGetDeptDrworkScheList";
  912. oParam.inds = "req=ds_send ";
  913. oParam.outds = "ds_grd_workerlist_excel=worklist";
  914. oParam.async = false;
  915. oParam.callback = "";
  916. tranf_submit(oParam);
  917. if (ds_grd_workerlist_excel.rowcount > 0 ) {
  918. button_confirm.text = '닫기';
  919. grd_workerlistexcel.visible = true;
  920. button_confirmsave.visible = true;
  921. }else {
  922. sysf_messageBox("Confirm할 데이터가 없습니다.", "I");
  923. }
  924. }else {
  925. button_confirm.text = 'Confirm';
  926. grd_workerlistexcel.visible = false;
  927. button_confirmsave.visible = false;
  928. }
  929. // if (sUserid == '00130') {
  930. // button_confirmsave.visible = false;
  931. // }
  932. }
  933. function button_confirmsave_onclick(obj:Button, e:ClickEventInfo)
  934. {
  935. var srchym = ds_cond.getColumn(0, "srchym");
  936. dsf_makeValue(ds_cond,"confirmyn","string", 'C');
  937. if(adminyn == "Y") {
  938. dsf_makeValue(ds_cond,"confirmyn","string", 'Y');
  939. }
  940. var confirmyn = ds_cond.getColumn(0,"confirmyn");
  941. dsf_makeValue(ds_cond,"saveyn","string", '');
  942. dsf_makeValue(ds_cond,"printyn","string", '');
  943. dsf_makeValue(ds_cond,"searchyn","string", '');
  944. dsf_setDefaultVal(ds_grd_workerlist_excel,"srchym:"+srchym);
  945. dsf_setDefaultVal(ds_grd_workerlist_excel,"confirmyn:"+confirmyn);
  946. var oParam = {};
  947. oParam.id = "TRMNE09602";
  948. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  949. oParam.method = "reqGetDeptDrworkScheList";
  950. oParam.inds = "req=ds_cond savedata=ds_grd_workerlist_excel";
  951. oParam.outds = "ds_grd_workerlist=worklist";
  952. oParam.async = false;
  953. oParam.callback = "cf_TXMNE09602";
  954. tranf_submit(oParam);
  955. if(arErrorCode.pop("TRMNE09602") > -1) { // 환경설정 값 조회
  956. grp_srch.btn_search00.click();
  957. sysf_messageBox("저장 하였습니다.", "I");
  958. } else {
  959. sysf_messageBox("근무정보 저장에 실패 하였습니다.", "I");
  960. }
  961. }
  962. // function ds_cond_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  963. // {
  964. // // if(e.columnid == "srchym" || e.columnid == "orddeptcd" ){
  965. // // fgetDrList(); // 근무의사 조회
  966. // // fgetWorkList(); // 근무정보 조회
  967. // // }
  968. // }
  969. function grp_srch_ipt_srchdd_onchanged(obj:Calendar, e:ChangeEventInfo)
  970. {
  971. obj.updateToDataset();
  972. var srchym = ds_cond.getColumn(0,"srchdd").substring(0, 6);
  973. ds_cond.setColumn(0,"srchym",srchym);
  974. fgetWorkList();
  975. }
  976. function button_confirmcancel_onclick(obj:Button, e:ClickEventInfo)
  977. {
  978. var srchym = ds_cond.getColumn(0, "srchym");
  979. dsf_makeValue(ds_cond,"confirmyn","string", 'N');
  980. dsf_makeValue(ds_cond,"saveyn","string", '');
  981. dsf_makeValue(ds_cond,"printyn","string", '');
  982. dsf_makeValue(ds_cond,"searchyn","string", '');
  983. var oParam = {};
  984. oParam.id = "TRMNE09602";
  985. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  986. oParam.method = "reqGetDeptDrworkScheList";
  987. oParam.inds = "req=ds_cond savedata=ds_cond";
  988. oParam.outds = "ds_grd_workerlist=worklist";
  989. oParam.async = false;
  990. oParam.callback = "cf_TXMNE09602";
  991. tranf_submit(oParam);
  992. if(arErrorCode.pop("TRMNE09602") > -1) { // 환경설정 값 조회
  993. grp_srch.btn_search00.click();
  994. sysf_messageBox("저장 하였습니다.", "I");
  995. } else {
  996. sysf_messageBox("근무정보 저장에 실패 하였습니다.", "I");
  997. }
  998. }
  999. function grd_workerlist_ontextchanged(obj:Grid, e:GridEditTextChangedEventInfo)
  1000. {
  1001. // obj.updateToDataset();
  1002. // var iSelectedRow = grd_workerlist.currentrow;
  1003. //
  1004. // if (e.col == 5) {
  1005. //
  1006. // var worktime = ds_grd_workerlist.getColumn(iSelectedRow,"worktime");
  1007. // if (Number(worktime) > 8) {
  1008. // sysf_messageBox("8시간 이상 입력 불가합니다.!!!", "I");
  1009. //
  1010. // ds_grd_workerlist.setColumn(iSelectedRow,"worktime","8");
  1011. // }
  1012. // }
  1013. }
  1014. function grd_workerlist_onkeydown(obj:Grid, e:KeyEventInfo)
  1015. {
  1016. obj.updateToDataset();
  1017. var iSelectedRow = grd_workerlist.currentrow;
  1018. if (e.keycode == "13") {
  1019. if (obj.currentcol == 5) {
  1020. var worktime = ds_grd_workerlist.getColumn(iSelectedRow,"worktime");
  1021. if (Number(worktime) > 8) {
  1022. sysf_messageBox("8시간 이상 입력 불가합니다.!!!", "I");
  1023. ds_grd_workerlist.setColumn(iSelectedRow,"worktime","8");
  1024. } else {
  1025. //20200122 이돈희 Enter 입력시 다음 입력으로 이동
  1026. grd_workerlist.moveToNextCell();
  1027. grd_workerlist.setCellPos(5);
  1028. }
  1029. }
  1030. }
  1031. }
  1032. function ds_cond_onvaluechanged(obj:Dataset, e:DSColChangeEventInfo)
  1033. {
  1034. if(e.columnid == "srchym"){
  1035. //if(e.columnid == "srchym" || e.columnid == "orddeptcd" ){
  1036. fgetDrList(); // 근무의사 조회
  1037. fgetWorkList(); // 근무정보 조회
  1038. }
  1039. }
  1040. ]]></Script>
  1041. </Form>
  1042. </FDL>