SMAHB01300_검사실별검사자관리.xfdl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMAHB01300" position="absolute 0 0 582 463" titletext="치료실별치료사관리" onload="SMAHB01300_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="검사/치료실별 근무자관리" class="tit_1" position="absolute 0 0 200 25"/>
  8. <Div id="group2" taborder="2" position="absolute 0 25 580 65" class="div_SA">
  9. <Layouts>
  10. <Layout>
  11. <Shape id="line13" linetype="vertical" position="absolute 496 10 502 32" anchor="default"/>
  12. <Button id="btn_sea" taborder="1" text="조회" class="btn1" position="absolute 515 10 571 32" anchor="default" onclick="group2_btn_sea_onclick"/>
  13. <Static id="caption3" text="검사/치료실 :" class="search_name" position="absolute 11 12 117 29" anchor="default"/>
  14. <Edit id="input2" taborder="2" class="input_search" position="absolute 122 11 252 30" anchor="default" onkeydown="group2_input2_onkeydown"/>
  15. </Layout>
  16. </Layouts>
  17. </Div>
  18. <Static id="caption1" text="검사/치료실 현황" class="tit_2" position="absolute 0 73 136 91"/>
  19. <Shape id="line1" class="line_10" position="absolute 0 89 290 95"/>
  20. <Static id="caption2" text="근무자 현황" class="tit_2" position="absolute 295 73 444 91"/>
  21. <Shape id="line2" class="line_10" position="absolute 295 89 580 95"/>
  22. <Button id="btn_grdadd" taborder="3" text="행추가" class="btn2" position="absolute 471 67 524 89" onclick="btn_grdadd_onclick"/>
  23. <Button id="btn_grddel" taborder="4" text="행삭제" class="btn2" position="absolute 527 67 580 89" onclick="btn_grddel_onclick"/>
  24. <Grid id="grd_execrlst" taborder="5" binddataset="ds_main_dutplst_item" useinputpanel="false" position="absolute 296 94 580 432" onselectchanged="grd_execrlst_onselectchanged" oncloseup="grd_execrlst_oncloseup">
  25. <Formats>
  26. <Format id="default">
  27. <Columns>
  28. <Column size="25" band="left"/>
  29. <Column size="43"/>
  30. <Column size="105"/>
  31. <Column size="95"/>
  32. <Column size="0"/>
  33. </Columns>
  34. <Rows>
  35. <Row size="24" band="head"/>
  36. <Row size="24"/>
  37. </Rows>
  38. <Band id="head">
  39. <Cell/>
  40. <Cell col="1" text="순번"/>
  41. <Cell col="2" text="이름"/>
  42. <Cell col="3" text="사번"/>
  43. <Cell col="4" text="원본사번"/>
  44. </Band>
  45. <Band id="body">
  46. <Cell celltype="head"/>
  47. <Cell col="1" text="bind:seqno"/>
  48. <Cell col="2" displaytype="combo" edittype="combo" text="bind:basenm" combodataset="ds_init_dutplst_item" combocodecol="basecd" combodatacol="basenm" combodisplayrowcount="30" enable="false"/>
  49. <Cell col="3" text="bind:basecd"/>
  50. <Cell col="4" text="bind:orgbasecd"/>
  51. </Band>
  52. </Format>
  53. </Formats>
  54. </Grid>
  55. <Grid id="grd_testroomlst" taborder="6" binddataset="ds_main_roomlst_itemroom" useinputpanel="false" position="absolute 0 94 291 432" oncellclick="grd_testroomlst_oncellclick">
  56. <Formats>
  57. <Format id="default">
  58. <Columns>
  59. <Column size="71"/>
  60. <Column size="202"/>
  61. </Columns>
  62. <Rows>
  63. <Row size="24" band="head"/>
  64. <Row size="24"/>
  65. </Rows>
  66. <Band id="head">
  67. <Cell text="코드"/>
  68. <Cell col="1" text="검사/치료실"/>
  69. </Band>
  70. <Band id="body">
  71. <Cell displaytype="text" text="bind:testroomcd"/>
  72. <Cell col="1" displaytype="text" text="bind:testroomnm"/>
  73. </Band>
  74. </Format>
  75. </Formats>
  76. </Grid>
  77. <Button id="btn_save" taborder="7" text="저장" class="btn4" position="absolute 524 435 580 457" onclick="btn_save_onclick"/>
  78. </Layout>
  79. </Layouts>
  80. <Objects>
  81. <Dataset id="ds_main_roomlst_itemroom" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  82. <ColumnInfo>
  83. <Column id="testroomcd" type="STRING" size="256"/>
  84. <Column id="testroomnm" type="STRING" size="256"/>
  85. </ColumnInfo>
  86. <Rows>
  87. <Row>
  88. <Col id="testroomcd"/>
  89. <Col id="testroomnm"/>
  90. </Row>
  91. </Rows>
  92. </Dataset>
  93. <Dataset id="ds_init_dutplst_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep"/>
  94. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  95. <ColumnInfo>
  96. <Column id="testroomcd" type="STRING" size="256"/>
  97. <Column id="srchinstcd" type="STRING" size="256"/>
  98. </ColumnInfo>
  99. <Rows>
  100. <Row>
  101. <Col id="testroomcd"/>
  102. <Col id="srchinstcd"/>
  103. </Row>
  104. </Rows>
  105. </Dataset>
  106. <Dataset id="ds_main_dutplst_item" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  107. <ColumnInfo>
  108. <Column id="seqno" type="STRING" size="256"/>
  109. <Column id="basenm" type="STRING" size="256"/>
  110. <Column id="basecd" type="STRING" size="256"/>
  111. <Column id="orgbasecd" type="STRING" size="256"/>
  112. </ColumnInfo>
  113. <Rows>
  114. <Row>
  115. <Col id="seqno"/>
  116. <Col id="basenm"/>
  117. <Col id="basecd"/>
  118. <Col id="orgbasecd"/>
  119. </Row>
  120. </Rows>
  121. </Dataset>
  122. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  123. <ColumnInfo>
  124. <Column id="srchinstcd" type="STRING" size="256"/>
  125. <Column id="srchtestroomcd" type="STRING" size="256"/>
  126. </ColumnInfo>
  127. <Rows>
  128. <Row>
  129. <Col id="srchinstcd"/>
  130. <Col id="srchtestroomcd"/>
  131. </Row>
  132. </Rows>
  133. </Dataset>
  134. <Dataset id="ds_send_save_dutpinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep"/>
  135. <Dataset id="ds_send_save" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  136. <ColumnInfo>
  137. <Column id="testroomcd" type="STRING" size="256"/>
  138. <Column id="instcd" type="STRING" size="256"/>
  139. </ColumnInfo>
  140. <Rows>
  141. <Row>
  142. <Col id="testroomcd"/>
  143. <Col id="instcd"/>
  144. </Row>
  145. </Rows>
  146. </Dataset>
  147. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="keep">
  148. <ColumnInfo>
  149. <Column id="deptcd" type="STRING" size="256"/>
  150. </ColumnInfo>
  151. </Dataset>
  152. </Objects>
  153. <Bind>
  154. <BindItem id="item0" compid="group2.input2" propid="value" datasetid="ds_hidden" columnid="srchtestroomcd"/>
  155. </Bind>
  156. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  157. * System Name :
  158. * Job Name :
  159. * Creator :
  160. * Make Date : 2017-12-04
  161. * Description :
  162. *---------------------------------------------------------------------------------------
  163. * Modify Date Modifier Modify Description
  164. *---------------------------------------------------------------------------------------
  165. * 2017-06-19 Live Converter TF->XP
  166. *
  167. *---------------------------------------------------------------------------------------
  168. ****************************************************************************************/
  169. //=======================================================================================
  170. // Lib Include
  171. //---------------------------------------------------------------------------------------
  172. include "com_commonxp::comm_main.xjs";
  173. include "ast_examcurexp::AEZ0001.xjs"
  174. //=======================================================================================
  175. // Global Form Variable
  176. //---------------------------------------------------------------------------------------
  177. var arErrorCode = new HashArray();
  178. // lf_aezfSetSuppDeptcd(); //AEZ0001.xjs
  179. // ds_send_globalinstance.setColumn(0, "instance", frmf_getParameter("AST_DEPTCD"));
  180. //=======================================================================================
  181. // Function
  182. //---------------------------------------------------------------------------------------
  183. /*-**************************************************************************************
  184. * Argument : N/A
  185. * Description : 근무자 조회
  186. ****************************************************************************************/
  187. function call_TRAHB01201() {
  188. ds_init_dutplst_item.clearData();
  189. var oParam = {};
  190. oParam.id = "TRAHB01201";
  191. oParam.service = "healexambaseapp.DutpCode";
  192. oParam.method = "reqGetExecrList";
  193. oParam.inds = "req=ds_send";
  194. oParam.outds = "ds_init_dutplst_item=item";
  195. oParam.async = false;
  196. oParam.callback = "cf_TRAHB01201";
  197. tranf_submit(oParam);
  198. }
  199. function cf_TRAHB01201(sSvcId, nErrorCode, sErrorMsg) {
  200. arErrorCode.push(sSvcId, nErrorCode);
  201. }
  202. /*-**************************************************************************************
  203. * Argument : N/A
  204. * Description : 검사실 조회
  205. ****************************************************************************************/
  206. function call_TRAHB01302() {
  207. ds_main_roomlst_itemroom.clearData();
  208. var oParam = {};
  209. oParam.id = "TRAHB01302";
  210. oParam.service = "healexambaseapp.DutpCode";
  211. oParam.method = "reqGetTestRoomList";
  212. oParam.inds = "req=ds_hidden";
  213. oParam.outds = "ds_main_roomlst_itemroom=item";
  214. oParam.async = false;
  215. oParam.callback = "cf_TRAHB01302";
  216. tranf_submit(oParam);
  217. }
  218. function cf_TRAHB01302(sSvcId, nErrorCode, sErrorMsg) {
  219. arErrorCode.push(sSvcId, nErrorCode);
  220. }
  221. /*-**************************************************************************************
  222. * Argument : N/A
  223. * Description : 부서코드 셋팅
  224. ****************************************************************************************/
  225. function fSetSuppDeptcd() {
  226. var dutplcecd = sysf_getUserInfo("dutplcecd");
  227. //var selectplcecd = getScreenPrestDeptCd();
  228. ds_init.setColumn( 0, "deptcd" , dutplcecd);
  229. ds_send.setColumn( 0, "srchinstcd" , sysf_getUserInfo("dutplceinstcd"));
  230. }
  231. /*-**************************************************************************************
  232. * Argument : vRow - 선택행
  233. * Description : 검사코드 셋팅
  234. ****************************************************************************************/
  235. function fSetExecrCode(vRow) {
  236. var baseCd = ds_main_dutplst_item.getColumn(vRow, "basenm");
  237. var nodeList = ds_init_dutplst_item;
  238. for(var i = 0; i < nodeList.rowcount; i++) {
  239. var com_baseCd = ds_init_dutplst_item.getColumn(i, "basecd");
  240. if(com_baseCd == baseCd) {
  241. ds_main_dutplst_item.setColumn(vRow, "seqno", ds_init_dutplst_item.getColumn(i, "seqno"));
  242. ds_main_dutplst_item.setColumn(vRow, "basecd", ds_init_dutplst_item.getColumn(i, "basecd"));
  243. }
  244. }
  245. }
  246. /*-**************************************************************************************
  247. * Argument : N/A
  248. * Description : 검사실코드 조회
  249. ****************************************************************************************/
  250. function fGetRoomList() {
  251. ds_hidden.setColumn( 0, "srchinstcd" , sysf_getUserInfo("dutplceinstcd"));
  252. call_TRAHB01302();
  253. var ret = false;
  254. if(arErrorCode.pop("TRAHB01302") > -1) ret = true;
  255. if(ret) {
  256. ds_main_dutplst_item.clearData();
  257. }
  258. }
  259. /*-**************************************************************************************
  260. * Argument : N/A
  261. * Description : 검사실별 근무자 저장
  262. ****************************************************************************************/
  263. function fSaveTestDutp() {
  264. var row = ds_main_roomlst_itemroom.rowposition;
  265. if(row > -1) {
  266. var testroomcd = ds_main_roomlst_itemroom.getColumn(row, "testroomcd");
  267. ds_send_save.setColumn( 0, "instcd" , ds_send.getColumn(0, "srchinstcd"));
  268. var updategrid = grdf_getGridUpdateData(grd_execrlst);
  269. grdf_setStatusColumn(updategrid, "m");
  270. ds_send_save_dutpinfo.copyData(updategrid, true);
  271. dsf_makeValue(ds_send_save_dutpinfo, "testroomcd", "string", testroomcd);
  272. var oParam = {};
  273. oParam.id = "TXAHB01301";
  274. oParam.service = "healexambaseapp.DutpCode";
  275. oParam.method = "reqExeTestRoomDutp";
  276. oParam.inds = "req=ds_send_save save=ds_send_save_dutpinfo";
  277. oParam.outds = "ds_main_dutplst_item=item";
  278. oParam.async = false;
  279. //oParam.callback = "cf_TXAHB01301";
  280. tranf_submit(oParam);
  281. }
  282. }
  283. //=======================================================================================
  284. // Event
  285. //---------------------------------------------------------------------------------------
  286. /****************************************************************************************
  287. * Components : Form
  288. * Description : 화면 처음 초기화시 폼초기화
  289. ****************************************************************************************/
  290. function SMAHB01300_onload(obj:Form, e:LoadEventInfo) {
  291. frmf_initForm(obj);
  292. //grdf_initGrid(grd_XXX);
  293. //grdf_setGridSort(grd_XXX);
  294. grdf_setRowTypeIcon(grd_execrlst, 0);
  295. fSetSuppDeptcd();
  296. ds_main_roomlst_itemroom.clearData();
  297. ds_main_dutplst_item.clearData();
  298. call_TRAHB01201();
  299. //검사실 코드조회
  300. ds_hidden.setColumn( 0, "srchinstcd" , sysf_getUserInfo("dutplceinstcd"));
  301. call_TRAHB01302();
  302. }
  303. /****************************************************************************************
  304. * Components : Button
  305. * Description : 조회
  306. ****************************************************************************************/
  307. function group2_btn_sea_onclick(obj:Button, e:ClickEventInfo) {
  308. fGetRoomList();
  309. }
  310. /****************************************************************************************
  311. * Components : Edit
  312. * Description : 조회조건 입력 후 조회
  313. ****************************************************************************************/
  314. function group2_input2_onkeydown(obj:Edit, e:KeyEventInfo) {
  315. if(e.keycode == 13) {
  316. obj.updateToDataset();
  317. group2.btn_sea.click();
  318. }
  319. }
  320. /****************************************************************************************
  321. * Components : Button
  322. * Description : 행추가
  323. ****************************************************************************************/
  324. function btn_grdadd_onclick(obj:Button, e:ClickEventInfo) {
  325. ds_main_dutplst_item.addRow();
  326. }
  327. /****************************************************************************************
  328. * Components : Button
  329. * Description : 행삭제
  330. ****************************************************************************************/
  331. function btn_grddel_onclick(obj:Button, e:ClickEventInfo) {
  332. var grdObj = grd_execrlst;
  333. var dsObj = this.objects[grdObj.binddataset];
  334. var cRow = dsObj.rowposition;
  335. if( dsObj.getRowType(cRow) == 2 ) {
  336. dsObj.deleteRow(cRow);
  337. }else{
  338. grdf_setStatus(grdObj, "D", [cRow]);
  339. }
  340. }
  341. /****************************************************************************************
  342. * Components : Grid
  343. * Description : 근무자현황 선택 변경시
  344. ****************************************************************************************/
  345. function grd_execrlst_onselectchanged(obj:Grid, e:GridSelectEventInfo) {
  346. var row = e.row;
  347. var col = e.col;
  348. if(col == obj.getBindCellIndex("body","basenm")) {
  349. var count = -1;
  350. var chkRow = 0;
  351. // 선택한 성명 셋팅
  352. fSetExecrCode(row);
  353. var baseCd = ds_main_dutplst_item.getColumn(row, "basecd");
  354. //선행검사 중복체크
  355. for(var i = 0 ; i < ds_main_dutplst_item.rowcount ; i++) {
  356. if(i != row && ds_main_dutplst_item.getColumn(i, col) == baseCd) {
  357. sysf_messageBox("사번이 ","E006");
  358. obj.setColumn(row, col, "");
  359. return;
  360. }
  361. }
  362. }
  363. }
  364. /****************************************************************************************
  365. * Components : Grid
  366. * Description : 검사/치료실 현황 선택
  367. ****************************************************************************************/
  368. function grd_testroomlst_oncellclick(obj:Grid, e:GridClickEventInfo) {
  369. var row = e.row;
  370. if(row > -1) {
  371. var testroomcd = ds_main_roomlst_itemroom.getColumn(row , "testroomcd");
  372. ds_send.setColumn( 0, "testroomcd" , testroomcd);
  373. var oParam = {};
  374. oParam.id = "TRAHB01301";
  375. oParam.service = "healexambaseapp.DutpCode";
  376. oParam.method = "reqGetTestRoomDutpList";
  377. oParam.inds = "req=ds_send";
  378. oParam.outds = "ds_main_dutplst_item=item";
  379. oParam.async = false;
  380. //oParam.callback = "cf_TRAHB01301";
  381. tranf_submit(oParam);
  382. }
  383. }
  384. /****************************************************************************************
  385. * Components : Button
  386. * Description : 저장
  387. ****************************************************************************************/
  388. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  389. {
  390. fSaveTestDutp();
  391. }
  392. function grd_execrlst_oncloseup(obj:Grid, e:GridEditEventInfo)
  393. {
  394. obj.updateToDataset();
  395. var count = 0;
  396. var chkRow = 0;
  397. var row = e.row
  398. fSetExecrCode(row);
  399. var baseCd = ds_main_dutplst_item.getColumn(row, "basecd");
  400. for(var i = 0; i < ds_main_dutplst_item.rowcount; i++)
  401. {
  402. if(ds_main_dutplst_item.getColumn(i, "basecd") == baseCd && i != row)
  403. {
  404. count++;
  405. }
  406. }
  407. if(count > 0)
  408. {
  409. sysf_messageBox("사번이 ","E006");
  410. ds_main_dutplst_item.setColumn(row, "seqno", "");
  411. ds_main_dutplst_item.setColumn(row, "basenm", "");
  412. ds_main_dutplst_item.setColumn(row, "basecd", "");
  413. ds_main_dutplst_item.clearSelect();
  414. return;
  415. }
  416. }
  417. ]]></Script>
  418. </Form>
  419. </FDL>