SPCCN00600_외부파일가져오기.xrw 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SPCCN00600_외부파일가져오기.xrw
  4. * Summary : 주소록 검색
  5. * Programmer : 차재훈
  6. * Date Written : 2008.06.17
  7. * History :
  8. * Remark :
  9. -->
  10. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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. <list>
  19. <clntlist>
  20. <chk>N</chk>
  21. <innrclntnm/>
  22. <mpphontel/>
  23. <email/>
  24. <zipcd/>
  25. <address/>
  26. <addyn/>
  27. </clntlist>
  28. <rcevlist>
  29. <chk>N</chk>
  30. <innrclntnm/>
  31. <mpphontel/>
  32. <email/>
  33. <zipcd/>
  34. <address/>
  35. </rcevlist>
  36. </list>
  37. <search>
  38. <filenm/>
  39. </search>
  40. <rcvcnt>0</rcvcnt>
  41. <clncnt>0</clncnt>
  42. </main>
  43. <send>
  44. <data>
  45. </data>
  46. <innrgrupid/>
  47. </send>
  48. <fwd>
  49. <type/>
  50. </fwd>
  51. </root>
  52. </instance>
  53. <submission id="TRCMS00502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/list"/>
  54. <submission id="TRCCM00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" add="bottom" resultref="/root/main/list"/>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  57. <script type="javascript" ev:event="xforms-ready">
  58. <![CDATA[
  59. // 그리드를 초기화시킴.
  60. model.removenodeset("/root/main/list/clntlist");
  61. model.removenodeset("/root/main/list/rcevlist");
  62. grd_clntlist.removeRow();
  63. grd_rcevlist.removeRow();
  64. ]]>
  65. </script>
  66. </model>
  67. <script type="javascript">
  68. <![CDATA[
  69. //----------------------------------------//
  70. // 체크된 행을 대상그리드에 추가 후 삭제 //
  71. //----------------------------------------//
  72. function fGridRowAddRow(sndGrid, rcvGrid, type){
  73. var sRows = sndGrid.rows;
  74. var sfRow = sndGrid.fixedRows;
  75. var cntRows = sndGrid.rows-1;
  76. var rRows = rcvGrid.rows;
  77. for(var i=sfRow; i<sRows; i++){
  78. if(sndGrid.valueMatrix(i,sndGrid.colRef("chk")) == "Y" ){
  79. rcvGrid.addRow();
  80. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("innrclntnm")) = sndGrid.valueMatrix(i,sndGrid.colRef("innrclntnm"));
  81. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("mpphontel")) = sndGrid.valueMatrix(i,sndGrid.colRef("mpphontel"));
  82. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("email")) = sndGrid.valueMatrix(i,sndGrid.colRef("email"));
  83. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("zipcd")) = sndGrid.valueMatrix(i,sndGrid.colRef("zipcd"));
  84. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("address")) = sndGrid.valueMatrix(i,sndGrid.colRef("address"));
  85. rRows++;
  86. }//if
  87. }//for
  88. //추가된 사람 목록삭제
  89. for(var j=sRows; j>=sfRow; j--){
  90. if(sndGrid.valueMatrix(j,sndGrid.colRef("chk")) == "Y"){
  91. sndGrid.deleterow(j,false);
  92. cntRows--;
  93. }
  94. }
  95. if(type == "add"){
  96. model.setValue("/root/main/rcvcnt",rRows-1);//수신인 숫자
  97. model.setValue("/root/main/clncnt",cntRows);//파일사람 숫자
  98. }else{
  99. model.setValue("/root/main/rcvcnt",cntRows);//수신인 숫자
  100. model.setValue("/root/main/clncnt",rRows-1);//파일사람 숫자
  101. }
  102. model.refresh();
  103. }//func
  104. //----------------------------------------//
  105. // 그리드 전체 행 선택 함수 //
  106. //----------------------------------------//
  107. function fGridAllRow(grid) {
  108. var rows = grid.rows;
  109. var fRow = grid.fixedRows;
  110. var chk = grid.valueMatrix(1,grid.colRef("chk"));
  111. if(chk == "Y"){
  112. for(var i=fRow; i<rows; i++){
  113. grid.valueMatrix(i,grid.colRef("chk"))="N";
  114. }
  115. }else{
  116. for(var i=fRow; i<rows; i++){
  117. grid.valueMatrix(i,grid.colRef("chk"))="Y";
  118. }
  119. }
  120. model.refresh();
  121. }
  122. //----------------------------------------//
  123. // 추가된 목록을 부모창에 추가 //
  124. //----------------------------------------//
  125. function fConfirmAddRow(grid, type){
  126. var rows = grid.rows;
  127. var fRow = grid.fixedRows;
  128. var chckTemp = "N";
  129. if(fRow<rows){
  130. if(type == "sms"){ //////////////문자
  131. var pGrid = parent.grd_recvrlist;
  132. var prows = parent.grd_recvrlist.rows;
  133. var pfRow = parent.grd_recvrlist.fixedRows;
  134. for(var i=fRow; i<rows; i++){
  135. // if(pGrid.valueMatrix(prows, pGrid.colRef("recvrnm"))=="" && chckTemp == "N"){
  136. // pGrid.removeRow();
  137. // chckTemp = "Y";
  138. // prows = parent.grd_recvrlist.rows;
  139. // }
  140. pGrid.addRow();
  141. pGrid.valueMatrix(prows, pGrid.colRef("recvrnm")) = grid.valueMatrix(i,grid.colRef("innrclntnm"));
  142. pGrid.valueMatrix(prows, pGrid.colRef("recvrtelno")) = grid.valueMatrix(i,grid.colRef("mpphontel"));
  143. prows++;
  144. }
  145. }else if(type == "email"){//////메일
  146. var email="";
  147. for(var i=fRow; i<rows; i++){
  148. email += grid.valueMatrix(i,grid.colRef("email"));
  149. email +=";";
  150. }
  151. parent.model.setValue("/root/main/emailattr/recvremail",email);
  152. parent.ipt_recvremail.refresh();
  153. }else if(type == "refemail"){//////참조메일
  154. var email="";
  155. for(var i=fRow; i<rows; i++){
  156. email += grid.valueMatrix(i,grid.colRef("email"));
  157. email +=";";
  158. }
  159. parent.model.setValue("/root/main/emailattr/refemail",email);
  160. parent.ipt_refemail.refresh();
  161. }else{////////////////////////// dm
  162. var pGrid = parent.grd_recvrlist;
  163. var prows = parent.grd_recvrlist.rows;
  164. var pfRow = parent.grd_recvrlist.fixedRows;
  165. for(var i=fRow; i<rows; i++){
  166. // if(pGrid.valueMatrix(prows, pGrid.colRef("recvrnm"))=="" && chckTemp == "N"){
  167. // pGrid.removeRow();
  168. // chckTemp = "Y";
  169. // prows = parent.grd_recvrlist.rows;
  170. // }
  171. pGrid.addRow();
  172. pGrid.valueMatrix(prows, pGrid.colRef("recvrnm")) = grid.valueMatrix(i,grid.colRef("innrclntnm"));
  173. pGrid.valueMatrix(prows, pGrid.colRef("recvrzipcd")) = grid.valueMatrix(i,grid.colRef("zipcd"));
  174. pGrid.valueMatrix(prows, pGrid.colRef("recvraddr")) = grid.valueMatrix(i,grid.colRef("address"));
  175. prows++;
  176. }
  177. }
  178. }else{
  179. messageBox("받는 사람이 추가되지", "E007");
  180. return;
  181. }
  182. window.close();
  183. }
  184. ]]>
  185. </script>
  186. </xhtml:head>
  187. <xhtml:body pagewidth="640" pageheight="330" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  188. <group id="grp_Condition" scroll="auto" style="left:0px; top:0px; width:280px; height:285px; ">
  189. <caption id="caption9" class="tit_2" style="left:5px; top:10px; width:110px; height:13px; ">파일불러오기</caption>
  190. <input id="ipt_addfile" ref="/root/main/search/filenm" class="input_default" style="left:0px; top:31px; width:130px; height:19px; "/>
  191. <button id="btn_addfile" class="btn2_letter4" style="left:135px; top:31px; width:64px; height:19px; ">
  192. <caption>찾아보기</caption>
  193. <script type="javascript" ev:event="DOMActivate">
  194. <![CDATA[
  195. // 파일을 선택하는 다이얼로그를 뛰운다
  196. var files = window.fileDialog("open", ",", false, "", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  197. var filename = "";
  198. var index = 0;
  199. if( files != "" ){
  200. grd_clntlist.loadExcel(files, 1, true);
  201. grd_clntlist.deleteRow(1);
  202. var grid_rows = grd_clntlist.rows;
  203. for(var i=1; i<grid_rows; i++){
  204. grd_clntlist.valueMatrix(i, grd_clntlist.colRef("chk")) = "Y";
  205. }
  206. model.SetFocus("grd_clntlist");
  207. //전체 숫자
  208. model.setvalue("/root/main/clncnt" , grid_rows-1);
  209. //파일 이름
  210. files += ",";
  211. for(var i=0; i<files.length; i++)
  212. {
  213. if( files.charAt(i) == ",")
  214. {
  215. filename = files.substring(index, i);
  216. model.setValue("/root/main/search/filenm",filename);
  217. }
  218. }
  219. model.refresh();
  220. }
  221. ]]>
  222. </script>
  223. </button>
  224. <button id="btn_sample" class="btn2_letter4" style="left:205px; top:31px; width:64px; height:19px; ">
  225. <caption>샘플파일</caption>
  226. <script type="javascript" ev:event="DOMActivate">
  227. <![CDATA[
  228. var fileName = window.fileDialog("save", ",", false, "파일불러오기샘플", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  229. if (fileName != "")
  230. {
  231. grd_clntlist.saveExcel(fileName, "주소록", true, true, "", "", true);
  232. }
  233. ]]>
  234. </script>
  235. </button>
  236. <line id="line12" class="line_1" style="x1:0px; y1:26px; x2:269px; y2:26px; "/>
  237. <datagrid id="grd_clntlist" nodeset="/root/main/list/clntlist" allowselection="false" caption="^성명^휴대폰^E-mail^우편번호^주소" colwidth="20, 54, 86, 78, 70, 237" dataheight="25" extendlastcol="scroll" frozencols="2" rowheader="seq" rowheight="32" style="left:0px; top:51px; width:270px; height:211px; ">
  238. <col checkvalue="Y,N" ref="chk" type="checkbox" style="text-align:center; "/>
  239. <col ref="innrclntnm" style="text-align:center; "/>
  240. <col ref="mpphontel" format="99999999999" style="text-align:center; "/>
  241. <col ref="email" style="text-align:center; "/>
  242. <col ref="zipcd" format="999999" style="text-align:center; "/>
  243. <col ref="address" style="text-align:center; "/>
  244. </datagrid>
  245. <button id="btn_all" class="btn2_letter2" style="left:0px; top:55px; width:42px; height:19px; ">
  246. <caption>All</caption>
  247. <script type="javascript" ev:event="DOMActivate">
  248. <![CDATA[
  249. fGridAllRow(grd_clntlist);
  250. ]]>
  251. </script>
  252. </button>
  253. <caption id="caption1" style="left:195px; top:267px; width:70px; height:15px; ">총 명</caption>
  254. <output id="opt_clncnt" ref="/root/main/clncnt" style="left:211px; top:265px; width:35px; height:19px; text-align:right; "/>
  255. </group>
  256. <group id="group5" scroll="auto" style="left:0px; top:285px; width:622px; height:27px; ">
  257. <button id="btn_conform" class="btn4_letter2" style="left:503px; top:5px; width:56px; height:22px; ">
  258. <caption>확인</caption>
  259. <script type="javascript" ev:event="DOMActivate">
  260. <![CDATA[
  261. var type = model.getValue("/root/fwd/type");
  262. fConfirmAddRow(grd_rcevlist, type);
  263. ]]>
  264. </script>
  265. </button>
  266. <button id="btn_close" class="btn4_letter2" style="left:562px; top:5px; width:56px; height:22px; ">
  267. <caption>닫기</caption>
  268. <script type="javascript" ev:event="DOMActivate">
  269. <![CDATA[
  270. window.close();
  271. ]]>
  272. </script>
  273. </button>
  274. </group>
  275. <group id="group1" style="left:347px; top:0px; width:275px; height:280px; ">
  276. <caption id="caption2" class="tit_2" style="left:5px; top:10px; width:75px; height:13px; ">받는사람</caption>
  277. <caption id="caption3" style="left:80px; top:10px; width:140px; height:14px; ">( 명 / 500명)</caption>
  278. <caption id="opt_rcvcnt" ref="/root/main/rcvcnt" style="left:85px; top:10px; width:40px; height:13px; text-align:right; "/>
  279. <line id="line2" class="line_1" style="x1:0px; y1:26px; x2:270px; y2:26px; "/>
  280. <datagrid id="grd_rcevlist" nodeset="/root/main/list/rcevlist" allowselection="false" caption="^성명^휴대폰^E-mail^우편번호^주소" colwidth="20, 54, 86, 78, 70, 237" dataheight="25" extendlastcol="scroll" frozencols="2" rowheader="seq" rowheight="32" style="left:0px; top:31px; width:270px; height:249px; ">
  281. <col checkvalue="Y,N" ref="chk" type="checkbox" style="text-align:center; "/>
  282. <col ref="innrclntnm" style="text-align:center; "/>
  283. <col ref="mpphontel" format="99999999999" style="text-align:center; "/>
  284. <col ref="email" style="text-align:center; "/>
  285. <col ref="zipcd" format="999999" style="text-align:center; "/>
  286. <col ref="address" style="text-align:center; "/>
  287. </datagrid>
  288. <button id="btn_allchk2" class="btn2_letter2" style="left:0px; top:34px; width:42px; height:19px; ">
  289. <caption>All</caption>
  290. <script type="javascript" ev:event="DOMActivate">
  291. <![CDATA[
  292. fGridAllRow(grd_rcevlist);
  293. ]]>
  294. </script>
  295. </button>
  296. </group>
  297. <group id="group3" style="left:279px; top:115px; width:60px; height:70px; ">
  298. <button id="bnt_add" class="btn1_letter2" style="left:2px; top:8px; width:56px; height:22px; ">
  299. <caption>추가</caption>
  300. <script type="javascript" ev:event="DOMActivate">
  301. <![CDATA[
  302. if (grd_clntlist.row > 0){
  303. fGridRowAddRow(grd_clntlist,grd_rcevlist,"add");
  304. } else {
  305. messageBox("추가할 대상이 없습니다.","E099");
  306. return false;
  307. }
  308. ]]>
  309. </script>
  310. </button>
  311. <button id="btn_del" class="btn6_letter2" style="left:2px; top:38px; width:56px; height:22px; ">
  312. <caption>삭제</caption>
  313. <script type="javascript" ev:event="DOMActivate">
  314. <![CDATA[
  315. if (grd_rcevlist.row > 0){
  316. fGridRowAddRow(grd_rcevlist,grd_clntlist,"del");
  317. } else {
  318. messageBox("삭제할 대상이 없습니다.","E099");
  319. return false;
  320. }
  321. ]]>
  322. </script>
  323. </button>
  324. </group>
  325. </xhtml:body>
  326. </xhtml:html>