SPZSU00800_전화번호.xfdl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPZSU00800" classname="SPZSU00800_전화번호" inheritanceid="" position="absolute 0 0 600 440" titletext="전화번호 검색" class="frm_POP" oninit="SPZSU00800_oninit" onload="SPZSU00800_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="stt_titleText" text="전화번호 검색" onclick="caption00_onclick" class="sta_POP_title" position="absolute 12 8 159 31"/>
  8. <Button id="btn_close" taborder="1" onclick="btn_close_onclick" class="btn_POP_cls" position="absolute 574 12 588 25" anchor="top right"/>
  9. <Div id="div_search" anchor="left top right" taborder="2" style="align:center top;" class="div_SA" position="absolute 12 46 588 109">
  10. <Layouts>
  11. <Layout>
  12. <Button id="btn_search" taborder="1" text="조회" onclick="div_search_btn_search_onclick" class="btn1" position="absolute 445 22 501 42" anchor="top right"/>
  13. <Static id="caption2" text="검색조건" class="search_name" position="absolute 8 10 82 30" anchor="default"/>
  14. <Radio id="rdo_condflag2" taborder="2" codecolumn="codecolumn" datacolumn="datacolumn" onitemchanged="div_search_rd_searchCondition_onitemchanged" position="absolute 229 10 399 30" anchor="default" index="-1" columncount="2">
  15. <Dataset id="innerdataset">
  16. <ColumnInfo>
  17. <Column id="codecolumn" size="256"/>
  18. <Column id="datacolumn" size="256"/>
  19. </ColumnInfo>
  20. <Rows>
  21. <Row>
  22. <Col id="codecolumn">1</Col>
  23. <Col id="datacolumn">사용자ID</Col>
  24. </Row>
  25. <Row>
  26. <Col id="codecolumn">2</Col>
  27. <Col id="datacolumn">사용자명</Col>
  28. </Row>
  29. </Rows>
  30. </Dataset>
  31. </Radio>
  32. <Static id="caption00" text="검색어" class="search_name" position="absolute 8 34 82 54" anchor="default"/>
  33. <Edit id="ed_ipt_data" taborder="0" imemode="hangul" onkeydown="div_search_ed_searchValue_onkeydown" position="absolute 75 34 213 54" anchor="default"/>
  34. <Static id="caption01" text="기관" class="search_name" position="absolute 232 34 306 54" anchor="default" visible="false"/>
  35. <Combo id="cmb_instcd" taborder="3" position="absolute 275 33 377 54" index="0" anchor="default" codecolumn="codecolumn" datacolumn="datacolumn" visible="false" onitemchanged="div_search_cmb_instcd_onitemchanged" value="031" text="본원" onkeydown="div_search_cmb_instcd_onkeydown">
  36. <Dataset id="innerdataset">
  37. <ColumnInfo>
  38. <Column id="codecolumn" size="256"/>
  39. <Column id="datacolumn" size="256"/>
  40. </ColumnInfo>
  41. <Rows>
  42. <Row>
  43. <Col id="codecolumn">031</Col>
  44. <Col id="datacolumn">본원</Col>
  45. </Row>
  46. <Row>
  47. <Col id="codecolumn">032</Col>
  48. <Col id="datacolumn">칠곡</Col>
  49. </Row>
  50. <Row>
  51. <Col id="codecolumn">033</Col>
  52. <Col id="datacolumn">치과</Col>
  53. </Row>
  54. </Rows>
  55. </Dataset>
  56. </Combo>
  57. <Button id="btn_save" taborder="4" text="저장" class="btn3" position="absolute 509 22 565 42" anchor="top right" visible="false" onclick="div_search_btn_save_onclick"/>
  58. <Combo id="cmb_flag" taborder="5" codecolumn="codecolumn" datacolumn="datacolumn" position="absolute 75 9 177 30" onitemchanged="div_search_cmb_flag_onitemchanged" index="-1">
  59. <Dataset id="innerdataset">
  60. <ColumnInfo>
  61. <Column id="codecolumn" size="256"/>
  62. <Column id="datacolumn" size="256"/>
  63. </ColumnInfo>
  64. <Rows>
  65. <Row>
  66. <Col id="codecolumn">D</Col>
  67. <Col id="datacolumn">부서</Col>
  68. </Row>
  69. <Row>
  70. <Col id="codecolumn">U</Col>
  71. <Col id="datacolumn">사용자</Col>
  72. </Row>
  73. </Rows>
  74. </Dataset>
  75. </Combo>
  76. <Radio id="rdo_condflag" taborder="6" columncount="2" rowcount="0" index="0" codecolumn="codecolumn" datacolumn="datacolumn" value="2" onitemchanged="div_search_rd_searchCondition_onitemchanged" position="absolute 229 10 440 30" visible="false" onitemclick="div_search_rdo_condflag_onitemclick">
  77. <Dataset id="innerdataset">
  78. <ColumnInfo>
  79. <Column id="codecolumn" size="256"/>
  80. <Column id="datacolumn" size="256"/>
  81. </ColumnInfo>
  82. <Rows>
  83. <Row>
  84. <Col id="codecolumn">2</Col>
  85. <Col id="datacolumn">부서/전화위치</Col>
  86. </Row>
  87. <Row>
  88. <Col id="codecolumn">3</Col>
  89. <Col id="datacolumn">전화번호</Col>
  90. </Row>
  91. </Rows>
  92. </Dataset>
  93. </Radio>
  94. </Layout>
  95. </Layouts>
  96. </Div>
  97. <Grid id="gd_TelNumList" taborder="3" binddataset="ds_userList" useinputpanel="false" cellsizingtype="col" cellsizebandtype="allband" onkeydown="gd_codeList_onkeydown" oncelldblclick="gd_codeList_oncelldblclick" position="absolute 12 137 588 427" anchor="all" selecttype="row" autofittype="col">
  98. <Formats>
  99. <Format id="default">
  100. <Columns>
  101. <Column size="24"/>
  102. <Column size="52"/>
  103. <Column size="188"/>
  104. <Column size="61"/>
  105. <Column size="70"/>
  106. <Column size="90"/>
  107. <Column size="90"/>
  108. </Columns>
  109. <Rows>
  110. <Row size="24" band="head"/>
  111. <Row size="24"/>
  112. </Rows>
  113. <Band id="head">
  114. <Cell/>
  115. <Cell col="1" text="기관"/>
  116. <Cell col="2" text="부서"/>
  117. <Cell col="3" text="사용자ID"/>
  118. <Cell col="4" text="사용자명"/>
  119. <Cell col="5" text="휴대폰번호"/>
  120. <Cell col="6" text="nzone"/>
  121. </Band>
  122. <Band id="body">
  123. <Cell/>
  124. <Cell col="1" displaytype="combo" edittype="none" style="align:center middle;" text="bind:instcd" combodataset="ds_instcd" combocodecol="value" combodatacol="label"/>
  125. <Cell col="2" displaytype="text" style="padding:0 2 0 10;" text="bind:deptnm"/>
  126. <Cell col="3" text="bind:userid" mask="@@@{@}{@}" maskchar="_"/>
  127. <Cell col="4" text="bind:usernm"/>
  128. <Cell col="5" text="bind:mpphon"/>
  129. <Cell col="6" text="bind:nzone"/>
  130. </Band>
  131. </Format>
  132. </Formats>
  133. </Grid>
  134. <Static id="caption3" text="전화번호조회" position="absolute 12 119 126 135" class="tit_2"/>
  135. <Button id="btn_row_add" taborder="4" text="행추가" class="btn2" position="absolute 475 116 530 136" onclick="btn_row_add_onclick" visible="false"/>
  136. <Button id="btn_row_del" taborder="5" text="행삭제" class="btn2" position="absolute 533 116 588 136" onclick="btn_row_del_onclick" visible="false"/>
  137. <Grid id="gd_TelNumList2" taborder="6" binddataset="ds_userList2" useinputpanel="false" cellsizingtype="col" cellsizebandtype="allband" oncelldblclick="gd_codeList_oncelldblclick" position="absolute 12 137 588 427" anchor="all" visible="false" onenterdown="gd_TelNumList2_onenterdown" autofittype="col">
  138. <Formats>
  139. <Format id="default">
  140. <Columns>
  141. <Column size="24"/>
  142. <Column size="94"/>
  143. <Column size="188"/>
  144. <Column size="168"/>
  145. <Column size="101"/>
  146. </Columns>
  147. <Rows>
  148. <Row size="24" band="head"/>
  149. <Row size="24"/>
  150. </Rows>
  151. <Band id="head">
  152. <Cell/>
  153. <Cell col="1" text="기관"/>
  154. <Cell col="2" text="부서"/>
  155. <Cell col="3" text="전화위치"/>
  156. <Cell col="4" text="전화번호"/>
  157. </Band>
  158. <Band id="body">
  159. <Cell/>
  160. <Cell col="1" displaytype="combo" edittype="none" style="align:center middle;" text="bind:instcd" combodataset="ds_instcd" combocodecol="value" combodatacol="label"/>
  161. <Cell col="2" displaytype="text" edittype="text" style="padding:0 2 0 10;" text="bind:centnm" editlimit="-1" edittrimtype="both" editacceptsenter="false"/>
  162. <Cell col="3" displaytype="text" edittype="text" style="padding:0 2 0 10;" text="bind:deptnm"/>
  163. <Cell col="4" edittype="normal" text="bind:telno"/>
  164. </Band>
  165. </Format>
  166. </Formats>
  167. </Grid>
  168. </Layout>
  169. </Layouts>
  170. <Objects>
  171. <Dataset id="ds_userList" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  172. <ColumnInfo>
  173. <Column id="seq" type="STRING" size="256" sumtext="순번"/>
  174. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  175. <Column id="instnm" type="STRING" size="256" sumtext="기관명"/>
  176. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  177. <Column id="userid" type="STRING" size="256" sumtext="사용자ID"/>
  178. <Column id="jobkindnm" type="STRING" size="256" sumtext="사용자ID"/>
  179. <Column id="usernm" type="STRING" size="256" sumtext="사용자명"/>
  180. <Column id="mpphon" type="STRING" size="256" sumtext="전화번호"/>
  181. <Column id="nzone" type="STRING" size="256" sumtext="NZONE"/>
  182. </ColumnInfo>
  183. </Dataset>
  184. <Dataset id="ds_userList2" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  185. <ColumnInfo>
  186. <Column id="seq" type="STRING" size="256" sumtext="순번"/>
  187. <Column id="instcd" type="STRING" size="256" sumtext="기관코드"/>
  188. <Column id="instnm" type="STRING" size="256" sumtext="기관명"/>
  189. <Column id="deptnm" type="STRING" size="256" sumtext="부서명"/>
  190. <Column id="centnm" type="STRING" size="256" sumtext="사용자ID"/>
  191. <Column id="telno" type="STRING" size="256"/>
  192. <Column id="fstrgstrid" type="STRING" size="256"/>
  193. <Column id="lastupdtrid" type="STRING" size="256"/>
  194. <Column id="lastupdtdt" type="STRING" size="256"/>
  195. </ColumnInfo>
  196. </Dataset>
  197. <Dataset id="ds_main_cond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  198. <ColumnInfo>
  199. <Column id="condflag" type="STRING" size="256"/>
  200. <Column id="data" type="STRING" size="256"/>
  201. <Column id="flag" type="STRING" size="256"/>
  202. <Column id="condflag2" type="STRING" size="256"/>
  203. <Column id="instcd" type="STRING" size="256"/>
  204. </ColumnInfo>
  205. <Rows>
  206. <Row>
  207. <Col id="flag">U</Col>
  208. <Col id="condflag">2</Col>
  209. <Col id="condflag2">2</Col>
  210. </Row>
  211. </Rows>
  212. </Dataset>
  213. <Dataset id="ds_instcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  214. <ColumnInfo>
  215. <Column id="value" type="STRING" size="256"/>
  216. <Column id="label" type="STRING" size="256"/>
  217. </ColumnInfo>
  218. <Rows>
  219. <Row>
  220. <Col id="value">031</Col>
  221. <Col id="label">본원</Col>
  222. </Row>
  223. <Row>
  224. <Col id="value">032</Col>
  225. <Col id="label">칠곡</Col>
  226. </Row>
  227. </Rows>
  228. </Dataset>
  229. <Dataset id="ds_savedata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  230. </Objects>
  231. <Bind>
  232. <BindItem id="item0" compid="div_search.ed_ipt_data" propid="value" datasetid="ds_main_cond" columnid="data"/>
  233. <BindItem id="item1" compid="div_search.cmb_flag" propid="value" datasetid="ds_main_cond" columnid="flag"/>
  234. <BindItem id="item2" compid="div_search.rdo_condflag2" propid="value" datasetid="ds_main_cond" columnid="condflag2"/>
  235. <BindItem id="item3" compid="div_search.rdo_condflag" propid="value" datasetid="ds_main_cond" columnid="condflag"/>
  236. </Bind>
  237. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs";
  238. function SPZSU00800_oninit(obj:Form, e:InitEventInfo)
  239. {
  240. frmf_initForm(obj);
  241. }
  242. function SPZSU00800_onload(obj:Form, e:LoadEventInfo)
  243. {
  244. grdf_setRowTypeIcon(gd_TelNumList, 0);
  245. grdf_setRowTypeIcon(gd_TelNumList2, 0);
  246. stt_titleText.text = "전화번호 검색";
  247. var dutplceinstcd = sysf_getUserInfo("dutplceinstcd");
  248. div_search.cmb_instcd.value = dutplceinstcd;
  249. div_search.ed_ipt_data.setFocus();
  250. }
  251. function div_search_btn_search_onclick(obj:Button, e:ClickEventInfo)
  252. {
  253. fReqConcTypeCD();
  254. }
  255. function div_search_btn_save_onclick(obj:Button, e:ClickEventInfo)
  256. {
  257. fSaveConcTypeCD();
  258. fReqConcTypeCD();
  259. }
  260. function btn_row_add_onclick(obj:Button, e:ClickEventInfo)
  261. {
  262. fAddConcTypeCd();
  263. }
  264. function btn_row_del_onclick(obj:Button, e:ClickEventInfo)
  265. {
  266. fDelConcTypeCD();
  267. }
  268. function div_search_cmb_flag_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  269. {
  270. var flag = obj.value;
  271. if(flag == "D"){
  272. div_search.rdo_condflag.visible=true;
  273. div_search.rdo_condflag2.visible=false;
  274. gd_TelNumList.visible=false;
  275. gd_TelNumList2.visible=true;
  276. div_search.caption01.visible=true;
  277. div_search.cmb_instcd.visible=true;
  278. div_search.btn_save.visible=true;
  279. btn_row_add.visible=true;
  280. btn_row_del.visible=true;
  281. }else if(flag == "U"){
  282. div_search.rdo_condflag.visible=false;
  283. div_search.rdo_condflag2.visible=true;
  284. gd_TelNumList.visible=true;
  285. gd_TelNumList2.visible=false;
  286. div_search.cmb_instcd.visible = false;
  287. div_search.caption01.visible=false;
  288. div_search.btn_save.visible = false;
  289. btn_row_add.visible=false;
  290. btn_row_del.visible = false;
  291. }
  292. div_search.ed_ipt_data.value="";
  293. }
  294. function div_search_cmb_instcd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
  295. {
  296. }
  297. /**
  298. * @desc : 전화번호 조회
  299. * @
  300. * @param :
  301. * @return :
  302. * @authur :
  303. * @---------------------------------------------------
  304. */
  305. function fReqConcTypeCD(){
  306. var flag = div_search.cmb_flag.value;
  307. if(flag == "U"){
  308. var oParam = {};
  309. oParam.id = "TRZSU00801";
  310. oParam.service = "userdeptinfoapp.UserDeptInfo";
  311. oParam.method = "reqGetUserPhoneNo";
  312. oParam.inds = "req=ds_main_cond";
  313. oParam.outds = "ds_userList=userinfo";
  314. oParam.async = true;
  315. }else{
  316. ds_main_cond.setColumn(0,"instcd",div_search.cmb_instcd.value);
  317. var oParam = {};
  318. oParam.id = "TRZSU00802";
  319. oParam.service = "userdeptinfoapp.UserDeptInfo";
  320. oParam.method = "reqGetDeptPhoneNo";
  321. oParam.inds = "req=ds_main_cond";
  322. oParam.outds = "ds_userList2=telinfo";
  323. oParam.async = true;
  324. }
  325. tranf_submit(oParam);
  326. }
  327. /**
  328. * @desc : 전화번호 추가
  329. * @
  330. * @param :
  331. * @return :
  332. * @---------------------------------------------------
  333. */
  334. function fAddConcTypeCd(){
  335. var iRow = ds_userList2.rowcount;
  336. if(iRow > 0){
  337. ds_userList2.insertRow(0);
  338. ds_userList2.setColumn(0, "instcd", div_search.cmb_instcd.value);
  339. gd_TelNumList2.setEditText(ds_userList2.getColumn(0, "instcd"));
  340. gd_TelNumList2.show();
  341. }
  342. }
  343. /**
  344. * @desc : 전화번호 저장
  345. * @
  346. * @param :
  347. * @return :
  348. * @---------------------------------------------------
  349. */
  350. function fSaveConcTypeCD(){
  351. var oDsUpdate = grdf_getGridUpdateData(gd_TelNumList2);
  352. //sysf_trace(oDsUpdate.rowcount);
  353. if( oDsUpdate.rowcount < 1 ) { // utlf_isNull(oDsUpdate)
  354. sysf_messageBox("입력","E013"); // 그리드에 데이터가 업데이트 되지 않으면 "입력된 데이터가 없습니다."는 메시지 출력
  355. return ;
  356. }
  357. if(fValidSaveInfo()==true){
  358. grdf_setStatusColumn(oDsUpdate, "status"); // 각행의 status에 rowType 값에 따라 'i', 'u', 'd'로 업데이트 시켜준다
  359. ds_savedata.copyData(oDsUpdate, true);
  360. var oParam = {};
  361. oParam.id = "TXZSU00801";
  362. oParam.service = "userdeptinfoapp.UserDeptInfo";
  363. oParam.method = "reqExeSaveDeptPhoneNo";
  364. oParam.inds = "req=" + "ds_savedata";
  365. oParam.outds = "gd_TelNumList2=deptlistdata";
  366. oParam.async = false;
  367. tranf_submit(oParam);
  368. gd_TelNumList2.rowposition = -1;
  369. }
  370. }
  371. /**
  372. * @desc : 전화번호 저장 정보 유효성 확인
  373. * @
  374. * @param :
  375. * @return :
  376. * @authur :
  377. * @---------------------------------------------------
  378. */
  379. function fValidSaveInfo(){
  380. var totrow = ds_userList2.rowcount;
  381. for(var i = 0; i < totrow; i++){
  382. var status = ds_userList2.getRowType(i);
  383. if(status == 2){ //신규인 경우, 관심분류명을 확인, 분류명이 없는 경우 error!
  384. var centnm = ds_userList2.getColumn(i, "centnm");
  385. var deptnm = ds_userList2.getColumn(i, "deptnm");
  386. var telno = ds_userList2.getColumn(i, "telno");
  387. if(utlf_isNull(centnm)){
  388. sysf_messageBox("부서명을", "C001");
  389. ds_userList2.rowposition = i;
  390. gd_TelNumList2.setCellPos(gd_TelNumList2.getBindCellIndex("body", "centnm"));
  391. gd_TelNumList2.showEditor(true);
  392. return false;
  393. }else if(utlf_isNull(deptnm)){
  394. sysf_messageBox("전화위치를", "C001");
  395. ds_userList2.rowposition = i;
  396. gd_TelNumList2.setCellPos(gd_TelNumList2.getBindCellIndex("body", "deptnm"));
  397. gd_TelNumList2.showEditor(true);
  398. return false;
  399. }else if(utlf_isNull(telno)){
  400. sysf_messageBox("전화번호를", "C001");
  401. ds_userList2.rowposition = i;
  402. gd_TelNumList2.setCellPos(gd_TelNumList2.getBindCellIndex("body", "telno"));
  403. gd_TelNumList2.showEditor(true);
  404. return false;
  405. }
  406. }
  407. }
  408. return true;
  409. }
  410. /**
  411. * @desc : 전화번호 삭제
  412. * @
  413. * @param :
  414. * @return :
  415. * @---------------------------------------------------
  416. */
  417. function fDelConcTypeCD(){
  418. var iRow = ds_userList2.rowposition;
  419. if(iRow < 0){
  420. return;
  421. }
  422. var status = ds_userList2.getRowType(iRow);
  423. if(status == Dataset.ROWTYPE_INSERT){
  424. ds_userList2.deleteRow(iRow);
  425. }else{
  426. var arrPostion = new Array();
  427. arrPostion[0] = iRow;
  428. grdf_setStatus(gd_TelNumList2, "D", arrPostion);
  429. }
  430. }
  431. // 검색어 입력 후 enter로 조회 가능
  432. function div_search_ed_searchValue_onkeydown(obj:Edit, e:KeyEventInfo)
  433. {
  434. if(e.keycode == 13){
  435. obj.updateToDataset();
  436. fReqConcTypeCD();
  437. }
  438. }
  439. // grid에서 enter로 편집 가능
  440. function gd_TelNumList2_onenterdown(obj:Grid, e:GridEditEventInfo)
  441. {
  442. if(obj.getEditText() != undefined)
  443. obj.showEditor(false);
  444. }
  445. // 기관 변경 후 enter로 조회 가능
  446. function div_search_cmb_instcd_onkeydown(obj:Combo, e:KeyEventInfo)
  447. {
  448. if(e.keycode == 13){
  449. obj.updateToDataset();
  450. fReqConcTypeCD();
  451. }
  452. }
  453. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  454. {
  455. this.close();
  456. }
  457. ]]></Script>
  458. </Form>
  459. </FDL>