SMCRA00100_승인자관리.xrw 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SMCRA00100_승인자관리
  4. * Summary : 엑셀파일을 통한 승인자등록
  5. * Programmer : 차재훈
  6. * Date Written : 2008.07.15
  7. * History : 2008.07.15
  8. * Remark :
  9. -->
  10. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>승인자관리</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <data>
  19. <aprvlist>
  20. <aprvuserid/>
  21. <aprvusernm/>
  22. <posdeptnm/>
  23. <mastauth/>
  24. <useyn/>
  25. <posdeptcd/>
  26. <seq/>
  27. </aprvlist>
  28. </data>
  29. </main>
  30. <temp>
  31. <countnode>0</countnode>
  32. </temp>
  33. <send>
  34. <aprvlist/>
  35. </send>
  36. <searchdata>
  37. <useyn/>
  38. <posdeptnm/>
  39. <aprvusernm/>
  40. </searchdata>
  41. </root>
  42. </instance>
  43. <submission id="TRCRA00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/searchdata" replace="instance" resultref="/root/main/data/aprvlist"/>
  44. <submission id="TXCRA00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/aprvlist" resultref="/root/temp/result"/>
  45. </model>
  46. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  47. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  48. <script type="javascript" src="../../../crm/crmweb/js/CCZ001.js"/>
  49. <script type="javascript" ev:event="xforms-ready">
  50. <![CDATA[
  51. // 그리드의 마지막 행 삭제
  52. grd_aprvlist.removeRow();
  53. // 승인자 조회
  54. fSearchAprvlist();
  55. ]]>
  56. </script>
  57. <script type="javascript">
  58. <![CDATA[
  59. function fCheckAuth() {
  60. // 권한체크
  61. if (!checkAuth("x")) {
  62. btn_sms.disabled=true;
  63. btn_email.disabled=true;
  64. }
  65. if (!checkAuth("p")) {
  66. btn_sample.disabled=true;
  67. btn_insert.disabled=true;
  68. btn_print.disabled=true;
  69. }
  70. }
  71. //----------------------//
  72. // 선택된 그리드 행삭제 //
  73. //----------------------//
  74. function fDelRow(grid) {
  75. var srcGrid = grid;
  76. var fRow = srcGrid.fixedRows - 1;
  77. var sRow = srcGrid.selectedRow(0);
  78. if ( sRow > fRow ) {
  79. if( srcGrid.rowStatus(sRow) == 1){
  80. srcGrid.deleteRow(sRow);
  81. }else{
  82. srcGrid.addStatus(sRow, "delete");
  83. }
  84. }else{
  85. messageBox("삭제할 행을", "C002");
  86. }
  87. model.refresh();
  88. }
  89. //======================//
  90. // 그리드 저장 //
  91. //======================//
  92. function fSaveAprvList(srcGrid) {
  93. var grid = srcGrid.getUpdateData();
  94. if (grid != "") {
  95. model.setValue("/root/send/aprvlist", grid);
  96. submit("TXCRA00101");
  97. //srcGrid.clearStatus(); // 그리드의 i,u,d 상태 제거
  98. //messageBox("승인자 목록을 저장","I002");
  99. }
  100. fSearchAprvlist();
  101. model.setValue("/root/send/aprvlist","");
  102. }
  103. function fSearchAprvlist() {
  104. submit("TRCRA00101");
  105. var grid_rows = grd_aprvlist.rows-1;
  106. model.setvalue("/root/temp/countnode" , grid_rows);
  107. model.refresh();
  108. }
  109. ]]>
  110. </script>
  111. </xhtml:head>
  112. <xhtml:body guideline="2,780;1,1195;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  113. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  114. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:145px; height:14px; ">전송승인자 설정</caption>
  115. </group>
  116. <group id="group2" style="left:0px; top:23px; width:1194px; height:35px; vertical-align:top; ">
  117. <shape id="roundrect1" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  118. <caption id="caption3" class="search_name" style="left:16px; top:9px; width:104px; height:17px; ">사용여부 :</caption>
  119. <select1 id="cmb_useyn" ref="/root/searchdata/useyn" class="combo_search" navindex="1" appearance="minimal" style="left:108px; top:8px; width:105px; height:19px; ">
  120. <choices>
  121. <item>
  122. <label>전체</label>
  123. <value/>
  124. </item>
  125. <item>
  126. <label>사용</label>
  127. <value>Y</value>
  128. </item>
  129. <item>
  130. <label>미사용</label>
  131. <value>N</value>
  132. </item>
  133. </choices>
  134. </select1>
  135. <caption id="caption4" class="search_name" style="left:321px; top:9px; width:84px; height:17px; ">부서명 :</caption>
  136. <input id="ipt_deptnm" ref="/root/searchdata/posdeptnm" class="input_search" navindex="2" maxlength="100" style="left:400px; top:8px; width:120px; height:19px; ">
  137. <script type="javascript" ev:event="onkeyup">
  138. <![CDATA[
  139. inputEnterKey("btn_search", "DOMActivate");
  140. ]]>
  141. </script>
  142. </input>
  143. <input id="ipt_usernm" ref="/root/searchdata/aprvusernm" class="input_search" navindex="3" maxlength="100" style="left:677px; top:8px; width:120px; height:19px; ">
  144. <script type="javascript" ev:event="onkeyup">
  145. <![CDATA[
  146. inputEnterKey("btn_search", "DOMActivate");
  147. ]]>
  148. </script>
  149. </input>
  150. <caption id="caption2" class="search_name" style="left:606px; top:9px; width:84px; height:17px; ">성 명 :</caption>
  151. <line id="line1" class="line_4" style="x1:1099px; y1:7px; x2:1099px; y2:29px; "/>
  152. <button id="btn_search" class="btn1_letter2" navindex="4" style="left:1115px; top:7px; width:56px; height:22px; ">
  153. <caption>조회</caption>
  154. <script type="javascript" ev:event="DOMActivate">
  155. <![CDATA[
  156. fSearchAprvlist();
  157. ]]>
  158. </script>
  159. </button>
  160. </group>
  161. <group id="group1" style="left:0px; top:63px; width:1195px; height:717px; ">
  162. <caption id="caption35" style="left:15px; top:10px; width:40px; height:17px; ">전체 :</caption>
  163. <output id="opt_countnode" ref="/root/temp/countnode" appearance="output" style="left:55px; top:9px; width:30px; height:19px; text-align:right; "/>
  164. <caption id="caption7" style="left:88px; top:10px; width:30px; height:17px; ">건</caption>
  165. <button id="btn_smaple" class="btn2_letter4" style="left:1061px; top:5px; width:64px; height:19px; ">
  166. <caption>샘플파일</caption>
  167. <script type="javascript" ev:event="DOMActivate">
  168. <![CDATA[
  169. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  170. if (fileName != "")
  171. {
  172. grd_aprvlist.saveExcel(fileName, "SheetName", true, true, "", "", true);
  173. }
  174. ]]>
  175. </script>
  176. </button>
  177. <button id="btn_insert" class="btn2_letter4" style="left:1128px; top:5px; width:64px; height:19px; ">
  178. <caption>엑셀입력</caption>
  179. <script type="javascript" ev:event="DOMActivate">
  180. <![CDATA[
  181. ///model.resetInstanceNode("/root/main/data/aprvlist");
  182. var fileName = window.fileDialog("open", ",", false, "", "xls", "Excel Files(*.xls)|*.xls");
  183. grd_aprvlist.loadExcel(fileName, 1, true);
  184. grd_aprvlist.deleteRow(1);
  185. model.SetFocus("grd_aprvlist");
  186. var grid_rows = grd_aprvlist.rows-1;
  187. var idx = 0;
  188. model.setvalue("/root/temp/countnode" , grid_rows);
  189. for(idx=1; idx<=grid_rows; idx++){
  190. grd_aprvlist.addStatus(idx, "insert");
  191. }
  192. model.refresh();
  193. ]]>
  194. </script>
  195. </button>
  196. <button id="btn_add" class="btn5_letter3" style="left:1005px; top:5px; width:53px; height:19px; ">
  197. <caption>행추가</caption>
  198. <script type="javascript" ev:event="DOMActivate">
  199. <![CDATA[
  200. grd_aprvlist.addRow();
  201. var grid_rows = grd_aprvlist.rows-1;
  202. model.setvalue("/root/temp/countnode" , grid_rows);
  203. model.refresh();
  204. ]]>
  205. </script>
  206. </button>
  207. <button id="btn_del" class="btn5_letter3" style="left:949px; top:5px; width:53px; height:19px; ">
  208. <caption>행삭제</caption>
  209. <script type="javascript" ev:event="DOMActivate">
  210. <![CDATA[
  211. fDelRow(grd_aprvlist);
  212. var grid_rows = grd_aprvlist.rows-1;
  213. model.setvalue("/root/temp/countnode" , grid_rows);
  214. model.refresh();
  215. ]]>
  216. </script>
  217. </button>
  218. <line id="line2" class="line_1" style="x1:0px; y1:26px; x2:1195px; y2:26px; "/>
  219. <datagrid id="grd_aprvlist" nodeset="/root/main/data/aprvlist" caption="승인자 ID^승인자 성명^부서명^마스터 권한 여부 Y/N^사용여부 Y/N^부서코드" colsep="^" colwidth="223, 236, 322, 149, 103, 115, 0" ellipsis="true" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" tooltip="true" style="left:0px; top:31px; width:1195px; height:661px; ">
  220. <col class="text_center" ref="aprvuserid"/>
  221. <col class="text_center" ref="aprvusernm" type="inputbutton"/>
  222. <col class="text_center" ref="posdeptnm"/>
  223. <col class="text_center" ref="mastauth" type="combo">
  224. <choices>
  225. <item>
  226. <label>권한자</label>
  227. <value>Y</value>
  228. </item>
  229. <item>
  230. <label>미권한자</label>
  231. <value>N</value>
  232. </item>
  233. </choices>
  234. </col>
  235. <col class="text_center" ref="useyn" type="combo">
  236. <choices>
  237. <item>
  238. <label>사용</label>
  239. <value>Y</value>
  240. </item>
  241. <item>
  242. <label>미사용</label>
  243. <value>N</value>
  244. </item>
  245. </choices>
  246. </col>
  247. <col class="text_center" ref="posdeptcd"/>
  248. <col class="text_center" ref="seq" visibility="hidden"/>
  249. <script type="javascript" ev:event="onbuttonclick">
  250. <![CDATA[
  251. var row = grd_aprvlist.row;
  252. var search_condition = "empnm";
  253. var search_term = model.getValue("/root/main/data/aprvlist["+row+"]/aprvusernm");
  254. var receive_empid_path = "/root/main/data/aprvlist["+row+"]/aprvuserid";
  255. var receive_empnm_path = "/root/main/data/aprvlist["+row+"]/aprvusernm";
  256. var receive_deptcd_path = "/root/main/data/aprvlist["+row+"]/posdeptcd";
  257. var receive_deptnm_path = "/root/main/data/aprvlist["+row+"]/posdeptnm";
  258. setParameter("search_condition", search_condition);
  259. setParameter("search_term", search_term);
  260. setParameter("receive_empid_path", receive_empid_path);
  261. setParameter("receive_empnm_path", receive_empnm_path);
  262. setParameter("receive_deptcd_path", receive_deptcd_path);
  263. setParameter("receive_deptnm_path", receive_deptnm_path);
  264. modal("SPCCM00400")
  265. clearParameter("search_condition");
  266. clearParameter("search_term");
  267. clearParameter("receive_empid_path");
  268. clearParameter("receive_empnm_path");
  269. clearParameter("receive_deptcd_path");
  270. clearParameter("receive_deptnm_path");
  271. grd_aprvlist.addStatus(row, "update");
  272. ]]>
  273. </script>
  274. </datagrid>
  275. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:695px; width:56px; height:22px; ">
  276. <caption>저장</caption>
  277. <script type="javascript" ev:event="DOMActivate">
  278. <![CDATA[
  279. fSaveAprvList(grd_aprvlist);
  280. ]]>
  281. </script>
  282. </button>
  283. </group>
  284. </xhtml:body>
  285. </xhtml:html>