SMZSA20200_사용자그룹관리.xrw 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>Untitle</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list_grup>
  11. <acntgruplist/>
  12. </list_grup>
  13. <list_item>
  14. <acntitemlist/>
  15. </list_item>
  16. <item>
  17. <acntgrupnm/>
  18. <acntgrupcd/>
  19. </item>
  20. </main>
  21. <send>
  22. <searchitem/>
  23. <flag/>
  24. <acntgruplist/>
  25. <acntitemlist/>
  26. <optacntgrupcd/>
  27. </send>
  28. <hide>
  29. <acntgruplist/>
  30. </hide>
  31. <init>
  32. <searchitem/>
  33. <flag>
  34. <lable>계정그룹명</lable>
  35. <value>acntgrupnm</value>
  36. </flag>
  37. <flag>
  38. <lable>계정그룹코드</lable>
  39. <value>acntgrupcd</value>
  40. </flag>
  41. <comcd/>
  42. </init>
  43. <agmenu>
  44. <label>계정그룹수정</label>
  45. <func>setacntgrup</func>
  46. </agmenu>
  47. <agmenu>
  48. <label>계정그룹삭제</label>
  49. <func>delacntgrup</func>
  50. </agmenu>
  51. <temp>_OneS_DD</temp>
  52. </root>
  53. </instance>
  54. <script type="javascript" ev:event="xforms-ready">
  55. <![CDATA[
  56. zbcfGetCodeList( new Array( "Z0007"),
  57. new Array("/root/init/comcd"));
  58. fInitialize();
  59. ]]>
  60. </script>
  61. <submission id="TRZBC00101" method="post" replace="instance"/>
  62. <submission id="TRZSA20200" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_grup"/>
  63. <submission id="TXZSA20200" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/temp"/>
  64. <submission id="TRZSA20201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list_item"/>
  65. <submission id="TXZSA20201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  66. </model>
  67. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  68. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  69. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  70. <script type="javascript">
  71. <![CDATA[
  72. /*
  73. 초기화 작업을 합니다.
  74. */
  75. function fInitialize(){
  76. model.removeNodeset("/root/main/list_grup/acntgruplist");
  77. model.removeNodeset("/root/main/list_item/acntitemlist");
  78. model.resetInstanceNode("/root/temp/list");
  79. model.removeNodeset("/root/hide/usergruplist");
  80. // grd_acntitemlist.colhidden(6)=true;
  81. //grd_acntgruplist.colDisabled(2)=true;
  82. combo1.select(0);
  83. model.refresh();
  84. }
  85. /*
  86. 버튼 컨트롤들을 클릭했을때 공통으로 타는 함수입니다.
  87. control : "search" 는 조회 버튼 클릭
  88. "init"은 신규 버튼 클릭
  89. "save"는 저장 버튼 클릭
  90. grid : 그리드 컨트롤을 넘겨줍니다.
  91. param : 기타 param을 넘겨줍니다.
  92. */
  93. function fClicked(control, grid, param){
  94. if ("search" == control){
  95. fSearchClick(grid, param);
  96. model.resetInstanceNode("/root/send");
  97. } else if ("init" == control){
  98. model.reset();
  99. } else if ("save" == control){
  100. fSaveClick(grid, param);
  101. } else if ("delete" == control){
  102. fDeleteClick(grid, param);
  103. }else {
  104. messageBox("처리를 수행","E002");
  105. }
  106. model.refresh();
  107. }
  108. /*
  109. 조회버튼 클릭 타는 함수입니다.
  110. grid.explorerbar = "sortshow" sort설정합니다.
  111. ipt_usercdnm_flag는 검색조건의 사용자코드 or 사용자명입니다.
  112. radio1은 사용자코드 or 사용자명 선택 라디오 버튼입니다.
  113. submit을 날립니다.
  114. .
  115. */
  116. function fSearchClick(grid,param){
  117. // window.setPopupMenu(true, "/root/menu/menu", "Label", "func", true);
  118. // window.showPopupMenu(true);
  119. grid.explorerbar = "sortshow";
  120. model.removeNodeset("/root/main/list_grup/acntgruplist");
  121. grid.rebuild();
  122. model.resetInstanceNode("/root/send");
  123. model.setValue("/root/send/searchitem", ipt_search_item.text);
  124. model.setValue("/root/send/flag", combo1.value);
  125. submit("TRZSA20200");
  126. }
  127. /*
  128. 저장 버튼 클릭시 사는 함수입니다.
  129. 사용자코드, 사용자명, 비밀번호, 적용시작일자, 적용종료일자는 필수 항목 입니다.
  130. 필수항목 모두 입력시 /root/main/item 노드를 send 노드로 복사합니다.
  131. submit을 날립니다.
  132. */
  133. function fSaveClick(grid, param){
  134. if("acntgrup" == param){
  135. // alert("계정그룹을 저장합니다.");
  136. model.setValue("/root/send/acntgruplist", grid.getUpdateData());
  137. if ( submit("TXZSA20200") ) {
  138. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  139. }
  140. } else if("acntitem" == param){
  141. // alert("계정그룹항목을 저장합니다.");
  142. model.setValue("/root/send/acntitemlist", grid.getUpdateData());
  143. if ( submit("TXZSA20201") ) {
  144. // 다시 조회해옴
  145. var iOptacntgrupcd = opt_acntgrupcd.value;
  146. //alert(iOptacntgrupcd);
  147. model.setValue("/root/send/optacntgrupcd", iOptacntgrupcd );
  148. submit("TRZSA20201");
  149. }
  150. }
  151. // model.copyNode("/root/send/item", "/root/hide/item");
  152. // submit("TXZSU10101");
  153. }
  154. function fDeleteClick(grid, param){
  155. if(param == "acntgrup"){
  156. grid.addStatus(grid.row,"delete");
  157. model.setValue("/root/send/acntgruplist", grid.getUpdateData());
  158. if ( submit("TXZSA20200") ) {
  159. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  160. var jRow = grid.row;
  161. grid.deleteItem(jRow);
  162. }
  163. } else if(param == "acntitem"){
  164. //grid.addStatus(grid.row,"delete");
  165. var is_selected;
  166. var row_status;
  167. //grid.clearStatus();
  168. var selected_index = new Array();
  169. // 다중 셀렉트된 행을 체크표시한다
  170. for (var i= 0; i < grd_acntitemlist.selectedRows; i++)
  171. {
  172. index = grd_acntitemlist.selectedrow(i);
  173. selected_index[i]=index; // 배열에 담는다.
  174. row_status=grid.rowstatus(index);
  175. if(row_status==1) // 새로 추가된 상태이면
  176. {
  177. //grid.deleteRow(index);
  178. grid. removeStatus(index, "insert");
  179. }
  180. else
  181. {
  182. //alert(row_status);
  183. grid.addStatus(index, "delete");
  184. }
  185. }
  186. //alert("하이");
  187. model.setValue("/root/send/acntitemlist", grid.getUpdateData());
  188. if ( submit("TXZSA20201") ) {
  189. grid.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  190. // // 다시 조회해옴
  191. // var iOptacntgrupcd = opt_acntgrupcd.value;
  192. // //alert(iOptacntgrupcd);
  193. //
  194. // model.setValue("/root/send/optacntgrupcd", iOptacntgrupcd );
  195. //
  196. // submit("TRZSA20201");
  197. // 다중 셀렉트된 행을 체크표시한다
  198. for (var i= selected_index.length-1; i >= 0; i--)
  199. {
  200. index = selected_index[i];
  201. //alert(index);
  202. //grid.deleteRow(index);
  203. //rsrvyn = model.getValue("/root/main/list/msglist["+ index +"]/rsrvyn");
  204. //model.setValue("/root/main/list_item/acntitemlist["+index+"]/selector", "true");
  205. model.removeNodeset("/root/main/list_item/acntitemlist["+index+"]");
  206. }
  207. }
  208. }
  209. }
  210. function fResetNode(node, destinationelement){
  211. // model.setValue(node + "/" + destinationelement, "");
  212. // alert(model.elementName("/root/main/item"));
  213. }
  214. /*
  215. model.getValue(); 를 함수로 만들었습니다.
  216. param1 : node는 grid의 xPath입니다.
  217. param2 : row는 grid에서 선택한 row값입니다.
  218. param3 : element는 getvalue할 해당 element 명입니다.
  219. 해당 getvalue값을 return 해줍니다.
  220. return 하지 않으면 해당값을 가져올 수 없습니다.
  221. */
  222. function fGetValue(node, row, element) {
  223. var rtnValue = model.getValue(node + "[" + row + "]/" + element);
  224. return rtnValue;
  225. }
  226. /*
  227. model.setValue();를 함수로 만들었습니다.
  228. param1 : node는 setvalue할 컨트롤의 xPath입니다.
  229. param2 : destinationelement는 setvalue할 element명 입니다.
  230. param3 : sourceelement는 setvalue할 값입니다.
  231. */
  232. function fSetValue(node, destinationelement, sourceelement) {
  233. model.setValue(node + "/" + destinationelement, sourceelement);
  234. }
  235. function fSetRowValue(node, destinationelement, sourceelement, row) {
  236. model.setValue(node + "[" + row + "]/" + destinationelement, sourceelement);
  237. }
  238. function fCheckItem(iRow){
  239. }
  240. ]]>
  241. </script>
  242. </xhtml:head>
  243. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  244. <script type="javascript" ev:event="onmenu">
  245. <![CDATA[
  246. if(event.description == "delacntgrup")
  247. {
  248. btn_delete_acntgrup.dispatch("DOMActivate");
  249. }
  250. if(event.description == "setacntgrup")
  251. {
  252. var iRow = grd_acntgruplist.row;
  253. setParameter("SPZSA20201_", "");
  254. modal("SPZSA20201_사용자그룹변경", "", "200", "200", "SPZSA20201","/root/main/list_grup/acntgruplist["+iRow+"]/acntgrupcd", "/root/send/acntgrupcd");
  255. var iProperties = getParameter("SPZSA20201_");
  256. if(iProperties.length > 0 && iProperties != undefined){
  257. model.setValue("/root/main/list_grup/acntgruplist[" + iRow + "]/acntgrupnm", iProperties);
  258. //grd_acntgruplist.addStatus(iRow, "update");
  259. } else {
  260. messageBox("데이터를 저장", "E001");
  261. }
  262. }
  263. ]]>
  264. </script>
  265. <group id="grp_tle" style="left:0px; top:0px; width:1194px; height:13px; ">
  266. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:106px; height:14px; ">계정그룹관리</caption>
  267. </group>
  268. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  269. <group id="grp_sea" style="left:5px; top:10px; width:475px; height:60px; vertical-align:top; ">
  270. <shape id="roundrect1" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:475px; height:60px; background-color:#fffbf2; border-color:#ffd799; "/>
  271. <caption id="caption1" class="search_name" style="left:15px; top:9px; width:117px; height:17px; ">계정그룹조회</caption>
  272. <line id="line1" style="x1:398px; y1:7px; x2:398px; y2:51px; border-color:#ffe4bb; border-left-style:solid; "/>
  273. <button id="btn_search" class="btn1_letter2" style="left:412px; top:19px; width:56px; height:22px; ">
  274. <caption>조회</caption>
  275. <script type="javascript" ev:event="DOMActivate">
  276. <![CDATA[
  277. fClicked("search", grd_acntgruplist);
  278. opt_acntgrupnm.value = "";
  279. opt_acntgrupcd.value = "";
  280. ]]>
  281. </script>
  282. </button>
  283. <select1 id="combo1" ref="/root/init/flag" class="combo_search" appearance="minimal" style="left:126px; top:8px; width:184px; height:19px; ">
  284. <choices>
  285. <itemset nodeset="/root/init/flag">
  286. <label ref="lable"/>
  287. <value ref="value"/>
  288. </itemset>
  289. </choices>
  290. </select1>
  291. <input id="ipt_search_item" ref="/root/init/searchitem" class="input_s_essential" imemode="hangul" style="left:126px; top:34px; width:184px; height:19px; ">
  292. <script type="javascript" ev:event="onkeypress">
  293. <![CDATA[
  294. inputEnterKey("btn_search", "DOMActivate");
  295. ]]>
  296. </script>
  297. </input>
  298. </group>
  299. <caption id="caption9" class="tit_2" style="left:5px; top:88px; width:111px; height:13px; vertical-align:middle; ">계정그룹</caption>
  300. <line id="line12" class="line_1" style="x1:5px; y1:103px; x2:480px; y2:104px; "/>
  301. <button id="btn_save_acntgrup" class="btn5_letter2" style="left:438px; top:82px; width:42px; height:19px; ">
  302. <caption>저장</caption>
  303. <script type="javascript" ev:event="DOMActivate">
  304. <![CDATA[
  305. fClicked("save", grd_acntgruplist, "acntgrup");
  306. btn_search.dispatch("DOMActivate");
  307. ]]>
  308. </script>
  309. </button>
  310. <button id="btn_add_acntgrup" class="btn2_letter2" style="left:393px; top:82px; width:42px; height:19px; ">
  311. <caption>추가</caption>
  312. <script type="javascript" ev:event="DOMActivate">
  313. <![CDATA[
  314. grd_acntgruplist.addItem();
  315. grd_acntgruplist.editCell();
  316. ]]>
  317. </script>
  318. </button>
  319. <datagrid id="grd_acntgruplist" nodeset="/root/main/list_grup/acntgruplist" class="datagrid" allowuserresize="false" caption="명^코드^별칭" colwidth="170, 100, 100" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="32" style="left:5px; top:107px; width:475px; height:630px; ">
  320. <col disabled="true" ref="acntgrupnm" type="input" _key="true"/>
  321. <col ref="acntgrupcd"/>
  322. <col ref="alias"/>
  323. <script type="javascript" ev:event="onmousedown">
  324. <![CDATA[
  325. if(event.button == 3){
  326. if(grd_acntgruplist.isCell(event.target) && grd_acntgruplist.mouseRow >= grd_acntgruplist.fixedrows){
  327. window.setPopupMenu(true, "/root/agmenu", "label", "func", true);
  328. }else{
  329. window.setPopupMenu(false);
  330. }
  331. }
  332. ]]>
  333. </script>
  334. <script type="javascript" ev:event="DOMFocusOut">
  335. <![CDATA[
  336. window.setPopupMenu(false);
  337. ]]>
  338. </script>
  339. <script type="javascript" ev:event="onbuttonclick">
  340. <![CDATA[
  341. grd_acntitemlist.explorerbar = "sortshow";
  342. model.resetInstanceNode("/root/send");
  343. var iRow = grd_acntgruplist.row;
  344. var iNode = "/root/main/list_grup/acntgruplist"
  345. opt_acntgrupnm.value = fGetValue(iNode, iRow, "acntgrupnm");
  346. opt_acntgrupcd.value = fGetValue(iNode, iRow, "acntgrupcd");
  347. var iOptacntgrupcd = opt_acntgrupcd.value;
  348. //alert(iOptacntgrupcd);
  349. model.setValue("/root/send/optacntgrupcd", iOptacntgrupcd );
  350. submit("TRZSA20201");
  351. ]]>
  352. </script>
  353. <script type="javascript" ev:event="ondblclick">
  354. <![CDATA[
  355. var iRow = grd_acntgruplist.row;
  356. // alert(model.getValue("/root/main/list_authgrup/menuauthgruplist["+iRow+"]/menuauthnm"));
  357. if("" != model.getValue("/root/main/list_grup/acntgruplist["+iRow+"]/acntgrupnm")){
  358. btn_search_acntitem.dispatch("DOMActivate");
  359. }
  360. ]]>
  361. </script>
  362. <script type="javascript" ev:event="onaftersort">
  363. <![CDATA[
  364. grd_acntgruplist.gridToInstance();
  365. ]]>
  366. </script>
  367. </datagrid>
  368. <button id="btn_delete_acntgrup" class="btn2_letter2" visibility="hidden" style="left:255px; top:81px; width:42px; height:19px; ">
  369. <caption>삭제</caption>
  370. <script type="javascript" ev:event="DOMActivate">
  371. <![CDATA[
  372. var rtn = messageBox(" 해당 계정그룹을 ", "Q001");
  373. if(rtn == 6){
  374. fClicked("delete", grd_acntgruplist, "acntgrup");
  375. }
  376. ]]>
  377. </script>
  378. </button>
  379. <button id="btn_search_acntitem" class="btn2_letter2" visibility="hidden" style="left:208px; top:82px; width:42px; height:19px; ">
  380. <caption>조회</caption>
  381. <script type="javascript" ev:event="DOMActivate">
  382. <![CDATA[
  383. grd_acntitemlist.explorerbar = "sortshow";
  384. model.resetInstanceNode("/root/send");
  385. model.resetInstanceNode("/root/temp/list");
  386. var iRow = grd_acntgruplist.row;
  387. var iNode = "/root/main/list_grup/acntgruplist"
  388. opt_acntgrupnm.value = fGetValue(iNode, iRow, "acntgrupnm");
  389. opt_acntgrupcd.value = fGetValue(iNode, iRow, "acntgrupcd");
  390. var iOptacntgrupcd = opt_acntgrupcd.value;
  391. // model.setValue("/root/main/item/acntgrupnm", fGetValue(iNode, iRow, "acntgrupnm"));
  392. // model.setValue("/root/main/item/acntgrupcd", fGetValue(iNode, iRow, "acntgrupcd"));
  393. // var iOptacntgrupcd = model.getValue("/root/main/item/acntgrupcd");
  394. //alert(iOptacntgrupcd);
  395. model.setValue("/root/send/optacntgrupcd", iOptacntgrupcd );
  396. submit("TRZSA20201");
  397. // grd_acntitemlist.rebuild();
  398. // setRowStyle("grd_acntitemlist" , "1" , "" , "acntgrupnm");
  399. ]]>
  400. </script>
  401. </button>
  402. <button id="btn_delete_acntitem" class="btn2_letter2" style="left:1107px; top:55px; width:42px; height:19px; ">
  403. <caption>삭제</caption>
  404. <script type="javascript" ev:event="DOMActivate">
  405. <![CDATA[
  406. var cnt=0;
  407. // 다중 셀렉트된 행의 갯수를 파악한다.
  408. for (var i= 0; i < grd_acntitemlist.selectedRows; i++)
  409. {
  410. index = grd_acntitemlist.selectedrow(i);
  411. row_status=grd_acntitemlist.rowstatus(index);
  412. if(row_status==1) // 새로 추가된 상태이면
  413. {
  414. //grid.deleteRow(index);
  415. //grid. removeStatus(index, "insert");
  416. }
  417. else
  418. {
  419. //alert(row_status);
  420. //grid.addStatus(index, "delete");
  421. cnt++;
  422. }
  423. }
  424. var rtn = messageBox("총 "+ cnt +"개의 선택된 계정그룹항목을", "Q001");
  425. if(rtn == 6){
  426. fClicked("delete", grd_acntitemlist, "acntitem");
  427. }
  428. ]]>
  429. </script>
  430. <hint>
  431. <![CDATA[멀티선택하여 삭제가능(ctrl,shift 키사용)]]>
  432. </hint>
  433. </button>
  434. <button id="btn_save_acntitem" class="btn5_letter2" style="left:1152px; top:55px; width:42px; height:19px; ">
  435. <caption>저장</caption>
  436. <script type="javascript" ev:event="DOMActivate">
  437. <![CDATA[
  438. fClicked("save", grd_acntitemlist, "acntitem");
  439. ]]>
  440. </script>
  441. </button>
  442. <caption id="caption3" class="tit_2" style="left:491px; top:61px; width:111px; height:13px; ">계정그룹항목</caption>
  443. <line id="line2" class="line_1" style="x1:491px; y1:76px; x2:1194px; y2:77px; "/>
  444. <button id="btn_reg" class="btn2_letter2" style="left:1062px; top:55px; width:41px; height:19px; ">
  445. <caption>등록</caption>
  446. <script type="javascript" ev:event="DOMActivate">
  447. <![CDATA[
  448. // grd_acntitemlist.addItem();
  449. var iRow = grd_acntitemlist.row;
  450. model.removeNodeset("/root/temp/list");
  451. clearParameter("SPZSU10103_");
  452. if(opt_acntgrupcd.value == ""){
  453. model.alert("계정그룹을 선택하십시요!");
  454. } else {
  455. // modal("../../userdeptinfoweb/xrw/SPZSU10101", "", "200", "200", "SPZSU10101");
  456. //
  457. // var iProperties = getParameter("SPZSU10101_");
  458. // modal("../../userdeptinfoweb/xrw/SPZSU10103", "", "200", "200", "SPZSU10103","/root/temp","/root/main/temp");
  459. modal("../../userdeptinfoweb/xrw/SPZSU10103", "", "200", "200", "SPZSU10103");
  460. var iProperties = getParameter("SPZSU10103_");
  461. // alert(iProperties);
  462. // var iRow = grd_menuitemlist.row;
  463. if(iProperties.length > 0 && iProperties != "" && iProperties != undefined){
  464. var iNode = "/root/main/list_item/acntitemlist";
  465. // var iNode = "/root/main/list_item";
  466. setCSVToNode("/root/temp", iProperties);
  467. // model.copyNode(iNode, "/root/main/list_item");
  468. var iNodesetCount = getNodesetCount("/root/temp/list");
  469. for(var i = 1; i <= iNodesetCount; i++){
  470. grd_acntitemlist.addItem();
  471. iRow = grd_acntitemlist.row;
  472. // alert(model.getValue("/root/temp/list["+i+"]/userid"));
  473. fSetRowValue(iNode, "acntgrupnm", opt_acntgrupnm.value, iRow);
  474. fSetRowValue(iNode, "acntgrupcd", opt_acntgrupcd.value, iRow);
  475. fSetRowValue(iNode, "userid", model.getValue("/root/temp/list["+i+"]/userid"), iRow);
  476. fSetRowValue(iNode, "usernm", model.getValue("/root/temp/list["+i+"]/usernm"), iRow);
  477. fSetRowValue(iNode, "dutplceinstcd", model.getValue("/root/temp/list["+i+"]/dutplceinstcd"), iRow);
  478. //fSetRowValue(iNode, "dutplceinstnm", model.getValue("/root/temp/list["+i+"]/dutplceinstnm"), iRow);
  479. fSetRowValue(iNode, "dutplcecd", model.getValue("/root/temp/list["+i+"]/dutplcecd"), iRow);
  480. fSetRowValue(iNode, "dutplcenm", model.getValue("/root/temp/list["+i+"]/dutplcenm"), iRow);
  481. }
  482. // fSetRowValue(iNode, "acntgrupnm", opt_acntgrupnm.value, iRow);
  483. // fSetRowValue(iNode, "acntgrupcd", opt_acntgrupcd.value, iRow);
  484. // fSetRowValue(iNode, "userid", iSplit_Value[0], iRow);
  485. // fSetRowValue(iNode, "usernm", iSplit_Value[1], iRow);
  486. // fSetRowValue(iNode, "dutplceinstcd", iSplit_Value[6], iRow);
  487. // fSetRowValue(iNode, "dutplceinstnm", iSplit_Value[7], iRow);
  488. // fSetRowValue(iNode, "dutplcecd", iSplit_Value[8], iRow);
  489. // fSetRowValue(iNode, "dutplcenm", iSplit_Value[9], iRow);
  490. var iStatus = grd_acntitemlist.rowstatus(iRow);
  491. if(iStatus=="0"){
  492. grd_acntitemlist.rowstatus(iRow) = "2";
  493. }
  494. } else {
  495. messageBox("데이터를 저장", "E001");
  496. // grd_acntitemlist.removeItem();
  497. }
  498. }
  499. ]]>
  500. </script>
  501. </button>
  502. <datagrid id="grd_acntitemlist" nodeset="/root/main/list_item/acntitemlist" class="datagrid" caption="유효^계정그룹명^계정그룹코드^사용자ID^사용자명^근무지기관^근무지명^근무지코드^근무지코드_원본^근무지기관코드_원본" colwidth="36, 168, 83, 69, 70, 88, 130, 109, 100, 100" dataheight="25" explorerbar="sort" extendlastcol="scroll" frozencols="1" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="32" style="left:490px; top:80px; width:703px; height:657px; ">
  503. <col ref="isvalid" style="text-align:center; "/>
  504. <col ref="acntgrupnm"/>
  505. <col ref="acntgrupcd"/>
  506. <col ref="userid"/>
  507. <col ref="usernm"/>
  508. <col disabled="true" ref="dutplceinstcd" type="combo">
  509. <choices>
  510. <itemset nodeset="/root/init/comcd/Z0007">
  511. <label ref="cdnm"/>
  512. <value ref="cdid"/>
  513. </itemset>
  514. </choices>
  515. </col>
  516. <col ref="dutplcenm"/>
  517. <col ref="dutplcecd"/>
  518. <col ref="dutplcecd_t" visibility="hidden"/>
  519. <col ref="dutplceinstcd_t" visibility="hidden"/>
  520. <script type="javascript" ev:event="onaftersort">
  521. <![CDATA[
  522. grd_acntitemlist.gridToInstance();
  523. ]]>
  524. </script>
  525. </datagrid>
  526. <group id="group4" style="left:491px; top:10px; width:702px; height:45px; vertical-align:top; ">
  527. <caption id="caption11" class="cell_1" style="left:0px; top:20px; width:135px; height:19px; ">계정그룹명</caption>
  528. <output id="opt_acntgrupnm" ref="/root/main/item/acntgrupnm" class="output_fix" style="left:138px; top:20px; width:135px; height:19px; "/>
  529. <output id="opt_acntgrupcd" ref="/root/main/item/acntgrupcd" class="output_fix" style="left:414px; top:20px; width:135px; height:19px; "/>
  530. <caption id="caption12" class="tit_2" style="left:0px; top:0px; width:169px; height:14px; ">선택 계정그룹</caption>
  531. <caption id="caption2" class="cell_1" style="left:276px; top:20px; width:135px; height:19px; ">계정그룹코드</caption>
  532. <line id="line7" class="line_1" style="x1:0px; y1:15px; x2:702px; y2:15px; "/>
  533. <line id="line8" class="line_3" style="x1:0px; y1:42px; x2:702px; y2:42px; "/>
  534. </group>
  535. <button id="button1" class="btn2_letter4" style="left:326px; top:82px; width:64px; height:19px; ">
  536. <caption>별칭추가</caption>
  537. <script type="javascript" ev:event="DOMActivate">
  538. <![CDATA[
  539. // alert(grd_acntgruplist.row);
  540. // grd_acntgruplist.addItem();
  541. // grd_acntgruplist.editCell();
  542. var iRow = grd_acntgruplist.row;
  543. if(iRow == -1){
  544. } else {
  545. modal("SPZSA20203", "", "200", "200", "SPZSA20203");
  546. var iProperties = getParameter("SPZSA20203_");
  547. if(iProperties.length > 0 && iProperties != "" && iProperties != undefined){
  548. var iNode = "/root/main/list_grup/acntgruplist";
  549. fSetRowValue(iNode, "alias", iProperties, iRow);
  550. var iStatus = grd_acntgruplist.rowstatus(iRow);
  551. if(iStatus=="0"){
  552. grd_acntgruplist.rowstatus(iRow) = "2";
  553. }
  554. } else {
  555. messageBox("데이터를 저장", "E001");
  556. }
  557. }
  558. ]]>
  559. </script>
  560. </button>
  561. <button id="btn_save_excel" class="btn2_letter4" style="left:920px; top:55px; width:64px; height:19px; ">
  562. <caption>엑셀저장</caption>
  563. <script type="javascript" ev:event="DOMActivate">
  564. <![CDATA[
  565. var fileName = window.fileDialog("save", ",", false, "사용자그룹", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  566. if (fileName != "")
  567. {
  568. grd_acntitemlist.saveExcel(fileName);
  569. }
  570. ]]>
  571. </script>
  572. </button>
  573. <button id="button2" class="btn2_letter4" style="left:987px; top:55px; width:64px; height:19px; ">
  574. <caption>엑셀입력</caption>
  575. <script type="javascript" ev:event="DOMActivate">
  576. <![CDATA[
  577. var fileName = window.fileDialog("open", "", false);
  578. grd_acntitemlist.loadExcel(fileName);
  579. var acntgrupcd = opt_acntgrupcd.value;
  580. var acntgrupnm = opt_acntgrupnm.value;
  581. if (fileName != "")
  582. {
  583. for (i=grd_acntitemlist.fixedRows; i<grd_acntitemlist.rows; i++)
  584. {
  585. model.setValue("/root/main/list_item/acntitemlist["+i+"]/acntgrupcd", acntgrupcd);
  586. model.setValue("/root/main/list_item/acntitemlist["+i+"]/acntgrupnm", acntgrupnm);
  587. grd_acntitemlist.rowStatus(i) = 1;
  588. }
  589. grd_acntitemlist.deleteRow(1);
  590. }
  591. ]]>
  592. </script>
  593. </button>
  594. <button id="btn_searchall" class="btn2_letter5" style="left:834px; top:55px; width:75px; height:19px; ">
  595. <caption>근무지변경</caption>
  596. <script type="javascript" ev:event="DOMActivate">
  597. <![CDATA[
  598. setParameter("SPZSA20202_1", 5);
  599. modal("SPZSA20202", "", "200", "200", "SPZSA20202");
  600. var iProperties = getParameter("SPZSA20202_");
  601. var iSplit_Value=iProperties.split("|");
  602. // var iRow = grd_menuitemlist.row;
  603. if(iSplit_Value.length > 0 && iSplit_Value[0] != "" && iSplit_Value[0] != undefined){
  604. //grd_menuauthuserlist.addItem();
  605. var iRow = grd_acntitemlist.row;
  606. var iNode = "/root/main/list_item/acntitemlist";
  607. // alert(iSplit_Value[0]); // 구분
  608. // alert(iSplit_Value[1]); // 부서코드
  609. // alert(iSplit_Value[2]); // 부서명 (기관명)
  610. // alert(iSplit_Value[3]); // 기관코드
  611. var is_selected;
  612. var row_status;
  613. // 다중 셀렉트된 행을 체크표시한다
  614. for (var i= 0; i < grd_acntitemlist.selectedRows; i++)
  615. {
  616. index = grd_acntitemlist.selectedrow(i);
  617. // 근무지코드 가져오기
  618. // fSetRowValue(iNode, "dutplceinstcd", iSplit_Value[3], index); // 근무지 기관코드
  619. // fSetRowValue(iNode, "dutplcecd", iSplit_Value[1], index); // 근무지코드
  620. // fSetRowValue(iNode, "dutplcenm", iSplit_Value[2], index); // 근무지명
  621. grd_acntitemlist.valuematrix(index, 6) = iSplit_Value[3]; // 근무지 기관코드
  622. grd_acntitemlist.valuematrix(index, 8) = iSplit_Value[1] ; // 근무지코드
  623. grd_acntitemlist.valuematrix(index, 7) = iSplit_Value[2]; // 근무지명
  624. var iStatus = grd_acntitemlist.rowstatus(index);
  625. if(iStatus=="0"){
  626. grd_acntitemlist.rowstatus(index) = "2";
  627. }
  628. }
  629. messageBox("수정된 데이터를 확인하여 반드시 저장버튼을 클릭하세요", "I999");
  630. } else {
  631. messageBox("데이터를 저장", "E001");
  632. // grd_acntitemlist.deleteItem(iRow);
  633. }
  634. ]]>
  635. </script>
  636. <hint>
  637. <![CDATA[멀티선택하여 삭제가능(ctrl,shift 키사용)]]>
  638. </hint>
  639. </button>
  640. <button id="button3" class="btn2_letter4" style="left:767px; top:55px; width:64px; height:19px; ">
  641. <caption>전체조회</caption>
  642. <script type="javascript" ev:event="DOMActivate">
  643. <![CDATA[
  644. grd_acntitemlist.explorerbar = "sortshow";
  645. model.resetInstanceNode("/root/send");
  646. model.resetInstanceNode("/root/temp/list");
  647. var iRow = grd_acntgruplist.row;
  648. var iNode = "/root/main/list_grup/acntgruplist"
  649. opt_acntgrupnm.value = "";
  650. opt_acntgrupcd.value = "";
  651. var iOptacntgrupcd = opt_acntgrupcd.value;
  652. model.setValue("/root/send/optacntgrupcd", iOptacntgrupcd );
  653. submit("TRZSA20201");
  654. // grd_acntitemlist.rebuild();
  655. // setRowStyle("grd_acntitemlist" , "1" , "" , "acntgrupnm");
  656. ]]>
  657. </script>
  658. </button>
  659. </group>
  660. </xhtml:body>
  661. </xhtml:html>