SMZSD00100_통합부서마스터관리.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>통합부서마스터관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <deptmasterlist>
  11. </deptmasterlist>
  12. <data>
  13. <deptcd/>
  14. <deptnm/>
  15. <detldesc/>
  16. <deptcdlevl2/>
  17. <deptcdlevl3/>
  18. <deptcdlevl4/>
  19. <deptcdlevl5/>
  20. <deptcdlevl6/>
  21. <deptcdlevl7/>
  22. <supdeptcd/>
  23. <fstrgstrid/>
  24. <lastrgstrid/>
  25. </data>
  26. <mode>
  27. <modestatus/>
  28. <modelabel/>
  29. </mode>
  30. <search>
  31. <supdeptcd/>
  32. <supdeptnm/>
  33. </search>
  34. </main>
  35. <send>
  36. <data/>
  37. </send>
  38. <hidden>
  39. <temp/>
  40. </hidden>
  41. </root>
  42. </instance>
  43. <script type="javascript" ev:event="xforms-ready">
  44. <![CDATA[
  45. //==================================================================
  46. //20100505 진상찬
  47. //화면 실행시 병원을 기본으로 보여주기위해 기본값을 세팅함
  48. model.setValue("/root/main/search/supdeptcd", "1000000000"); //deptcd
  49. model.setValue("/root/main/search/supdeptnm", "병원"); //deptnm
  50. button1.dispatch("DOMActivate"); //조회버튼 이벤트 강제실행
  51. //==================================================================
  52. ]]>
  53. </script>
  54. <submission id="TRZSD00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/main/deptmasterlist"/>
  55. <submission id="TXZSD00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/hidden/temp"/>
  56. <submission id="TXZSD00109" mediatype="application/x-www-form-urlencoded" ref="/root/send/data" replace="instance" resultref="/root/hidden/temp"/>
  57. </model>
  58. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  59. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  60. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  61. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  62. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD002.js"/>
  63. </xhtml:head>
  64. <xhtml:body guideline="1,1201;2,113;2,797;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  65. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  66. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">부서코드 통합 마스터 관리</caption>
  67. </group>
  68. <group id="group3" scroll="auto" style="left:0px; top:40px; width:1195px; height:744px; ">
  69. <group id="group5" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  70. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  71. <line id="line12" class="line_4" style="x1:1106px; y1:7px; x2:1106px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  72. <input id="ipt_supdeptcd" ref="/root/main/search/supdeptnm" class="input_search" editable="false" inputtype="button" style="left:140px; top:8px; width:160px; height:19px; ">
  73. <script type="javascript" ev:event="onbuttonclick">
  74. <![CDATA[
  75. var deptcd = model.getValue("/root/main/search/supdeptcd").getTrim();
  76. var deptnm = model.getValue("/root/main/search/supdeptnm").getTrim();
  77. var selected_index = -1;
  78. if(grd_deptcdlist.rows!=1){
  79. if(deptcd!=""&&deptnm!=""){
  80. selected_index = fFindGridTreeItem(grd_deptcdlist, deptcd, grd_deptcdlist.colRef("deptcd"), grd_deptcdlist.colRef("level"));
  81. if(selected_index==-1){
  82. alert("해당 부서(부서코드:"+deptcd+",부서명:"+deptnm+")이 존재하지 않습니다.");
  83. }else{
  84. grd_deptcdlist.row = selected_index;
  85. grd_deptcdlist.topRow = selected_index;
  86. }
  87. }
  88. }
  89. ]]>
  90. </script>
  91. <script type="javascript" ev:event="onkeyup">
  92. <![CDATA[
  93. inputEnterKey("input7", "onbuttonclick");
  94. ]]>
  95. </script>
  96. </input>
  97. <button id="button1" class="btn1_letter2" style="left:1120px; top:7px; width:56px; height:22px; ">
  98. <caption>조회</caption>
  99. <script type="javascript" ev:event="DOMActivate">
  100. <![CDATA[
  101. var supdeptcd = model.getValue("/root/main/search/supdeptcd");
  102. var supdeptnm = model.getValue("/root/main/search/supdeptnm");
  103. if(supdeptnm.getTrim()==""||supdeptcd.getTrim()==""){
  104. model.setValue("/root/main/search/supdeptcd", "");
  105. model.setValue("/root/main/search/supdeptnm", "");
  106. supdeptcd = "";
  107. supdeptnm = "";
  108. }
  109. model.makeValue("/root/send/data/supdeptcd", supdeptcd);
  110. var result = submit("TRZSD00101");
  111. if(result){
  112. model.refresh();
  113. setTree(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"), true);
  114. model.setValue("/root/main/mode/modestatus", "retrived");
  115. }
  116. grd_deptcdlist.editCell();
  117. ]]>
  118. </script>
  119. </button>
  120. <caption id="caption10" class="search_name" style="left:15px; top:8px; width:122px; height:17px; ">상위 부서코드 :</caption>
  121. <img id="img2" class="icon_search" style="left:305px; top:10px; width:16px; height:16px; background-stretch:stretch; ">
  122. <script type="javascript" ev:event="onclick">
  123. <![CDATA[
  124. var searchcondition = "deptnm";
  125. var searchterm = model.getValue("/root/main/search/supdeptnm");
  126. var receivedeptcdpath = "/root/main/search/supdeptcd";
  127. var receivedeptnmpath = "/root/main/search/supdeptnm";
  128. zbcfOpenMasterDeptCodeList(searchcondition, searchterm, receivedeptcdpath, receivedeptnmpath);
  129. var deptcd = model.getValue("/root/main/search/supdeptcd").getTrim();
  130. var deptnm = model.getValue("/root/main/search/supdeptnm").getTrim();
  131. var selected_index = -1;
  132. if(grd_deptcdlist.rows!=1){
  133. if(deptcd!=""&&deptnm!=""){
  134. selected_index = fFindGridTreeItem(grd_deptcdlist, deptcd, grd_deptcdlist.colRef("deptcd"), grd_deptcdlist.colRef("level"));
  135. if(selected_index==-1){
  136. alert("해당 부서(부서코드:"+deptcd+",부서명:"+deptnm+")이 존재하지 않습니다.");
  137. }else{
  138. grd_deptcdlist.row = selected_index;
  139. grd_deptcdlist.topRow = selected_index;
  140. }
  141. }
  142. }
  143. ]]>
  144. </script>
  145. </img>
  146. </group>
  147. <caption id="caption12" class="tit_2" style="left:5px; top:60px; width:118px; height:13px; ">부서코드 목록</caption>
  148. <line id="line15" class="line_1" style="x1:0px; y1:75px; x2:1194px; y2:75px; "/>
  149. <datagrid id="grd_deptcdlist" nodeset="/root/main/deptmasterlist/dept" caption="일련번호^부서 이름^부서영문명^부서한문명^부서영문약어^부서한글약어^부서 상세설명^부서코드^상위부서 이름^상위부서 코드^코드레벨2^코드레벨3^코드레벨4^코드레벨5^코드레벨6^코드레벨7^최초 등록일시^최초 등록자 ID^최종 수정일시^최종 수정자 ID^레 벨" colsep="▦" colwidth="100, 150, 80, 80, 80, 150, 150, 80, 150, 100, 66, 66, 66, 66, 66, 100, 120, 100, 120, 100, 100" dataheight="25" datatype="xml" defaultrows="0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="▩" tooltip="true" style="left:0px; top:73px; width:1194px; height:660px; border-color:#808080; ">
  150. <col ref="serialnum" visibility="hidden"/>
  151. <!--<col ref="deptnm" type="input" _key="true"/>20100512 진상찬 부서이름도 editmode되도록 수정-->
  152. <col ref="deptnm" type="input"/>
  153. <col ref="deptengnm" type="input" maxlength="64"/>
  154. <col ref="deptchinm" type="input" maxlength="64"/>
  155. <col ref="deptengabbr" type="input" maxlength="10"/>
  156. <col ref="depthngabbr" type="input" maxlength="64"/>
  157. <col ref="detldesc" type="input" maxlength="500"/>
  158. <col ref="deptcd"/>
  159. <col ref="supdeptnm"/>
  160. <col ref="supdeptcd"/>
  161. <col ref="deptcdlevl2"/>
  162. <col ref="deptcdlevl3"/>
  163. <col ref="deptcdlevl4"/>
  164. <col ref="deptcdlevl5"/>
  165. <col ref="deptcdlevl6"/>
  166. <col ref="deptcdlevl7"/>
  167. <col ref="fstrgstdt" format="yyyy-mm-dd hh:nn:ss"/>
  168. <col ref="fstrgstrid"/>
  169. <col ref="lastrgstdt" format="yyyy-mm-dd hh:nn:ss"/>
  170. <col ref="lastrgstrid"/>
  171. <col ref="level"/>
  172. </datagrid>
  173. <group id="group2" style="left:205px; top:49px; width:100px; height:25px; ">
  174. <button id="button10" class="btn2_letter7" style="left:0px; top:2px; width:108px; height:19px; ">
  175. <caption>검색어 초기화</caption>
  176. <script type="javascript" ev:event="DOMActivate">
  177. <![CDATA[
  178. model.setValue("/root/main/search/supdeptcd", "");
  179. model.setValue("/root/main/search/supdeptnm", "");
  180. model.refresh();
  181. ]]>
  182. </script>
  183. </button>
  184. </group>
  185. </group>
  186. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  187. <button id="button6" class="btn4_letter3" style="left:1067px; top:5px; width:68px; height:22px; ">
  188. <caption>초기화</caption>
  189. <script type="javascript" ev:event="DOMActivate">
  190. <![CDATA[
  191. model.setValue("/root/main/search/supdeptcd", "");
  192. model.setValue("/root/main/search/supdeptnm", "");
  193. model.removenode("/root/main/deptmasterlist");
  194. model.makeNode("/root/main/deptmasterlist");
  195. model.setValue("/root/main/mode/modestatus", "");
  196. model.refresh();
  197. ]]>
  198. </script>
  199. </button>
  200. <button id="button7" class="btn4_letter2" navindex="10" focus.background-color="#99ccff" style="left:1010px; top:5px; width:56px; height:22px; ">
  201. <caption>저장</caption>
  202. <script type="javascript" ev:event="DOMActivate">
  203. <![CDATA[
  204. model.removenode("/root/send/data");
  205. var data = grd_deptcdlist.getUpdateData("insert");
  206. var rows = data.split("▩");
  207. var cols = rows[0].split("▦");
  208. for(rowidx = 1; rowidx<rows.length-1; rowidx++){
  209. var colsval = rows[rowidx].split("▦");
  210. for(colidx = 0; colidx<cols.length; colidx++){
  211. var collal = cols[colidx];
  212. var colval = colsval[colidx];
  213. model.makeValue("/root/send/data/"+collal+"["+rowidx+"]", colval);
  214. }
  215. }
  216. var rownumlist = instance1.selectNodes("/root/send/data/rownum");
  217. var deptcdlist = instance1.selectNodes("/root/send/data/deptcd");
  218. var deptnmlist = instance1.selectNodes("/root/send/data/deptnm");
  219. var deptengnmlist = instance1.selectNodes("/root/send/data/deptengnm");
  220. var deptchinmlist = instance1.selectNodes("/root/send/data/deptchinm");
  221. var deptengabbrlist = instance1.selectNodes("/root/send/data/deptengabbr");
  222. var depthngabbrlist = instance1.selectNodes("/root/send/data/depthngabbr");
  223. var detldesclist = instance1.selectNodes("/root/send/data/detldesc");
  224. var deptcdlevl2list = instance1.selectNodes("/root/send/data/deptcdlevl2");
  225. var deptcdlevl3list = instance1.selectNodes("/root/send/data/deptcdlevl3");
  226. var deptcdlevl4list = instance1.selectNodes("/root/send/data/deptcdlevl4");
  227. var deptcdlevl5list = instance1.selectNodes("/root/send/data/deptcdlevl5");
  228. var deptcdlevl6list = instance1.selectNodes("/root/send/data/deptcdlevl6");
  229. var deptcdlevl7list = instance1.selectNodes("/root/send/data/deptcdlevl7");
  230. if(rownumlist.length>0){
  231. for(var i=1; i<=rownumlist.length; i++){
  232. var rownum = rownumlist.nextNode();
  233. var deptcd = deptcdlist.nextNode();
  234. var deptnm = deptnmlist.nextNode();
  235. var detldesc = detldesclist.nextNode();
  236. var deptengnm = deptengnmlist.nextNode();
  237. var deptchinm = deptchinmlist.nextNode();
  238. var deptengabbr = deptengabbrlist.nextNode();
  239. var depthngabbr = depthngabbrlist.nextNode();
  240. if(deptnm.text==""){
  241. messageBox("부서명을", "C001");
  242. grd_deptcdlist.row = new Number(rownum.text);
  243. grd_deptcdlist.col = new Number(grd_deptcdlist.colRef("deptnm"));
  244. grd_deptcdlist.editCell();
  245. return;
  246. }
  247. if(detldesc.text==""){
  248. model.setValue("/root/send/data/detldesc["+i+"]", deptnm.text);
  249. }
  250. }
  251. var success = submit("TXZSD00101");
  252. var supdeptcd = model.getValue("/root/main/search/supdeptcd");
  253. if(success){
  254. model.makeValue("/root/send/data/supdeptcd", supdeptcd);
  255. success = submit("TRZSD00101");
  256. if(success){
  257. model.refresh();
  258. setTree(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"), true);
  259. model.setValue("/root/main/mode/modestatus", "retrived");
  260. }
  261. }
  262. }else{
  263. messageBox("추가된 부서코드가 없기 때문에 저장", "E001");
  264. }
  265. ]]>
  266. </script>
  267. </button>
  268. <line id="line1" class="line_6" style="x1:0px; y1:0px; x2:1194px; y2:0px; "/>
  269. <button id="button2" class="btn4_letter2" navindex="10" focus.background-color="#99ccff" style="left:1135px; top:5px; width:56px; height:22px; ">
  270. <caption>수정</caption>
  271. <script type="javascript" ev:event="DOMActivate">
  272. <![CDATA[
  273. model.removenode("/root/send/data");
  274. var data = grd_deptcdlist.getUpdateData("update");
  275. var rows = data.split("▩");
  276. var cols = rows[0].split("▦");
  277. for(rowidx = 1; rowidx<rows.length-1; rowidx++){
  278. var colsval = rows[rowidx].split("▦");
  279. for(colidx = 0; colidx<cols.length; colidx++){
  280. var collal = cols[colidx];
  281. var colval = colsval[colidx];
  282. model.makeValue("/root/send/data/"+collal+"["+rowidx+"]", colval);
  283. }
  284. }
  285. var rownumlist = instance1.selectNodes("/root/send/data/rownum");
  286. var deptcdlist = instance1.selectNodes("/root/send/data/deptcd"); //부서코드
  287. var deptnmlist = instance1.selectNodes("/root/send/data/deptnm"); //부서이름
  288. var deptengnmlist = instance1.selectNodes("/root/send/data/deptengnm"); //부서영문명
  289. var deptchinmlist = instance1.selectNodes("/root/send/data/deptchinm"); //부서한문명
  290. var deptengabbrlist = instance1.selectNodes("/root/send/data/deptengabbr"); //부서영문약어
  291. var depthngabbrlist = instance1.selectNodes("/root/send/data/depthngabbr"); //부서한글약어
  292. var detldesclist = instance1.selectNodes("/root/send/data/detldesc"); //부서상세설명
  293. if(rownumlist.length>0){
  294. for(var i=1; i<=rownumlist.length; i++){
  295. var rownum = rownumlist.nextNode();
  296. var deptcd = deptcdlist.nextNode();
  297. var deptnm = deptnmlist.nextNode();
  298. var detldesc = detldesclist.nextNode();
  299. var deptengnm = deptengnmlist.nextNode();
  300. var deptchinm = deptchinmlist.nextNode();
  301. var deptengabbr = deptengabbrlist.nextNode();
  302. var depthngabbr = depthngabbrlist.nextNode();
  303. }
  304. var success = submit("TXZSD00109");
  305. var supdeptcd = model.getValue("/root/main/search/supdeptcd");
  306. if(success){
  307. model.makeValue("/root/send/data/supdeptcd", supdeptcd);
  308. success = submit("TRZSD00101");
  309. if(success){
  310. model.refresh();
  311. setTree(grd_deptcdlist, grd_deptcdlist.colRef("level"), grd_deptcdlist.colRef("deptnm"), true);
  312. model.setValue("/root/main/mode/modestatus", "retrived");
  313. }
  314. }
  315. }else{
  316. messageBox("추가된 부서코드가 없기 때문에 저장", "E001");
  317. }
  318. ]]>
  319. </script>
  320. </button>
  321. </group>
  322. <group id="group6" style="left:823px; top:88px; width:362px; height:25px; ">
  323. <button id="button4" class="btn2_letter8" style="left:109px; top:2px; width:108px; height:19px; ">
  324. <caption>동일 레벨에 추가</caption>
  325. <script type="javascript" ev:event="DOMActivate">
  326. <![CDATA[
  327. var modestatus = model.getValue("/root/main/mode/modestatus");
  328. if(modestatus!="retrived"){
  329. messageBox("부서코드 목록이 조회되지 않았기 때문에 추가", "E001");
  330. return;
  331. }
  332. fInsSiblingDeptCD();
  333. model.setFocus("ipt_deptnm");
  334. grd_deptcdlist.topRow = grd_deptcdlist.row;
  335. ]]>
  336. </script>
  337. </button>
  338. <button id="button5" class="btn2_letter8" style="left:0px; top:2px; width:108px; height:19px; ">
  339. <caption>하위 레벨에 추가</caption>
  340. <script type="javascript" ev:event="DOMActivate">
  341. <![CDATA[
  342. var modestatus = model.getValue("/root/main/mode/modestatus");
  343. if(modestatus!="retrived"){
  344. messageBox("부서코드 목록이 조회되지 않았기 때문에 추가", "E001");
  345. return;
  346. }
  347. fInsBranchDeptCD(grd_deptcdlist.row);
  348. model.refresh();
  349. model.setFocus("ipt_deptnm");
  350. grd_deptcdlist.topRow = grd_deptcdlist.row;
  351. ]]>
  352. </script>
  353. </button>
  354. <button id="button3" class="btn2_letter5" style="left:218px; top:2px; width:75px; height:19px; ">
  355. <caption>전체펼치기</caption>
  356. <script type="javascript" ev:event="DOMActivate">
  357. <![CDATA[
  358. for(var i=grd_deptcdlist.fixedRows; i<grd_deptcdlist.rows;i++){
  359. grd_deptcdlist.iscollapsed(i)=false;
  360. }
  361. ]]>
  362. </script>
  363. </button>
  364. <button id="button8" class="btn2_letter4" style="left:294px; top:2px; width:64px; height:19px; ">
  365. <caption>전체닫기</caption>
  366. <script type="javascript" ev:event="DOMActivate">
  367. <![CDATA[
  368. for(var i=grd_deptcdlist.fixedRows; i<grd_deptcdlist.rows;i++){
  369. grd_deptcdlist.iscollapsed(i)=true;
  370. }
  371. ]]>
  372. </script>
  373. </button>
  374. </group>
  375. </xhtml:body>
  376. </xhtml:html>