SPMMI00400_수련의파견관리.xfdl 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO00800" position="absolute 0 0 1018 900" titletext="수련의 파견관리" onload="SPMMI00400_onload" oninit="SPMMI00400_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Grid position="absolute 0 72 1016 870" id="grd_userlist" binddataset="ds_userlist" oncellclick="grd_diaghist_oncellclick" oncelldblclick="grd_diaghist_oncelldblclick" cellclickbound="cell" extendsizetype="none" autofittype="col" cellsizingtype="none" onkeydown="grd_userlist_onkeydown" style="background:transparent;">
  8. <Formats>
  9. <Format id="default">
  10. <Columns>
  11. <Column size="25"/>
  12. <Column size="80"/>
  13. <Column size="135"/>
  14. <Column size="60"/>
  15. <Column size="60"/>
  16. <Column size="0"/>
  17. <Column size="60"/>
  18. <Column size="0"/>
  19. <Column size="0"/>
  20. <Column size="0"/>
  21. <Column size="0"/>
  22. <Column size="90"/>
  23. <Column size="90"/>
  24. <Column size="40"/>
  25. <Column size="120"/>
  26. <Column size="60"/>
  27. <Column size="120"/>
  28. <Column size="59"/>
  29. </Columns>
  30. <Rows>
  31. <Row size="24" band="head"/>
  32. <Row size="24"/>
  33. </Rows>
  34. <Band id="head">
  35. <Cell/>
  36. <Cell col="1" text="진료과코드"/>
  37. <Cell col="2" text="진료과명"/>
  38. <Cell col="3" text="구분"/>
  39. <Cell col="4" text="사번"/>
  40. <Cell col="5" text="유사/동의어"/>
  41. <Cell col="6" text="성명"/>
  42. <Cell col="7" text="orgdiagcd"/>
  43. <Cell col="8" text="tootfact"/>
  44. <Cell col="9" text="icd10cd"/>
  45. <Cell col="10" text="diagcd"/>
  46. <Cell col="11" text="시작일자"/>
  47. <Cell col="12" text="종료일자"/>
  48. <Cell col="13" displaytype="normal" edittype="none" text="권한"/>
  49. <Cell col="14" text="등록일시"/>
  50. <Cell col="15" text="등록자"/>
  51. <Cell col="16" text="수정일시"/>
  52. <Cell col="17" text="수정자"/>
  53. </Band>
  54. <Band id="body">
  55. <Cell celltype="head" displaytype="normal" edittype="none"/>
  56. <Cell col="1" displaytype="text" style="align:center;" text="bind:dutplcecd"/>
  57. <Cell col="2" displaytype="combo" edittype="combo" style="background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:dutplcecd" combodataset="ds_init_orddept" combocodecol="deptcd" combodatacol="depthngnm"/>
  58. <Cell col="3" displaytype="combo" edittype="none" style="align:center;background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:jobposcd" combodataset="ds_init_jobpostcd" combocodecol="cd" combodatacol="nm" combodisplay="edit"/>
  59. <Cell col="4" displaytype="text" edittype="text" style="align:center;background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:userid"/>
  60. <Cell col="5" text="bind:orgdiagnm"/>
  61. <Cell col="6" style="align:center middle;background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:usernm"/>
  62. <Cell col="7" text="bind:orgdiagcd"/>
  63. <Cell col="8" text="bind:tootfact"/>
  64. <Cell col="9" text="bind:icd10cd"/>
  65. <Cell col="10" text="bind:diagcd"/>
  66. <Cell col="11" displaytype="date" edittype="date" style="background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:fromdd"/>
  67. <Cell col="12" displaytype="date" edittype="date" style="background:EXPR(bind:colorflag=='Y'?'yellow':'');background2:EXPR(bind:colorflag=='Y'?'yellow':'');" text="bind:edittodd"/>
  68. <Cell col="13" displaytype="combo" edittype="combo" style="align:center;" text="bind:tempyn" combodataset="ds_init_tempyn" combocodecol="cd" combodatacol="nm"/>
  69. <Cell col="14" text="bind:fstrgstdt" mask="expr:utlf_isNull(fstrgstdt) ? &quot;&quot; : &quot;####-##-## ##:##:##&quot;"/>
  70. <Cell col="15" text="bind:fstrgstrnm"/>
  71. <Cell col="16" text="bind:lastupdtdt" mask="expr:utlf_isNull(lastupdtdt) ? &quot;&quot; : &quot;####-##-## ##:##:##&quot;"/>
  72. <Cell col="17" text="bind:lastupdtrnm"/>
  73. </Band>
  74. </Format>
  75. </Formats>
  76. </Grid>
  77. <Button id="btn_excel" taborder="2" text="샘플파일 다운로드" class="btn7" position="absolute 0 876 134 896" anchor="top right" onclick="btn_excel_onclick"/>
  78. <Div id="grp_sea" taborder="3" position="absolute 0 25 1016 64" class="div_SA">
  79. <Layouts>
  80. <Layout>
  81. <Calendar id="ipt_date" taborder="19" class="input_essential" position="absolute 92 10 198 29" anchor="default" enable="true"/>
  82. <Shape id="line2" linetype="vertical" class="line_4" position="absolute 906 7 911 33" anchor="default"/>
  83. <Button id="btn_srch" taborder="20" text="조회" class="btn1" position="absolute 929 8 990 30" anchor="default" onclick="grp_sea_btn_srch_onclick"/>
  84. <Static id="caption11" text="기준일자" class="search_name" position="absolute 18 11 88 28" anchor="default"/>
  85. <Static id="caption2" text="진료과" class="search_name" position="absolute 209 11 271 28" anchor="default"/>
  86. <Combo id="cmb_orddept" taborder="23" innerdataset="ds_init_orddept" codecolumn="deptcd" datacolumn="depthngnm" class="combo_search" position="absolute 270 9 447 28" anchor="default" onitemchanged="grp_sea_cmb_orddept_onitemchanged"/>
  87. <Static id="caption7" text="전공의" class="search_name" position="absolute 464 11 523 28" anchor="default"/>
  88. <Combo id="cmb_userid" taborder="24" innerdataset="@ds_init_userlist" codecolumn="userid" datacolumn="usernm" class="combo_search" position="absolute 522 9 613 28" anchor="default" onitemchanged="grp_sea_cmb_userid_onitemchanged"/>
  89. <Static id="caption00" text="사번" class="search_name" position="absolute 632 11 691 28" anchor="default"/>
  90. <Edit id="Edit00" taborder="25" position="absolute 680 9 756 29" onkeydown="grp_sea_Edit00_onkeydown" anchor="default"/>
  91. </Layout>
  92. </Layouts>
  93. </Div>
  94. <Static id="caption6" text="수련의 파견 관리" class="tit_1" position="absolute 0 0 137 25"/>
  95. <Shape id="line8" class="line_1" position="absolute 0 65 1015 72" style="strokepen:3 solid #33bbbbff;"/>
  96. <Button id="button8" taborder="4" text="추가" class="btn2" position="absolute 864 876 906 896" anchor="top right" onclick="button8_onclick"/>
  97. <Button id="button9" taborder="5" text="삭제" class="btn2" position="absolute 908 876 950 896" anchor="top right" onclick="button9_onclick"/>
  98. <Button id="btn_SaveDhrcd" taborder="6" text="저장" class="btn4" position="absolute 956 876 1012 896" anchor="top right" onclick="btn_SaveDhrcd_onclick"/>
  99. <Grid id="grd_sampleexcel" taborder="7" useinputpanel="false" position="absolute 3 644 496 748" visible="false">
  100. <Formats>
  101. <Format id="default">
  102. <Columns>
  103. <Column size="180"/>
  104. <Column size="80"/>
  105. <Column size="60"/>
  106. <Column size="80"/>
  107. <Column size="80"/>
  108. </Columns>
  109. <Rows>
  110. <Row size="24" band="head"/>
  111. <Row size="24"/>
  112. </Rows>
  113. <Band id="head">
  114. <Cell text="진료과"/>
  115. <Cell col="1" text="성명"/>
  116. <Cell col="2" text="사번"/>
  117. <Cell col="3" text="시작일"/>
  118. <Cell col="4" text="종료일"/>
  119. </Band>
  120. <Band id="body">
  121. <Cell/>
  122. <Cell col="1"/>
  123. <Cell col="2"/>
  124. <Cell col="3" mask="####-##-##"/>
  125. <Cell col="4" mask="####-##-##"/>
  126. </Band>
  127. </Format>
  128. </Formats>
  129. </Grid>
  130. <Button id="btn_excel00" taborder="8" text="엑셀파일 업로드" class="btn7" position="absolute 144 876 264 896" anchor="top right" onclick="btn_excel00_onclick"/>
  131. <Button id="btn_excel01" taborder="9" text="엑셀" class="btn7" position="absolute 781 876 840 896" anchor="top right" onclick="btn_excel01_onclick"/>
  132. </Layout>
  133. </Layouts>
  134. <Objects>
  135. <Dataset id="ds_userlist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  136. <ColumnInfo>
  137. <Column id="dutplcecd" type="STRING"/>
  138. <Column id="dutplcenm" type="STRING"/>
  139. <Column id="jobposcd" type="STRING"/>
  140. <Column id="tempyn" type="STRING"/>
  141. <Column id="userid" type="STRING"/>
  142. <Column id="usernm" type="STRING"/>
  143. <Column id="fromdd" type="STRING"/>
  144. <Column id="todd" type="STRING"/>
  145. <Column id="edittodd" type="STRING"/>
  146. <Column id="fstrgstrid" type="STRING"/>
  147. <Column id="fstrgstrnm" type="STRING"/>
  148. <Column id="fstrgstdt" type="STRING"/>
  149. <Column id="lastupdtrid" type="STRING"/>
  150. <Column id="lastupdtrnm" type="STRING"/>
  151. <Column id="lastupdtdt" type="STRING"/>
  152. <Column id="excelyn" type="STRING" size="256"/>
  153. <Column id="colorflag" type="STRING" size="256"/>
  154. </ColumnInfo>
  155. </Dataset>
  156. <Dataset id="ds_init_orddept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  157. <ColumnInfo>
  158. <Column id="depthngnm" type="STRING"/>
  159. <Column id="deptcd" type="STRING"/>
  160. </ColumnInfo>
  161. </Dataset>
  162. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  163. <ColumnInfo>
  164. <Column id="basedd" type="STRING" size="256"/>
  165. <Column id="orddeptcd" type="STRING" size="256"/>
  166. <Column id="userid" type="STRING" size="256"/>
  167. </ColumnInfo>
  168. <Rows>
  169. <Row/>
  170. </Rows>
  171. </Dataset>
  172. <Dataset id="ds_init_userlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  173. <ColumnInfo>
  174. <Column id="usernm" type="STRING"/>
  175. <Column id="userid" type="STRING"/>
  176. </ColumnInfo>
  177. <Rows>
  178. <Row/>
  179. </Rows>
  180. </Dataset>
  181. <Dataset id="ds_uploadexcel" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  182. <ColumnInfo>
  183. <Column id="dutplcenm" type="STRING"/>
  184. <Column id="usernm" type="STRING"/>
  185. <Column id="userid" type="STRING"/>
  186. <Column id="fromdd" type="STRING"/>
  187. <Column id="todd" type="STRING"/>
  188. </ColumnInfo>
  189. </Dataset>
  190. <Dataset id="ds_hardcd568" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  191. <Dataset id="ds_hardcd569" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  192. <Dataset id="ds_hardcd570" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  193. <Dataset id="ds_init_jobpostcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  194. <ColumnInfo>
  195. <Column id="cd" type="STRING" size="256"/>
  196. <Column id="nm" type="STRING" size="256"/>
  197. </ColumnInfo>
  198. <Rows>
  199. <Row>
  200. <Col id="cd">1799</Col>
  201. <Col id="nm">인턴</Col>
  202. </Row>
  203. <Row>
  204. <Col id="cd">1800</Col>
  205. <Col id="nm">레지던트</Col>
  206. </Row>
  207. </Rows>
  208. </Dataset>
  209. <Dataset id="ds_init_tempyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  210. <ColumnInfo>
  211. <Column id="cd" type="STRING" size="256"/>
  212. <Column id="nm" type="STRING" size="256"/>
  213. </ColumnInfo>
  214. <Rows>
  215. <Row>
  216. <Col id="cd">N</Col>
  217. <Col id="nm">-</Col>
  218. </Row>
  219. <Row>
  220. <Col id="cd">C</Col>
  221. <Col id="nm">기록</Col>
  222. </Row>
  223. </Rows>
  224. </Dataset>
  225. <Dataset id="ds_send_save" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  226. </Objects>
  227. <Bind>
  228. <BindItem id="item0" compid="grp_sea.ipt_date" propid="value" datasetid="ds_main_cond" columnid="basedd"/>
  229. <BindItem id="item1" compid="grp_sea.cmb_orddept" propid="value" datasetid="ds_main_cond" columnid="orddeptcd"/>
  230. <BindItem id="item2" compid="grp_sea.cmb_userid" propid="value" datasetid="ds_main_cond" columnid="userid"/>
  231. <BindItem id="item3" compid="grp_sea.Edit00" propid="value" datasetid="ds_main_cond" columnid="userid"/>
  232. </Bind>
  233. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  234. * System Name : KNUH2.0
  235. * Job Name : EMR
  236. * Creator :
  237. * Make Date : 2014-08-29
  238. * Description :
  239. *---------------------------------------------------------------------------------------
  240. * Modify Date Modifier Modify Description
  241. *---------------------------------------------------------------------------------------
  242. * 2014-08-29 Live Converter TF->XP
  243. *
  244. *---------------------------------------------------------------------------------------
  245. ****************************************************************************************/
  246. //=======================================================================================
  247. // Lib Include
  248. //---------------------------------------------------------------------------------------
  249. include "com_commonxp::comm_main.xjs";
  250. include "emr_prcpmngtxp::MMO001.xjs";
  251. include "emr_prcpmngtxp::SPMMO00100.xjs";
  252. //include "emr_commonxp::EMRCommon.xjs"
  253. var arErrorCode = new HashArray();
  254. //=======================================================================================
  255. // Event
  256. //---------------------------------------------------------------------------------------
  257. /****************************************************************************************
  258. * Components : Form
  259. * Components ID : SPMMO00800
  260. * Event : onload
  261. * Argument : 01.obj : Object Event has occurred
  262. * : 02.e : Event Object
  263. * Description : 화면 로드
  264. ****************************************************************************************/
  265. function SPMMI00400_oninit(obj:Form, e:InitEventInfo)
  266. {
  267. frmf_initForm(obj);
  268. grdf_initGrid(grd_userlist);
  269. }
  270. function SPMMI00400_onload(obj:Form, e:LoadEventInfo)
  271. {
  272. grdf_setRowTypeIcon(grd_userlist, 0);
  273. grdf_setToolTipBind(grd_userlist);
  274. ds_main_cond.setColumn(0, "basedd", utlf_getCurrentDate());
  275. ds_main_cond.setColumn(0, "orddeptcd", "-");
  276. ds_main_cond.setColumn(0, "userid", "-");
  277. lf_mmbfGetDeptCodeComboList(ds_init_orddept , "D",""); //부서코드 콤보
  278. //20190916 이돈희 : 칠곡 교육수련실 요청으로 내과 추가
  279. dsf_addDsItem( ds_init_orddept, "deptcd", "depthngnm", "내과", "2010000000", "above" ); //부서콤보 Item '전체'추가
  280. dsf_addDsItem( ds_init_orddept, "deptcd", "depthngnm", "전체", "-", "above" ); //부서콤보 Item '전체'추가
  281. lf_getHardCDList("N", "568", null, ds_hardcd568);
  282. lf_getHardCDList("N", "569", null, ds_hardcd569);
  283. lf_getHardCDList("N", "570", null, ds_hardcd570);
  284. //20190916 이돈희 : 칠곡 교육수련실 요청으로 내과 추가, 해당 공통코드 다른 곳에서 사용하므로 아래와 같이 추가
  285. var iRow = ds_hardcd568.addRow();
  286. if(iRow > -1){
  287. ds_hardcd568.setColumn(iRow, "hardcdno" , "568");
  288. ds_hardcd568.setColumn(iRow, "hardcodenm", "내과 세부부서");
  289. ds_hardcd568.setColumn(iRow, "hardcd" , "2010000000");
  290. ds_hardcd568.setColumn(iRow, "hardcdnm" , "내과");
  291. ds_hardcd568.setColumn(iRow, "cdseqno" , "9");
  292. ds_hardcd568.setColumn(iRow, "realtime" , "N");
  293. }
  294. }
  295. function grp_sea_btn_srch_onclick(obj:Button, e:ClickEventInfo)
  296. {
  297. fGetUserSrch();
  298. }
  299. /****************************************************************************************
  300. * Function : fGetUserSrch
  301. * Description : 파견의검색
  302. * Argument :
  303. * :
  304. * return type :
  305. * Creator :
  306. ****************************************************************************************/
  307. function fGetUserSrch() {
  308. var oParam = {};
  309. oParam.id = "TRMMI00401";
  310. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  311. oParam.method = "reqGetResidentUserList";
  312. oParam.inds = "req=" + "ds_main_cond";
  313. oParam.outds = "ds_userlist=userlist";
  314. oParam.async = false;
  315. //oParam.callback = "cf_TRMMO00801";
  316. tranf_submit(oParam);
  317. }
  318. function grp_sea_cmb_orddept_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  319. {
  320. ds_init_userlist.clearData();
  321. lf_mmbfGetUserComboList(ds_init_userlist , grp_sea.cmb_orddept.value, "0330");
  322. dsf_addDsItem( ds_init_userlist , "userid", "usernm", "전체", "-", "above");
  323. ds_main_cond.setColumn(0,"userid", "-");
  324. fGetUserSrch();
  325. }
  326. function grp_sea_cmb_userid_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  327. {
  328. fGetUserSrch();
  329. }
  330. function grp_sea_Edit00_onkeydown(obj:Edit, e:KeyEventInfo)
  331. {
  332. if(e.keycode == 13) {
  333. obj.updateToDataset();
  334. fGetUserSrch();
  335. }
  336. }
  337. function button8_onclick(obj:Button, e:ClickEventInfo)
  338. {
  339. ds_userlist.addRow();
  340. var nRow = ds_userlist.rowposition;
  341. ds_userlist.setColumn(nRow, "fromdd", utlf_getCurrentDate());
  342. ds_userlist.setColumn(nRow, "todd", utlf_getCurrentDate());
  343. ds_userlist.setColumn(nRow, "edittodd", utlf_getCurrentDate());
  344. ds_userlist.setColumn(nRow, "tempyn", "N");
  345. }
  346. function button9_onclick(obj:Button, e:ClickEventInfo)
  347. {
  348. fDeleteRow();
  349. }
  350. function fDeleteRow() {
  351. var nRow = ds_userlist.rowposition;
  352. var iStatus = ds_userlist.getRowType(nRow);
  353. if(nRow < 0) {
  354. alert("삭제할 행을 선택해주세요.");
  355. return;
  356. }
  357. if (iStatus == 2) { // 새로 삽입된 행이면
  358. ds_userlist.deleteRow(nRow);
  359. } else if (iStatus == 8){ // 삭제 상태 이면
  360. grdf_setStatus(grd_userlist, "", [nRow]);
  361. } else {
  362. var sFstRgstrId = ds_userlist.getColumn(nRow, "fstrgstrid");
  363. var sFstRgstDt = ds_userlist.getColumn(nRow, "fstrgstdt");
  364. if(sFstRgstDt.length > 8) {
  365. sFstRgstDt = sFstRgstDt.substring(0, 8);
  366. }
  367. trace("sFstRgstrId : " + sFstRgstrId );
  368. trace("getUserInfo : " + sysf_getUserInfo("userid") );
  369. trace("sFstRgstDt : " + sFstRgstDt );
  370. trace("CurrentDate : " + utlf_getCurrentDate() );
  371. if(sFstRgstrId != sysf_getUserInfo("userid") || sFstRgstDt != utlf_getCurrentDate()) {
  372. sysf_messageBox("로그인 사용자가 당일 등록한 정보만 삭제 가능 합니다.", "E");
  373. return;
  374. } else {
  375. grdf_setStatus(grd_userlist, "D", [nRow]);
  376. }
  377. }
  378. }
  379. function btn_SaveDhrcd_onclick(obj:Button, e:ClickEventInfo)
  380. {
  381. var oDsUpdate = grdf_getGridUpdateData(grd_userlist);
  382. if(oDsUpdate.rowcount < 1){
  383. sysf_messageBox("입력 또는 수정 할 ", "E013");// 입력, 수정, 삭제 데이터가 없으면 "입력된 데이터가 없습니다."는 메시지 출력
  384. return;
  385. }
  386. grdf_setStatusColumn(oDsUpdate, "status");//각 행의 status에 rowType 값에 따라 i, u, d로 업데이트 시켜줌
  387. ds_send_save.copyData(oDsUpdate, true);
  388. if( sysf_messageBox("파견의사 정보를","Q002") == 6 ){
  389. var oParam = {};
  390. oParam.id = "TXMMI00401";
  391. oParam.service = "prcpinfoapp.PrcpInfoEtcMngt";
  392. oParam.method = "reqExeSaveResidentUserInfo";
  393. oParam.inds = "req=ds_send_save";
  394. oParam.outds = "";
  395. oParam.async = false;
  396. var bRtn = tranf_submit(oParam);
  397. if(bRtn) {
  398. fGetUserSrch();
  399. }
  400. }
  401. }
  402. function btn_excel01_onclick(obj:Button, e:ClickEventInfo)
  403. {
  404. grdf_exportExcel(grd_userlist, "파견의사목록", "파견의사목록", false, "", "user", true);
  405. }
  406. function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  407. {
  408. grdf_exportExcel(grd_sampleexcel, "파견의사등록", "파견의사등록", false, "", "user", true);
  409. }
  410. function btn_excel00_onclick(obj:Button, e:ClickEventInfo)
  411. {
  412. var nRow = 0;
  413. var sDutPlceCd = "";
  414. var sDutPlceNm = "";
  415. var sUserNm = "";
  416. var sUserId = "";
  417. var sFromDd = "";
  418. var sToDd = "";
  419. ds_uploadexcel.clearData();
  420. if( grdf_ImportExcel("ds_uploadexcel", 1, "") != false){
  421. var rows = ds_uploadexcel.rowcount;
  422. if( rows <= 0 ){
  423. sysf_messageBox("등록된 사용자 정보가 없습니다","");
  424. return;
  425. }
  426. for (i = 0; i < rows; i++){
  427. sDutPlceNm = ds_uploadexcel.getColumn(i, "dutplcenm");
  428. sUserNm = ds_uploadexcel.getColumn(i, "usernm");
  429. sUserId = ds_uploadexcel.getColumn(i, "userid");
  430. sFromDd = ds_uploadexcel.getColumn(i, "fromdd");
  431. sToDd = ds_uploadexcel.getColumn(i, "todd");
  432. if ( utlf_isNull(sUserId)) {
  433. continue;
  434. }
  435. if(sDutPlceNm == "진료과" || sUserNm == "성명" || sUserId == "사번" || sFromDd == "시작일" || sToDd == "종료일") {
  436. continue;
  437. }
  438. if(sFromDd.length > 8) {
  439. sFromDd = sFromDd.substring(0, 8);
  440. }
  441. if(sToDd.length > 8) {
  442. sToDd = sToDd.substring(0, 8);
  443. }
  444. if(sDutPlceNm == "내과" || sDutPlceNm == "외과" || sDutPlceNm == "소아청소년과") { // 세부부서 처리
  445. var sMainDeptNm = sDutPlceNm;
  446. var deptrows = 0;
  447. if(sMainDeptNm == "내과") {
  448. deptrows = ds_hardcd568.rowcount; //내과 세부부서
  449. } else if(sMainDeptNm == "외과") {
  450. deptrows = ds_hardcd569.rowcount; //외과 세부부서
  451. } else if(sMainDeptNm == "소아청소년과") {
  452. deptrows = ds_hardcd570.rowcount; //소아청소년과 세부부서
  453. }
  454. for (j = 0; j< deptrows; j++){
  455. if(sMainDeptNm == "내과") {
  456. sDutPlceCd = ds_hardcd568.getColumn(j, "hardcd");
  457. } else if(sMainDeptNm == "외과") {
  458. sDutPlceCd = ds_hardcd569.getColumn(j, "hardcd");
  459. } else if(sMainDeptNm == "소아청소년과") {
  460. sDutPlceCd = ds_hardcd570.getColumn(j, "hardcd");
  461. }
  462. sDutPlceNm = ds_init_orddept.getColumn(ds_init_orddept.findRow("deptcd", sDutPlceCd), "depthngnm");
  463. nRow = ds_userlist.addRow();
  464. //nRow = ds_userlist.rowposition;
  465. ds_userlist.setColumn(nRow, "dutplcecd", sDutPlceCd);
  466. ds_userlist.setColumn(nRow, "dutplcenm", sDutPlceNm);
  467. ds_userlist.setColumn(nRow, "usernm", sUserNm);
  468. ds_userlist.setColumn(nRow, "userid", sUserId);
  469. ds_userlist.setColumn(nRow, "fromdd", sFromDd);
  470. ds_userlist.setColumn(nRow, "todd", sToDd);
  471. ds_userlist.setColumn(nRow, "edittodd", sToDd);
  472. ds_userlist.setColumn(nRow, "tempyn", "N");
  473. ds_userlist.setColumn(nRow, "excelyn", "Y");
  474. }
  475. } else {
  476. sDutPlceCd = ds_init_orddept.getColumn(ds_init_orddept.findRow("depthngnm", sDutPlceNm), "deptcd");
  477. nRow = ds_userlist.addRow();
  478. //nRow = ds_userlist.rowposition;
  479. ds_userlist.setColumn(nRow, "dutplcecd", sDutPlceCd);
  480. ds_userlist.setColumn(nRow, "dutplcenm", sDutPlceNm);
  481. ds_userlist.setColumn(nRow, "usernm", sUserNm);
  482. ds_userlist.setColumn(nRow, "userid", sUserId);
  483. ds_userlist.setColumn(nRow, "fromdd", sFromDd);
  484. ds_userlist.setColumn(nRow, "todd", sToDd);
  485. ds_userlist.setColumn(nRow, "edittodd", sToDd);
  486. ds_userlist.setColumn(nRow, "tempyn", "N");
  487. ds_userlist.setColumn(nRow, "excelyn", "Y");
  488. }
  489. }
  490. ds_userlist.rowposition = -1;
  491. // 정렬 후 파일 내 동일한 정보 있는지 체크 후 색깔 표시
  492. ds_userlist.updateLocaleSortGroup("S:+excelyn+userid+dutplcenm+fromdd+todd"); // 정렬
  493. var rows = ds_userlist.rowcount;
  494. var startRow = ds_userlist.findRow("excelyn", "Y");
  495. var cols = grd_userlist.getCellCount("Head");
  496. var nmIdx = grd_userlist.getBindCellIndex("body", "usernm"); // 성명 칼럼에 색깔 표시하기 위함.
  497. // 업로드할 엑셀파일 내 중복된 내용 있는지 체크 후 있으면 해당 row 제거
  498. for (var m = startRow; m < rows - 1; m++){
  499. // 동일사번, 동일과 정보 중 파견기간 겹치는 경우
  500. if(ds_userlist.getColumn(m, "userid") == ds_userlist.getColumn(m + 1, "userid")
  501. && ds_userlist.getColumn(m, "dutplcecd") == ds_userlist.getColumn(m + 1, "dutplcecd")
  502. && ds_userlist.getColumn(m, "todd") >= ds_userlist.getColumn(m + 1, "fromdd")){
  503. if(ds_userlist.getColumn(m, "excelyn") == "Y"
  504. && ds_userlist.getColumn(m + 1, "excelyn") == "Y"){
  505. ds_userlist.setColumn(m, "colorflag", "Y");
  506. ds_userlist.setColumn(m + 1, "colorflag", "Y");
  507. }
  508. }
  509. }
  510. }
  511. }
  512. function grd_userlist_onkeydown(obj:Grid, e:KeyEventInfo)
  513. {
  514. if(e.keycode == 46) { // delete 키 입력시
  515. fDeleteRow();
  516. }
  517. }
  518. ]]></Script>
  519. </Form>
  520. </FDL>