SPZSU20000_직원전화번호관리.xfdl 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZSU200000" position="absolute 0 0 1199 793" titletext="직원전화번호관리" oninit="SPZSU200000_oninit" onload="SPZSU200000_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" text="직원전화번호관리" class="tit_1" position="absolute 0 0 200 24"/>
  8. <Div id="div_search" anchor="left top right" taborder="1" class="div_SA" position="absolute 0 24 1195 64">
  9. <Layouts>
  10. <Layout>
  11. <Button id="btn_search" taborder="20" text="조회" class="btn1" position="absolute 1125 9 1181 31" anchor="top right" onclick="div_search_btn_search_onclick"/>
  12. <Shape id="line2" linetype="vertical" position="absolute 1112 9 1118 31" anchor="top right"/>
  13. <Static id="caption00" text="검색조건" class="search_name" position="absolute 166 10 240 30" anchor="default"/>
  14. <Static id="caption01" text="기관" class="search_name" visible="true" position="absolute 9 10 83 30" anchor="default"/>
  15. <Combo id="cmb_instcd" taborder="23" value="031" text="본원" codecolumn="codecolumn" datacolumn="datacolumn" index="0" onitemchanged="div_search_cmb_instcd_onitemchanged" onkeydown="div_search_cmb_instcd_onkeydown" visible="true" position="absolute 50 9 152 30" anchor="default">
  16. <Dataset id="innerdataset">
  17. <ColumnInfo>
  18. <Column id="codecolumn" size="256"/>
  19. <Column id="datacolumn" size="256"/>
  20. </ColumnInfo>
  21. <Rows>
  22. <Row>
  23. <Col id="codecolumn">031</Col>
  24. <Col id="datacolumn">본원</Col>
  25. </Row>
  26. <Row>
  27. <Col id="codecolumn">032</Col>
  28. <Col id="datacolumn">칠곡</Col>
  29. </Row>
  30. </Rows>
  31. </Dataset>
  32. </Combo>
  33. <Static id="caption03" text="검색어" class="search_name" position="absolute 378 10 452 30" anchor="default"/>
  34. <Edit id="edt_search" taborder="24" imemode="hangul" position="absolute 437 10 575 30" onkeydown="div_search_edt_search_onkeydown" enable="true" anchor="default"/>
  35. <Button id="btn_unit" taborder="25" class="icon_search" position="absolute 581 12 597 28" onclick="div_search_btn_unit_onclick" anchor="default"/>
  36. <Radio id="rdo_flag" taborder="26" rowcount="1" codecolumn="codecolumn" datacolumn="datacolumn" enable="true" position="absolute 233 8 368 31" anchor="default" index="1" value="E" onitemchanged="div_search_rdo_flag_onitemchanged">
  37. <Dataset id="innerdataset">
  38. <ColumnInfo>
  39. <Column id="codecolumn" size="256"/>
  40. <Column id="datacolumn" size="256"/>
  41. </ColumnInfo>
  42. <Rows>
  43. <Row>
  44. <Col id="codecolumn">D</Col>
  45. <Col id="datacolumn">부서명</Col>
  46. </Row>
  47. <Row>
  48. <Col id="codecolumn">E</Col>
  49. <Col id="datacolumn">사용자명</Col>
  50. </Row>
  51. </Rows>
  52. </Dataset>
  53. </Radio>
  54. <Edit id="edt_searchcd" taborder="27" imemode="none" onkeydown="div_search_edt_search_onkeydown" position="absolute 610 10 748 30" visible="true" readonly="true" anchor="default"/>
  55. <Edit id="edt_searchnm" taborder="28" readonly="true" onkeydown="div_search_edt_search_onkeydown" position="absolute 760 10 898 30"/>
  56. </Layout>
  57. </Layouts>
  58. </Div>
  59. <Shape id="line00" class="line_10" position="absolute 0 88 500 97" anchor="left top"/>
  60. <Grid id="grd_list" class="datagrid2" taborder="2" binddataset="ds_dept_info" autoenter="select" useinputpanel="false" cellsizingtype="col" autofittype="col" position="absolute 0 94 500 750" anchor="left top" treeusecheckbox="false" treeinitstatus="expand,null" oncellclick="grd_list_oncellclick" treeuseexpandkey="true" onselectchanged="grd_list_onselectchanged">
  61. <Formats>
  62. <Format id="default">
  63. <Columns>
  64. <Column size="0"/>
  65. <Column size="25"/>
  66. <Column size="60"/>
  67. <Column size="275"/>
  68. <Column size="24"/>
  69. </Columns>
  70. <Rows>
  71. <Row size="24" band="head"/>
  72. <Row size="24"/>
  73. </Rows>
  74. <Band id="head">
  75. <Cell text="caption1"/>
  76. <Cell col="1" celltype="head" text="No."/>
  77. <Cell col="2" text="병원구분"/>
  78. <Cell col="3" text="부서" taborder="undefined"/>
  79. <Cell col="4" displaytype="checkbox" edittype="checkbox"/>
  80. </Band>
  81. <Band id="body">
  82. <Cell text="bind:coophospcd"/>
  83. <Cell col="1" celltype="head" expr="currow + 1"/>
  84. <Cell col="2" displaytype="combo" style="align:center;background:EXPR(addyn == 'Y' ? 'yellow' : '');background2:EXPR(addyn == 'Y' ? 'yellow' : '');selectbackground:EXPR(addyn == 'Y' ? 'yellow' : '');" text="bind:instcd" combodataset="ds_inst_info" combocodecol="cdid" combodatacol="cdnm"/>
  85. <Cell col="3" displaytype="tree" edittype="tree" style="background:EXPR(addyn == 'Y' ? 'yellow' : '');background2:EXPR(addyn == 'Y' ? 'yellow' : '');selectbackground:EXPR(addyn == 'Y' ? 'yellow' : '');" text="bind:inorddeptnm" treestartlevel="1" treelevel="bind:deptlvl"/>
  86. <Cell col="4" displaytype="expr:flag=='ETC' ? 'checkbox' : 'normal'" edittype="expr:flag=='ETC' ? 'checkbox' : 'none'" text="bind:chk"/>
  87. </Band>
  88. </Format>
  89. </Formats>
  90. </Grid>
  91. <Static id="caption00" text="부서정보" class="tit_2" position="absolute 0 73 80 95"/>
  92. <Shape id="line01" class="line_10" position="absolute 505 88 1195 97" anchor="left top right"/>
  93. <Static id="caption01" text="전화번호 목록" class="tit_2" position="absolute 505 73 615 95"/>
  94. <Grid id="grd_empllist" class="datagrid2" taborder="4" binddataset="ds_empl_info" autoenter="select" useinputpanel="false" cellsizingtype="col" autofittype="col" position="absolute 505 94 1195 750" anchor="left top right" onlbuttonup="grd_empllist_onlbuttonup" selecttype="row" oncelldblclick="grd_empllist_oncelldblclick" treeusecheckbox="false" onexpanddown="grd_empllist_onexpanddown" cellmovingtype="none">
  95. <Formats>
  96. <Format id="default">
  97. <Columns>
  98. <Column size="0"/>
  99. <Column size="25"/>
  100. <Column size="25"/>
  101. <Column size="150"/>
  102. <Column size="100"/>
  103. <Column size="60"/>
  104. </Columns>
  105. <Rows>
  106. <Row size="24" band="head"/>
  107. <Row size="24"/>
  108. </Rows>
  109. <Band id="head">
  110. <Cell text="caption1"/>
  111. <Cell col="1" celltype="head" text="No."/>
  112. <Cell col="2" displaytype="checkbox" edittype="checkbox"/>
  113. <Cell col="3" text="부서"/>
  114. <Cell col="4" style="align:center;" taborder="undefined">
  115. <Cell text="성명 / 업무명"/>
  116. </Cell>
  117. <Cell col="5" text="원내번호"/>
  118. </Band>
  119. <Band id="body">
  120. <Cell text="bind:coophospcd"/>
  121. <Cell col="1" celltype="head" expr="currow + 1"/>
  122. <Cell col="2" displaytype="checkbox" edittype="checkbox" text="bind:chk"/>
  123. <Cell col="3" displaytype="normal" style="align:center;" text="bind:inorddeptnm"/>
  124. <Cell col="4" edittype="normal" text="bind:emplnm" expandshow="expr:addyn=='Y' ? 'show' : 'hide'" expandsize="20" expandimage="expr:addyn=='Y' ? 'theme://images/btn_iconBtn1_N.png' : ''"/>
  125. <Cell col="5" edittype="normal" text="bind:telno"/>
  126. </Band>
  127. </Format>
  128. </Formats>
  129. </Grid>
  130. <Button id="btn_add" taborder="6" text="신규" class="btn2" position="absolute 1062 67 1102 87" anchor="top right" onclick="btn_add_onclick"/>
  131. <Button id="btn_del_empl" taborder="7" text="삭제" class="btn2" position="absolute 1106 67 1151 87" anchor="top right" onclick="btn_del_empl_onclick"/>
  132. <Button id="btn_add_empl" taborder="9" text="저장" class="btn5" position="absolute 1155 67 1195 87" anchor="top right" onclick="btn_add_empl_onclick"/>
  133. <Static id="stc_updept" position="absolute 620 66 1058 88" style="color:blue;padding:0 10 0 0;align:right middle;font:Dotum,9,bold;" anchor="top right" text="상위 부서정보" visible="false"/>
  134. <Button id="btn_expand" taborder="10" position="absolute 80 70 135 90" style="image:URL('..\..\..\IMAGES\com\expandall.png');imagealign:left middle;color:black;padding:0 0 0 0;align:right middle;" class="icon_search" onclick="btn_expand_onclick" anchor="left top" text="펼치기"/>
  135. <Button id="btn_collapse" taborder="11" position="absolute 145 70 190 90" style="image:URL('..\..\..\IMAGES\com\collapseall.png');imagealign:left middle;color:black;align:right middle;" onclick="btn_collapse_onclick" anchor="left top" text="접기" class="icon_search"/>
  136. <Button id="btn_add_dept" taborder="12" text="신규" class="btn2" position="absolute 368 67 408 87" anchor="left top" onclick="btn_add_dept_onclick" enable="false"/>
  137. <Button id="btn_del_dept" taborder="13" text="삭제" class="btn2" position="absolute 412 67 457 87" anchor="left top" onclick="btn_del_dept_onclick" enable="false"/>
  138. <Button id="btn_save_dept" taborder="14" text="저장" class="btn5" position="absolute 461 67 501 87" anchor="left top" onclick="btn_save_dept_onclick" enable="false"/>
  139. <Div id="div_newDept" taborder="15" class="div_SA2" visible="false" position="absolute 1229 186 1534 284">
  140. <Layouts>
  141. <Layout>
  142. <Static id="caption00" text="부서명" class="cell_1" position="absolute 8 37 63 60" anchor="left top" style="padding:0 0 0 5;align:center middle;"/>
  143. <Static id="caption01" text="신규 부서명 입력" class="tit_2" position="absolute 0 8 183 25" anchor="left top"/>
  144. <Edit id="edt_newDeptNm" taborder="9" onkeydown="ipt_pid_onkeydown" class="input_search" position="absolute 68 37 296 60" anchor="default"/>
  145. <Button id="btn_confirm" taborder="11" text="확인" class="btn3" position="absolute 90 71 150 91" anchor="default" onclick="div_newDept_btn_confirm_onclick"/>
  146. <Button id="btn_cancel" taborder="12" text="취소" class="btn3" position="absolute 155 71 215 91" anchor="default" onclick="div_newDept_btn_cancel_onclick"/>
  147. <Edit id="edt_setRow" taborder="13" class="input_search" visible="false" position="absolute 276 7 296 27"/>
  148. </Layout>
  149. </Layouts>
  150. </Div>
  151. </Layout>
  152. </Layouts>
  153. <Objects>
  154. <Dataset id="ds_main_search" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  155. <ColumnInfo>
  156. <Column id="endym" type="STRING" size="256"/>
  157. <Column id="instcd" type="STRING" size="256"/>
  158. </ColumnInfo>
  159. <Rows>
  160. <Row/>
  161. </Rows>
  162. </Dataset>
  163. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  164. <Dataset id="ds_dept_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  165. <Dataset id="ds_inst_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  166. <ColumnInfo>
  167. <Column id="cdid" type="STRING" size="256"/>
  168. <Column id="cdnm" type="STRING" size="256"/>
  169. </ColumnInfo>
  170. <Rows>
  171. <Row>
  172. <Col id="cdid">031</Col>
  173. <Col id="cdnm">본원</Col>
  174. </Row>
  175. <Row>
  176. <Col id="cdid">032</Col>
  177. <Col id="cdnm">칠곡</Col>
  178. </Row>
  179. </Rows>
  180. </Dataset>
  181. <Dataset id="ds_empl_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  182. <Dataset id="ds_updept_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  183. <Dataset id="ds_userdept_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  184. <Dataset id="ds_dept_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  185. <Dataset id="ds_empl_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  186. <Dataset id="ds_send_del" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  187. <ColumnInfo>
  188. <Column id="instcd" type="STRING" size="256"/>
  189. <Column id="deptcd" type="STRING" size="256"/>
  190. <Column id="emplno" type="STRING" size="256"/>
  191. </ColumnInfo>
  192. <Rows>
  193. <Row/>
  194. </Rows>
  195. </Dataset>
  196. <Dataset id="ds_send_ins" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  197. <ColumnInfo>
  198. <Column id="flag" type="STRING" size="256"/>
  199. <Column id="instcd" type="STRING" size="256"/>
  200. <Column id="emplno" type="STRING" size="256"/>
  201. <Column id="deptcd" type="STRING" size="256"/>
  202. <Column id="emplnm" type="STRING" size="256"/>
  203. <Column id="sortno" type="STRING" size="256"/>
  204. <Column id="telno" type="STRING" size="256"/>
  205. </ColumnInfo>
  206. </Dataset>
  207. <Dataset id="ds_send_upt" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  208. <ColumnInfo>
  209. <Column id="flag" type="STRING" size="256"/>
  210. <Column id="instcd" type="STRING" size="256"/>
  211. <Column id="emplno" type="STRING" size="256"/>
  212. <Column id="deptcd" type="STRING" size="256"/>
  213. <Column id="emplnm" type="STRING" size="256"/>
  214. <Column id="sortno" type="STRING" size="256"/>
  215. <Column id="telno" type="STRING" size="256"/>
  216. </ColumnInfo>
  217. </Dataset>
  218. <Dataset id="ds_auth_info" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  219. <ColumnInfo>
  220. <Column id="flag" type="STRING" size="256"/>
  221. <Column id="instcd" type="STRING" size="256"/>
  222. <Column id="emplno" type="STRING" size="256"/>
  223. <Column id="deptcd" type="STRING" size="256"/>
  224. <Column id="emplnm" type="STRING" size="256"/>
  225. <Column id="sortno" type="STRING" size="256"/>
  226. <Column id="telno" type="STRING" size="256"/>
  227. <Column id="adminyn" type="STRING" size="256"/>
  228. </ColumnInfo>
  229. </Dataset>
  230. <Dataset id="ds_init_adminyn" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  231. <ColumnInfo>
  232. <Column id="cdid" type="STRING" size="256"/>
  233. <Column id="cdnm" type="STRING" size="256"/>
  234. </ColumnInfo>
  235. <Rows>
  236. <Row>
  237. <Col id="cdid">Y</Col>
  238. <Col id="cdnm">Y</Col>
  239. </Row>
  240. <Row>
  241. <Col id="cdid">N</Col>
  242. <Col id="cdnm">N</Col>
  243. </Row>
  244. </Rows>
  245. </Dataset>
  246. <Dataset id="ds_save_dept" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  247. <ColumnInfo>
  248. <Column id="saveflag" type="STRING" size="256" sumtext="처리구분코드"/>
  249. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  250. <Column id="deptcd" type="STRING" size="256" sumtext="부서코드"/>
  251. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  252. <Column id="instsupdeptcd" type="STRING" size="256" sumtext="상위부서코드"/>
  253. <Column id="empldelcnt" type="STRING" size="256" sumtext="직원삭제건수"/>
  254. </ColumnInfo>
  255. </Dataset>
  256. </Objects>
  257. <Bind>
  258. <BindItem id="item6" compid="stc_updept" propid="text" datasetid="ds_updept_info" columnid="updept"/>
  259. </Bind>
  260. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  261. * System Name :
  262. * Job Name :
  263. * Creator :
  264. * Make Date : 2020.02.03
  265. * Description :
  266. *---------------------------------------------------------------------------------------
  267. * Modify Date Modifier Modify Description
  268. *---------------------------------------------------------------------------------------
  269. *
  270. *---------------------------------------------------------------------------------------
  271. ****************************************************************************************/
  272. include "com_commonxp::comm_main.xjs";
  273. function SPZSU200000_oninit(obj:Form, e:InitEventInfo)
  274. {
  275. frmf_initForm(obj);
  276. }
  277. function SPZSU200000_onload(obj:Form, e:LoadEventInfo)
  278. {
  279. fInit();
  280. fGetAuth();
  281. }
  282. function fInit()
  283. {
  284. grdf_initGrid(grd_list);
  285. grdf_initGrid(grd_empllist);
  286. stc_updept.visible = true;
  287. }
  288. // 로그인 사용자 권한 조회
  289. function fGetAuth()
  290. {
  291. ds_send_reqdata.clear();
  292. instcd = sysf_getUserInfo("dutplceinstcd");
  293. emplno = sysf_getUserInfo("userid");
  294. dsf_makeValue(ds_send_reqdata, "instcd", "string", instcd);
  295. dsf_makeValue(ds_send_reqdata, "emplno", "string", emplno);
  296. var oParam = {};
  297. oParam.id = "TRZSU20000";
  298. oParam.service = "userdeptinfoapp.UserDeptInfo";
  299. oParam.method = "reqGetTlnoAuthInfo";
  300. oParam.inds = "req=ds_send_reqdata";
  301. oParam.outds = "ds_auth_info=result";
  302. oParam.async = false;
  303. //oParam.callback = "cf_TRZSU20000";
  304. tranf_submit(oParam);
  305. // 슈퍼 유저만 기타부서 관리가능
  306. if(ds_auth_info.getColumn(0, "auth") == "S"){
  307. btn_add_dept.enable = true;
  308. btn_del_dept.enable = true;
  309. btn_save_dept.enable = true;
  310. }
  311. }
  312. // 부서 정보 조회
  313. function div_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  314. {
  315. grd_list.treeinitstatus = "expand,null";
  316. ds_send_reqdata.clearData();
  317. ds_empl_info.clearData();
  318. dsf_makeValue(ds_send_reqdata, "instcd", "string", div_search.cmb_instcd.value);
  319. var oParam = {};
  320. oParam.id = "TRZSU20001";
  321. oParam.service = "userdeptinfoapp.UserDeptInfo";
  322. oParam.method = "reqGetDeptInfo";
  323. oParam.inds = "req=ds_send_reqdata";
  324. oParam.outds = "ds_dept_info=result";
  325. oParam.async = false;
  326. oParam.callback = "cf_TRZSU20001";
  327. tranf_submit(oParam);
  328. }
  329. function cf_TRZSU20001(sSvcId, nErrorCode, sErrorMsg)
  330. {
  331. if(nErrorCode < 0)
  332. {
  333. return;
  334. }
  335. else
  336. {
  337. if(!utlf_isNull(div_search.edt_search.value)){
  338. var dIdx;
  339. if(div_search.rdo_flag.value == "D"){
  340. // 부서명 조회
  341. dIdx = ds_dept_info.findRow("inorddeptnm", div_search.edt_search.value);
  342. } else {
  343. // 사용자명 조회
  344. dIdx = ds_dept_info.findRow("inorddeptnm", div_search.edt_searchnm.value);
  345. }
  346. if(!utlf_isNull(dIdx) || dIdx >= 0) {
  347. ds_dept_info.rowposition = dIdx;
  348. fgetEmplTelInfo(div_search.edt_searchcd.value);
  349. }
  350. }
  351. }
  352. }
  353. // 부서 목록 선택
  354. function grd_list_oncellclick(obj:Grid, e:GridClickEventInfo)
  355. {
  356. div_search.edt_search.value = "";
  357. div_search.edt_searchcd.value = "";
  358. div_search.edt_searchnm.value = "";
  359. fgetEmplTelInfo();
  360. }
  361. // 부서별 사용자 조회
  362. function fgetEmplTelInfo(deptcd){
  363. ds_send_reqdata.clear();
  364. dsf_makeValue(ds_send_reqdata, "instcd", "string", div_search.cmb_instcd.value);
  365. if(utlf_isNull(deptcd)){
  366. dsf_makeValue(ds_send_reqdata, "deptcd", "string", ds_dept_info.getColumn(ds_dept_info.rowposition, "deptcd"));
  367. } else {
  368. dsf_makeValue(ds_send_reqdata, "deptcd", "string", deptcd);
  369. }
  370. var oParam = {};
  371. oParam.id = "TRZSU20002";
  372. oParam.service = "userdeptinfoapp.UserDeptInfo";
  373. oParam.method = "reqGetEmplTelInfo";
  374. oParam.inds = "req=ds_send_reqdata";
  375. oParam.outds = "ds_empl_info=emplinfo ds_updept_info=updeptinfo";
  376. oParam.async = false;
  377. oParam.callback = "cf_TRZSU20002";
  378. tranf_submit(oParam);
  379. }
  380. // 부서별 사용자 조회 콜백
  381. function cf_TRZSU20002(sSvcId, nErrorCode, sErrorMsg)
  382. {
  383. if(nErrorCode < 0)
  384. {
  385. return;
  386. }
  387. else
  388. {
  389. if(div_search.rdo_flag.value == "E" && !utlf_isNull(div_search.edt_search.value)){
  390. var eIdx = ds_empl_info.findRow("emplnm", div_search.edt_search.value);
  391. if(!utlf_isNull(eIdx) || eIdx >= 0) {
  392. grd_empllist.setFocus();
  393. ds_empl_info.rowposition = eIdx;
  394. }
  395. }
  396. // 권한처리
  397. if(ds_auth_info.rowcount > 0){
  398. var auth = ds_auth_info.getColumn(0, "auth");
  399. var deptcd = ds_auth_info.getColumn(0, "deptcd");
  400. if(auth == "S"){
  401. // 슈퍼유저
  402. fSetBtnByAuth(true);
  403. } else if(auth == "A" && ds_dept_info.getColumn(ds_dept_info.rowposition, "deptcd") == deptcd) {
  404. // 부서관리자(본인소속 부서만 관리가능)
  405. fSetBtnByAuth(true);
  406. } else {
  407. fSetBtnByAuth(false);
  408. }
  409. } else {
  410. fSetBtnByAuth(false);
  411. }
  412. }
  413. }
  414. // 사용자 관리 버튼 활성화/비활성화
  415. function fSetBtnByAuth(flag){
  416. btn_add.enable = flag;
  417. btn_del_empl.enable = flag;
  418. btn_add_empl.enable = flag;
  419. }
  420. // 엑셀저장
  421. // function btn_excel_onclick(obj:Button, e:ClickEventInfo)
  422. // {
  423. // fExcel();
  424. // }
  425. // function fExcel()
  426. // {
  427. // if (ds_result.rowcount == 0)
  428. // {
  429. // sysf_messageBox("엑셀파일로 저장할 리스트 내역이", "I004");
  430. // return;
  431. // }
  432. //
  433. // var title = "진료의뢰회송 실적";
  434. // var sheetNm = "진료의뢰회송 실적" + ds_main_search.getColumn(0, "endym");
  435. //
  436. // grdf_exportExcel(grd_list, title, sheetNm);
  437. // }
  438. // 전화번호목록 신규 버튼 클릭
  439. function btn_add_onclick(obj:Button, e:ClickEventInfo)
  440. {
  441. var nRow = ds_empl_info.addRow();
  442. var instcd = ds_dept_info.getColumn(ds_dept_info.rowposition, "instcd");
  443. var inorddeptnm = ds_dept_info.getColumn(ds_dept_info.rowposition, "inorddeptnm");
  444. var deptcd = ds_dept_info.getColumn(ds_dept_info.rowposition, "deptcd");
  445. var sortno;
  446. if(nRow == 0){
  447. sortno = 1;
  448. } else {
  449. sortno = ds_empl_info.getMax("sortno") + 1
  450. }
  451. ds_empl_info.setColumn(nRow, "instcd", instcd);
  452. ds_empl_info.setColumn(nRow, "inorddeptnm", inorddeptnm);
  453. ds_empl_info.setColumn(nRow, "deptcd", deptcd);
  454. ds_empl_info.setColumn(nRow, "sortno", sortno);
  455. ds_empl_info.setColumn(nRow, "addyn", "Y");
  456. }
  457. // 검색어 엔터키 입력
  458. function div_search_edt_search_onkeydown(obj:Edit, e:KeyEventInfo)
  459. {
  460. if (e.keycode == 13) {
  461. var search = div_search.edt_search.value;
  462. if(!utlf_isNull(search)){
  463. dsf_makeValue(ds_send_reqdata, "instcd", "string", div_search.cmb_instcd.value);
  464. dsf_makeValue(ds_send_reqdata, "flag", "string", div_search.rdo_flag.value);
  465. dsf_makeValue(ds_send_reqdata, "search", "string", div_search.edt_search.value);
  466. var oParam = {};
  467. oParam.id = "TRZSU20101";
  468. oParam.service = "userdeptinfoapp.UserDeptInfo";
  469. oParam.method = "reqGetUserDeptCd";
  470. oParam.inds = "req=ds_send_reqdata";
  471. oParam.outds = "ds_empl_result=emplresult ds_dept_result=deptresult";
  472. oParam.async = false;
  473. oParam.callback = "cf_TRZSU20101";
  474. tranf_submit(oParam);
  475. } else {
  476. div_search_btn_search_onclick();
  477. }
  478. }
  479. }
  480. function cf_TRZSU20101(sSvcId, nErrorCode, sErrorMsg)
  481. {
  482. if(nErrorCode < 0)
  483. {
  484. return;
  485. }
  486. else
  487. {
  488. var flag = ds_send_reqdata.getColumn(0, "flag");
  489. var search = ds_send_reqdata.getColumn(0, "search");
  490. var idx;
  491. if(flag == "D") {
  492. // 부서명 검색결과
  493. if(ds_dept_result.rowcount <= 0) {
  494. sysf_messageBox("존재하지 않는 부서", "I009");
  495. div_search_btn_unit_onclick();
  496. } else if (ds_dept_result.rowcount == 1) {
  497. div_search.edt_searchcd.value = ds_dept_result.getColumn(0, "deptcd");
  498. div_search.edt_searchnm.value = ds_dept_result.getColumn(0, "deptnm");
  499. div_search_btn_search_onclick();
  500. } else {
  501. div_search_btn_unit_onclick();
  502. }
  503. } else {
  504. // 사용자명 검색결과
  505. if(ds_empl_result.rowcount <= 0) {
  506. sysf_messageBox("존재하지 않는 사용자", "I009");
  507. div_search_btn_unit_onclick();
  508. } else if (ds_empl_result.rowcount == 1) {
  509. div_search.edt_searchcd.value = ds_empl_result.getColumn(0, "deptcd");
  510. div_search.edt_searchnm.value = ds_empl_result.getColumn(0, "deptnm");
  511. div_search_btn_search_onclick();
  512. } else {
  513. div_search_btn_unit_onclick();
  514. }
  515. }
  516. }
  517. }
  518. // 트리 모두 펼치기
  519. function btn_expand_onclick(obj:Button, e:ClickEventInfo)
  520. {
  521. grd_list.treeinitstatus = "expand,null";
  522. }
  523. // 트리 모두 접기
  524. function btn_collapse_onclick(obj:Button, e:ClickEventInfo)
  525. {
  526. grd_list.treeinitstatus = "collapse,null";
  527. }
  528. // 조회조건 팝업 호출
  529. function div_search_btn_unit_onclick(obj:Button, e:ClickEventInfo)
  530. {
  531. var instcd = div_search.cmb_instcd.value;
  532. var flag = div_search.rdo_flag.value;
  533. var search = div_search.edt_search.value;
  534. var objArg = new Object();
  535. objArg.sInstcd = instcd;
  536. objArg.sFlag = flag;
  537. objArg.sSearch = search;
  538. var rtnVal = frmf_modal("SPZSU20100", "SPZSU20100", objArg, "", "", "", "", "", "", "", "", "", "M");
  539. if(!utlf_isNull(rtnVal)){
  540. //trace("sEmplno : " + rtnVal.sEmplno + ", sEmplnm : " + rtnVal.sEmplnm + ", sDeptcd : " + rtnVal.sDeptcd + " , rtnVal.sDeptnm : " + rtnVal.sDeptnm);
  541. if(rtnVal.sFlag == "D"){
  542. div_search.edt_search.value = rtnVal.sDeptnm;
  543. } else {
  544. div_search.edt_search.value = rtnVal.sEmplnm;
  545. }
  546. div_search.edt_searchcd.value = rtnVal.sDeptcd;
  547. div_search.edt_searchnm.value = rtnVal.sDeptnm;
  548. div_search.rdo_flag.value = rtnVal.sFlag;
  549. }
  550. }
  551. // 검색조건 변경시
  552. function div_search_rdo_flag_onitemchanged(obj:Radio, e:ItemChangeEventInfo)
  553. {
  554. div_search.edt_search.value = "";
  555. }
  556. // 사용자 삭제
  557. function btn_del_empl_onclick(obj:Button, e:ClickEventInfo)
  558. {
  559. var msg = sysf_messageBox("선택한 사용자를", "Q001");
  560. if (msg == 6) {
  561. ds_send_del.clearData();
  562. for(var i = ds_empl_info.rowcount; i > 0; i--){
  563. if(ds_empl_info.getColumn(i, "chk") == "1" && ds_empl_info.getColumn(i, "addyn") == "Y"){
  564. ds_empl_info.deleteRow(i);
  565. }
  566. if(ds_empl_info.getColumn(i, "chk") == "1"){
  567. var nRow = ds_send_del.addRow();
  568. ds_send_del.setColumn(nRow, "instcd", ds_empl_info.getColumn(i, "instcd"));
  569. ds_send_del.setColumn(nRow, "deptcd", ds_empl_info.getColumn(i, "deptcd"));
  570. ds_send_del.setColumn(nRow, "emplno", ds_empl_info.getColumn(i, "emplno"));
  571. }
  572. }
  573. //trace(ds_send_del.saveXML());
  574. if(ds_send_del.rowcount > 0){
  575. var oParam = {};
  576. oParam.id = "TRZSU20003";
  577. oParam.service = "userdeptinfoapp.UserDeptInfo";
  578. oParam.method = "reqSetEmplInfo";
  579. oParam.args = "flag=" + wrapQuote("D"); // D : Delete
  580. oParam.inds = "reqdel=ds_send_del";
  581. oParam.outds = "ds_empl_result=emplresult ds_dept_result=deptresult";
  582. oParam.async = false;
  583. oParam.callback = "cf_TRZSU20003";
  584. tranf_submit(oParam);
  585. }
  586. }
  587. }
  588. // 전화번호 목록 저장(신규 / 수정)
  589. function btn_add_empl_onclick(obj:Button, e:ClickEventInfo)
  590. {
  591. var insRow = 0;
  592. var uptRow = 0;
  593. ds_send_ins.clearData();
  594. ds_send_upt.clearData();
  595. for(var i = 0; i < ds_empl_info.rowcount; i++){
  596. var emplnm = ds_empl_info.getColumn(i, "emplnm");
  597. var telno = ds_empl_info.getColumn(i, "telno");
  598. if(utlf_isNull(emplnm) || utlf_isNull(telno)) {
  599. sysf_messageBox("성명과 원내번호는", "I003");
  600. ds_empl_info.rowposition = i;
  601. return;
  602. }
  603. if(ds_empl_info.getRowType(i) == "2"){
  604. // 신규
  605. insRow = ds_send_ins.addRow();
  606. ds_send_ins.setColumn(insRow, "flag", "I");
  607. ds_send_ins.setColumn(insRow, "instcd", ds_empl_info.getColumn(i, "instcd"));
  608. ds_send_ins.setColumn(insRow, "emplno", ds_empl_info.getColumn(i, "emplno"));
  609. ds_send_ins.setColumn(insRow, "deptcd", ds_empl_info.getColumn(i, "deptcd"));
  610. ds_send_ins.setColumn(insRow, "emplnm", ds_empl_info.getColumn(i, "emplnm"));
  611. ds_send_ins.setColumn(insRow, "sortno", ds_empl_info.getColumn(i, "sortno"));
  612. ds_send_ins.setColumn(insRow, "telno", ds_empl_info.getColumn(i, "telno"));
  613. ds_send_ins.setColumn(insRow, "adminyn", ds_empl_info.getColumn(i, "adminyn"));
  614. } else if(ds_empl_info.getRowType(i) == "4"){
  615. // 수정
  616. uptRow = ds_send_upt.addRow();
  617. ds_send_upt.setColumn(uptRow, "flag", "U");
  618. ds_send_upt.setColumn(uptRow, "instcd", ds_empl_info.getColumn(i, "instcd"));
  619. ds_send_upt.setColumn(uptRow, "emplno", ds_empl_info.getColumn(i, "emplno"));
  620. ds_send_upt.setColumn(uptRow, "deptcd", ds_empl_info.getColumn(i, "deptcd"));
  621. //ds_send_upt.setColumn(uptRow, "emplnm", ds_empl_info.getColumn(i, "emplnm"));
  622. //ds_send_upt.setColumn(uptRow, "sortno", ds_empl_info.getColumn(i, "sortno"));
  623. ds_send_upt.setColumn(uptRow, "telno", ds_empl_info.getColumn(i, "telno"));
  624. ds_send_upt.setColumn(uptRow, "adminyn", ds_empl_info.getColumn(i, "adminyn"));
  625. }
  626. }
  627. if(ds_send_ins.rowcount == 0 && ds_send_upt.rowcount == 0){
  628. sysf_messageBox("저장할", "E013");
  629. } else {
  630. }
  631. var oParam = {};
  632. oParam.id = "TRZSU20003";
  633. oParam.service = "userdeptinfoapp.UserDeptInfo";
  634. oParam.method = "reqSetEmplInfo";
  635. oParam.inds = "reqins=ds_send_ins requpt=ds_send_upt";
  636. oParam.outds = "ds_empl_result=emplresult ds_dept_result=deptresult";
  637. oParam.async = false;
  638. oParam.callback = "cf_TRZSU20003";
  639. tranf_submit(oParam);
  640. }
  641. // 전화번호 목록 저장 콜백
  642. function cf_TRZSU20003(sSvcId, nErrorCode, sErrorMsg)
  643. {
  644. if(nErrorCode < 0)
  645. {
  646. return;
  647. }
  648. else
  649. {
  650. //div_search_btn_search_onclick();
  651. fgetEmplTelInfo(div_search.edt_searchcd.value);
  652. }
  653. }
  654. // 전화번호목록 신규 추가시 검색
  655. function grd_empllist_onexpanddown(obj:Grid, e:GridMouseEventInfo)
  656. {
  657. var instcd = ds_dept_info.getColumn(ds_dept_info.rowposition, "instcd");
  658. var flag = "E2";
  659. var search = grd_empllist.getEditText();
  660. var objArg = new Object();
  661. objArg.sInstcd = instcd;
  662. objArg.sFlag = flag;
  663. objArg.sSearch = search;
  664. var rtnVal = frmf_modal("SPZSU20100", "SPZSU20100", objArg, "", "", "", "", "", "", "", "", "", "M");
  665. if(!utlf_isNull(rtnVal)){
  666. ds_empl_info.setColumn(e.row, "emplno", rtnVal.sEmplno);
  667. ds_empl_info.setColumn(e.row, "emplnm", rtnVal.sEmplnm);
  668. ds_empl_info.setColumn(e.row, "telno", rtnVal.sTelno);
  669. }
  670. }
  671. // 신규부서
  672. function btn_add_dept_onclick(obj:Button, e:ClickEventInfo)
  673. {
  674. if(ds_dept_info.rowcount == 0) {
  675. sysf_messageBox("조회 후 ", "C003");
  676. return;
  677. }
  678. var idx = ds_dept_info.rowposition;
  679. var deptcd = ds_dept_info.getColumn(idx, "deptcd");
  680. var iRow;// = ds_dept_info.insertRow();
  681. var deptlvl;
  682. var instcd;
  683. //var nRow = ds_dept_info.findRow("instsupdeptcd", ds_dept_info.getColumn(idx, "deptcd"));
  684. //iRow = ds_dept_info.insertRow(nRow+1);
  685. for(var i = ds_dept_info.rowcount; i > idx; i--){
  686. if(deptcd == ds_dept_info.getColumn(i, "instsupdeptcd")){
  687. // iRow = ds_dept_info.insertRow(i+1);
  688. // deptlvl = ds_dept_info.getColumn(i, "deptlvl");
  689. // instcd = ds_dept_info.getColumn(i, "instcd");
  690. // break;
  691. if(ds_dept_info.getColumn(i, "isleaf") == 1){
  692. iRow = ds_dept_info.insertRow(i+1);
  693. deptlvl = ds_dept_info.getColumn(i, "deptlvl");
  694. instcd = ds_dept_info.getColumn(i, "instcd");
  695. break;
  696. } else {
  697. var cnt = 0;
  698. for(var j = i; j < ds_dept_info.rowcount; j++){
  699. var subDeptcd = ds_dept_info.getColumn(i, "deptcd");
  700. if(subDeptcd == ds_dept_info.getColumn(j, "instsupdeptcd")){
  701. cnt++;
  702. }
  703. }
  704. iRow = ds_dept_info.insertRow(i+cnt+1);
  705. deptlvl = ds_dept_info.getColumn(i, "deptlvl");
  706. instcd = ds_dept_info.getColumn(i, "instcd");
  707. break;
  708. }
  709. }
  710. }
  711. if(utlf_isNull(iRow) || iRow < 0){
  712. var idx = ds_dept_info.rowposition
  713. iRow = ds_dept_info.insertRow(idx+1);
  714. deptlvl = ds_dept_info.getColumn(idx, "deptlvl");
  715. instcd = ds_dept_info.getColumn(idx, "instcd");
  716. }
  717. ds_dept_info.setColumn(iRow, "instcd", instcd);
  718. ds_dept_info.setColumn(iRow, "instsupdeptcd", deptcd);
  719. ds_dept_info.setColumn(iRow, "deptlvl", deptlvl);
  720. ds_dept_info.setColumn(iRow, "addyn", "Y");
  721. div_newDept.position.x = this.position.width/2 - div_newDept.position.width/2;
  722. div_newDept.position.y = this.position.height/2 - div_newDept.position.height/2;
  723. div_newDept.edt_setRow.value = iRow;
  724. div_newDept.visible = true;
  725. div_newDept.edt_newDeptNm.setFocus();
  726. grd_list.enable = false;
  727. }
  728. // 신규부서 DIV 취소
  729. function div_newDept_btn_cancel_onclick(obj:Button, e:ClickEventInfo)
  730. {
  731. grd_list.enable = true;
  732. div_newDept.visible = false;
  733. div_newDept.edt_newDeptNm.value = "";
  734. ds_dept_info.deleteRow(div_newDept.edt_setRow.value);
  735. }
  736. // 신규부서 DIV 확인
  737. function div_newDept_btn_confirm_onclick(obj:Button, e:ClickEventInfo)
  738. {
  739. ds_dept_info.setColumn(div_newDept.edt_setRow.value, "inorddeptnm", div_newDept.edt_newDeptNm.value);
  740. div_newDept.visible = false;
  741. grd_list.enable = true;
  742. div_newDept.edt_newDeptNm.value = "";
  743. }
  744. // 신규부서 저장
  745. function btn_save_dept_onclick(obj:Button, e:ClickEventInfo)
  746. {
  747. var iRow = 0;
  748. ds_save_dept.clearData();
  749. for(var i = 0; i < ds_dept_info.rowcount; i++){
  750. if(ds_dept_info.getColumn(i, "addyn") == "Y"){
  751. var deptnm = ds_dept_info.getColumn(i, "inorddeptnm");
  752. if(utlf_isNull(deptnm)) {
  753. sysf_messageBox("부서명은 ", "I003");
  754. ds_dept_info.rowposition = i;
  755. return;
  756. }
  757. iRow = ds_save_dept.addRow();
  758. ds_save_dept.setColumn(iRow, "saveflag", "I");
  759. ds_save_dept.setColumn(iRow, "instcd", ds_dept_info.getColumn(i, "instcd"));
  760. ds_save_dept.setColumn(iRow, "deptnm", ds_dept_info.getColumn(i, "inorddeptnm"));
  761. ds_save_dept.setColumn(iRow, "instsupdeptcd", ds_dept_info.getColumn(i, "instsupdeptcd"));
  762. ds_save_dept.setColumn(iRow, "empldelcnt", 0); // 부서 삭제시에만 사용
  763. }
  764. }
  765. if(ds_save_dept.rowcount == 0){
  766. sysf_messageBox("저장할", "E013");
  767. return;
  768. } else {
  769. }
  770. var oParam = {};
  771. oParam.id = "TRZSU20004";
  772. oParam.service = "userdeptinfoapp.UserDeptInfo";
  773. oParam.method = "reqSetEtcDeptInfo";
  774. oParam.inds = "req=ds_save_dept";
  775. oParam.outds = "";
  776. oParam.async = false;
  777. oParam.callback = "cf_TRZSU20004";
  778. tranf_submit(oParam);
  779. }
  780. // 부서 삭제
  781. function btn_del_dept_onclick(obj:Button, e:ClickEventInfo)
  782. {
  783. if (sysf_messageBox("선택한 부서와 소속된 사용자를", "Q001") != 6) {
  784. return;
  785. }
  786. var iRow = 0;
  787. ds_save_dept.clearData();
  788. for(var i = 0; i < ds_dept_info.rowcount; i++){
  789. if(ds_dept_info.getColumn(i, "chk") == 1){
  790. iRow = ds_save_dept.addRow();
  791. ds_save_dept.setColumn(iRow, "saveflag", "D");
  792. ds_save_dept.setColumn(iRow, "instcd", ds_dept_info.getColumn(i, "instcd"));
  793. ds_save_dept.setColumn(iRow, "deptcd", ds_dept_info.getColumn(i, "deptcd"));
  794. //ds_save_dept.setColumn(iRow, "empldelcnt", ds_empl_info.getCaseCount(0));
  795. }
  796. }
  797. if(ds_save_dept.rowcount == 0){
  798. sysf_messageBox("삭제할", "E013");
  799. return;
  800. } else {
  801. }
  802. var oParam = {};
  803. oParam.id = "TRZSU20004";
  804. oParam.service = "userdeptinfoapp.UserDeptInfo";
  805. oParam.method = "reqSetEtcDeptInfo";
  806. oParam.inds = "req=ds_save_dept";
  807. oParam.outds = "";
  808. oParam.async = false;
  809. oParam.callback = "cf_TRZSU20004";
  810. tranf_submit(oParam);
  811. }
  812. function cf_TRZSU20004(sSvcId, nErrorCode, sErrorMsg)
  813. {
  814. if(nErrorCode < 0)
  815. {
  816. return;
  817. }
  818. else
  819. {
  820. ds_dept_info.clearData();
  821. ds_empl_info.clearData();
  822. }
  823. }]]></Script>
  824. </Form>
  825. </FDL>