SPCCN00600_외부파일가져오기.xfdl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPCCN00600" position="absolute 0 0 640 306" titletext="외부파일 가져오기" oninit="SPCCN00600_oninit" onload="SPCCN00600_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption9" text="파일불러오기" class="tit_2" position="absolute 0 2 110 23"/>
  8. <Edit id="ipt_addfile" taborder="1" class="input_default" position="absolute 0 23 130 42" autoselect="true"/>
  9. <Button id="btn_addfile" taborder="2" text="찾아보기" class="btn2" position="absolute 135 23 199 42" onclick="btn_addfile_onclick"/>
  10. <Button id="btn_sample" taborder="3" text="샘플파일" class="btn2" position="absolute 205 23 269 42" onclick="btn_sample_onclick"/>
  11. <Shape id="line12" linetype="horizontal" class="line_10" position="absolute 0 18 269 24"/>
  12. <Grid id="grd_clntlist" taborder="4" binddataset="ds_main_list_clntlist" useinputpanel="false" position="absolute 0 43 270 255" autoenter="select" cellsizingtype="col">
  13. <Formats>
  14. <Format id="default">
  15. <Columns>
  16. <Column size="24" band="left"/>
  17. <Column size="20" band="left"/>
  18. <Column size="54" band="left"/>
  19. <Column size="86"/>
  20. <Column size="78"/>
  21. <Column size="70"/>
  22. <Column size="237"/>
  23. </Columns>
  24. <Rows>
  25. <Row size="24" band="head"/>
  26. <Row size="24"/>
  27. </Rows>
  28. <Band id="head">
  29. <Cell/>
  30. <Cell col="1"/>
  31. <Cell col="2" text="성명"/>
  32. <Cell col="3" text="휴대폰"/>
  33. <Cell col="4" text="E-mail"/>
  34. <Cell col="5" text="우편번호"/>
  35. <Cell col="6" text="주소"/>
  36. </Band>
  37. <Band id="body">
  38. <Cell celltype="head" expr="currow+1"/>
  39. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'Y' || chk == '1' ? 1 : 0"/>
  40. <Cell col="2" style="align:center middle;" text="bind:innrclntnm"/>
  41. <Cell col="3" style="align:center middle;" text="bind:mpphontel" mask="###########" maskchar=" "/>
  42. <Cell col="4" style="align:center middle;" text="bind:email"/>
  43. <Cell col="5" style="align:center middle;" text="bind:zipcd" mask="######" maskchar=" "/>
  44. <Cell col="6" style="align:center middle;" text="bind:address"/>
  45. </Band>
  46. </Format>
  47. </Formats>
  48. </Grid>
  49. <Button id="btn_all" taborder="5" text="All" class="btn2" position="absolute 0 43 44 68" onclick="btn_all_onclick"/>
  50. <Static id="caption1" text="총 명" position="absolute 196 259 266 274"/>
  51. <Edit id="opt_clncnt" taborder="6" readonly="true" position="absolute 209 256 244 275" autoselect="true" style="align:right middle;"/>
  52. <Button id="btn_conform" taborder="7" text="확인" class="btn4" position="absolute 517 278 573 300" onclick="btn_conform_onclick"/>
  53. <Button id="btn_close" taborder="8" text="닫기" class="btn4" position="absolute 574 278 630 300" onclick="btn_close_onclick"/>
  54. <Static id="caption2" text="받는사람" class="tit_2" position="absolute 361 2 436 23"/>
  55. <Static id="caption3" text="( 명 / 500명)" position="absolute 440 3 580 17"/>
  56. <Static id="opt_rcvcnt" position="absolute 446 4 478 17" style="align:right middle;"/>
  57. <Shape id="line2" linetype="horizontal" class="line_10" position="absolute 360 18 630 24"/>
  58. <Grid id="grd_rcevlist" taborder="9" binddataset="ds_main_list_rcevlist" useinputpanel="false" position="absolute 360 23 630 272" autoenter="select" cellsizingtype="col">
  59. <Formats>
  60. <Format id="default">
  61. <Columns>
  62. <Column size="27" band="left"/>
  63. <Column size="20" band="left"/>
  64. <Column size="54" band="left"/>
  65. <Column size="86"/>
  66. <Column size="78"/>
  67. <Column size="70"/>
  68. <Column size="237"/>
  69. </Columns>
  70. <Rows>
  71. <Row size="24" band="head"/>
  72. <Row size="24"/>
  73. </Rows>
  74. <Band id="head">
  75. <Cell/>
  76. <Cell col="1"/>
  77. <Cell col="2" text="성명"/>
  78. <Cell col="3" text="휴대폰"/>
  79. <Cell col="4" text="E-mail"/>
  80. <Cell col="5" text="우편번호"/>
  81. <Cell col="6" text="주소"/>
  82. </Band>
  83. <Band id="body">
  84. <Cell celltype="head" expr="currow+1"/>
  85. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'Y' || chk == '1' ? 1 : 0"/>
  86. <Cell col="2" style="align:center middle;" text="bind:innrclntnm"/>
  87. <Cell col="3" style="align:center middle;" text="bind:mpphontel" mask="###########" maskchar=" "/>
  88. <Cell col="4" style="align:center middle;" text="bind:email"/>
  89. <Cell col="5" style="align:center middle;" text="bind:zipcd" mask="######" maskchar=" "/>
  90. <Cell col="6" style="align:center middle;" text="bind:address"/>
  91. </Band>
  92. </Format>
  93. </Formats>
  94. </Grid>
  95. <Button id="btn_allchk2" taborder="10" text="All" class="btn2" position="absolute 360 23 407 48" onclick="btn_allchk2_onclick"/>
  96. <Button id="bnt_add" taborder="11" text="추가" class="btn4" position="absolute 286 112 342 134" onclick="bnt_add_onclick"/>
  97. <Button id="btn_del" taborder="12" text="삭제" class="btn3" position="absolute 286 142 342 164" onclick="btn_del_onclick"/>
  98. </Layout>
  99. </Layouts>
  100. <Objects>
  101. <Dataset id="ds_main_search" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  102. <ColumnInfo>
  103. <Column id="filenm" type="STRING" size="256"/>
  104. </ColumnInfo>
  105. <Rows>
  106. <Row/>
  107. </Rows>
  108. </Dataset>
  109. <Dataset id="ds_main" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  110. <ColumnInfo>
  111. <Column id="rcvcnt" type="STRING" size="256"/>
  112. <Column id="clncnt" type="STRING" size="256"/>
  113. </ColumnInfo>
  114. <Rows>
  115. <Row>
  116. <Col id="rcvcnt">0</Col>
  117. <Col id="clncnt">0</Col>
  118. </Row>
  119. </Rows>
  120. </Dataset>
  121. <Dataset id="ds_main_list_clntlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_list_clntlist_oncolumnchanged">
  122. <ColumnInfo>
  123. <Column id="chk" type="STRING" size="256"/>
  124. <Column id="innrclntnm" type="STRING" size="256"/>
  125. <Column id="mpphontel" type="STRING" size="256"/>
  126. <Column id="email" type="STRING" size="256"/>
  127. <Column id="zipcd" type="STRING" size="256"/>
  128. <Column id="address" type="STRING" size="256"/>
  129. <Column id="addyn" type="STRING" size="256"/>
  130. </ColumnInfo>
  131. <Rows>
  132. <Row>
  133. <Col id="chk">N</Col>
  134. <Col id="innrclntnm"/>
  135. <Col id="mpphontel"/>
  136. <Col id="email"/>
  137. <Col id="zipcd"/>
  138. <Col id="address"/>
  139. <Col id="addyn"/>
  140. </Row>
  141. </Rows>
  142. </Dataset>
  143. <Dataset id="ds_main_list_rcevlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_list_rcevlist_oncolumnchanged">
  144. <ColumnInfo>
  145. <Column id="chk" type="STRING" size="256"/>
  146. <Column id="innrclntnm" type="STRING" size="256"/>
  147. <Column id="mpphontel" type="STRING" size="256"/>
  148. <Column id="email" type="STRING" size="256"/>
  149. <Column id="zipcd" type="STRING" size="256"/>
  150. <Column id="address" type="STRING" size="256"/>
  151. </ColumnInfo>
  152. <Rows>
  153. <Row>
  154. <Col id="chk">N</Col>
  155. <Col id="innrclntnm"/>
  156. <Col id="mpphontel"/>
  157. <Col id="email"/>
  158. <Col id="zipcd"/>
  159. <Col id="address"/>
  160. </Row>
  161. </Rows>
  162. </Dataset>
  163. <Dataset id="ds_fwd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  164. </Objects>
  165. <Bind>
  166. <BindItem id="item0" compid="ipt_addfile" propid="value" datasetid="ds_main_search" columnid="filenm"/>
  167. <BindItem id="item1" compid="opt_rcvcnt" propid="text" datasetid="ds_main" columnid="rcvcnt"/>
  168. <BindItem id="item2" compid="opt_clncnt" propid="value" datasetid="ds_main" columnid="clncnt"/>
  169. </Bind>
  170. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  171. * System Name :
  172. * Job Name :
  173. * Creator :
  174. * Make Date : 2016-05-24
  175. * Description :
  176. *---------------------------------------------------------------------------------------
  177. * Modify Date Modifier Modify Description
  178. *---------------------------------------------------------------------------------------
  179. * 2016-05-24 Live Converter TF->XP
  180. *
  181. *---------------------------------------------------------------------------------------
  182. ****************************************************************************************/
  183. include "com_commonxp::comm_main.xjs";
  184. function SPCCN00600_oninit(obj:Form, e:InitEventInfo)
  185. {
  186. frmf_initForm(obj);
  187. }
  188. function SPCCN00600_onload(obj:Form, e:LoadEventInfo)
  189. {
  190. grdf_initGrid(grd_clntlist);
  191. grdf_initGrid(grd_rcevlist);
  192. try
  193. {
  194. ds_fwd.copyData(arg_ds_fwd);
  195. }
  196. catch(e){}
  197. ds_main_list_clntlist.clearData();
  198. ds_main_list_rcevlist.clearData();
  199. }
  200. function btn_addfile_onclick(obj:Button, e:ClickEventInfo)
  201. {
  202. grdf_ImportExcel("ds_main_list_clntlist", 0, grd_clntlist, 0);
  203. }
  204. function btn_sample_onclick(obj:Button, e:ClickEventInfo)
  205. {
  206. grdf_exportExcel(grd_clntlist, "파일불러오기샘플", "주소록", "true", "", "");
  207. }
  208. function btn_all_onclick(obj:Button, e:ClickEventInfo)
  209. {
  210. fGridAllRow(grd_clntlist);
  211. }
  212. function btn_allchk2_onclick(obj:Button, e:ClickEventInfo)
  213. {
  214. fGridAllRow(grd_rcevlist);
  215. }
  216. function fGridAllRow(grid)
  217. {
  218. var rows = this.objects[grid.binddataset].rowcount;
  219. var fRow = 0;
  220. var chk = this.objects[grid.binddataset].getColumn(0, "chk");
  221. if(chk == "Y")
  222. {
  223. for(var i = fRow; i < rows; i++)
  224. {
  225. this.objects[grid.binddataset].setColumn(i, "chk", "N");
  226. }
  227. }
  228. else
  229. {
  230. for(var i = fRow; i < rows; i++)
  231. {
  232. this.objects[grid.binddataset].setColumn(i, "chk", "Y");
  233. }
  234. }
  235. }
  236. function ds_main_list_clntlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  237. {
  238. if(e.columnid == "chk")
  239. {
  240. obj.setColumn(e.row, "chk", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  241. }
  242. }
  243. function ds_main_list_rcevlist_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  244. {
  245. if(e.columnid == "chk")
  246. {
  247. obj.setColumn(e.row, "chk", (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  248. }
  249. }
  250. function bnt_add_onclick(obj:Button, e:ClickEventInfo)
  251. {
  252. if (ds_main_list_clntlist.rowposition >= 0)
  253. {
  254. fGridRowAddRow(grd_clntlist,grd_rcevlist,"add");
  255. }
  256. else
  257. {
  258. sysf_messageBox("추가할 대상이 없습니다.","E099");
  259. return false;
  260. }
  261. }
  262. function btn_del_onclick(obj:Button, e:ClickEventInfo)
  263. {
  264. if (ds_main_list_rcevlist.rowposition >= 0)
  265. {
  266. fGridRowAddRow(grd_rcevlist,grd_clntlist,"del");
  267. }
  268. else
  269. {
  270. sysf_messageBox("삭제할 대상이 없습니다.","E099");
  271. return false;
  272. }
  273. }
  274. function fGridRowAddRow(sndGrid, rcvGrid, type)
  275. {
  276. var sndDataset = this.objects[sndGrid.binddataset];
  277. var rcvDataset = this.objects[rcvGrid.binddataset];
  278. var sRows = sndDataset.rowcount
  279. var sfRow = 0
  280. var cntRows = sndDataset.rowcount;
  281. var rRows = rcvDataset.rowcount;
  282. for(var i = sfRow; i < sRows; i++)
  283. {
  284. if(sndDataset.getColumn(i, "chk") == "Y" )
  285. {
  286. var addRow = rcvDataset.addRow();
  287. rcvDataset.setColumn(addRow, "innrclntnm", sndDataset.getColumn(i, "innrclntnm"));
  288. rcvDataset.setColumn(addRow, "mpphontel", sndDataset.getColumn(i, "mpphontel"));
  289. rcvDataset.setColumn(addRow, "email", sndDataset.getColumn(i, "email"));
  290. rcvDataset.setColumn(addRow, "zipcd", sndDataset.getColumn(i, "zipcd"));
  291. rcvDataset.setColumn(addRow, "address", sndDataset.getColumn(i, "address"));
  292. }
  293. }
  294. //추가된 사람 목록삭제
  295. for(var j = sRows; j >= sfRow; j--)
  296. {
  297. if(sndDataset.getColumn(j, "chk") == "Y")
  298. {
  299. sndDataset.deleteRow(j);
  300. cntRows--;
  301. }
  302. }
  303. if(type == "add")
  304. {
  305. ds_main.setColumn(0, "rcvcnt",rRows);//수신인 숫자
  306. ds_main.setColumn(0, "clncnt",cntRows);//파일사람 숫자
  307. }
  308. else
  309. {
  310. ds_main.setColumn(0, "rcvcnt",cntRows);//수신인 숫자
  311. ds_main.setColumn(0, "clncnt",rRows);//파일사람 숫자
  312. }
  313. }
  314. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  315. {
  316. this.close();
  317. }
  318. function btn_conform_onclick(obj:Button, e:ClickEventInfo)
  319. {
  320. var type = ds_fwd.getColumn(0, "type");
  321. fConfirmAddRow(grd_rcevlist, type);
  322. }
  323. function fConfirmAddRow(grid, type)
  324. {
  325. var rows = this.objects[grid.binddataset].rowcount;
  326. var fRow = 0;
  327. var chckTemp = "N";
  328. if(fRow < rows)
  329. {
  330. if(type == "sms")//문자
  331. {
  332. var pGrid = opener.ds_main_recvrinfo_recvrlist; //parent.grd_recvrlist;
  333. var pfRow = 0;
  334. for(var i = fRow; i < rows; i++)
  335. {
  336. var prows = pGrid.addRow();
  337. pGrid.setColumn(prows, "recvrnm", this.objects[grid.binddataset].getColumn(i, "innrclntnm"));
  338. pGrid.setColumn(prows, "recvrtelno", this.objects[grid.binddataset].getColumn(i, "mpphontel"));
  339. }
  340. }
  341. else if(type == "email") // 메일
  342. {
  343. var email="";
  344. for(var i = fRow; i < rows; i++)
  345. {
  346. email += this.objects[grid.binddataset].getColumn(i, "email");
  347. email +=";";
  348. }
  349. opener.ds_main_emailattr.setColumn(0, "recvremail",email);
  350. }
  351. else if(type == "refemail") // 참조메일
  352. {
  353. var email="";
  354. for(var i = fRow; i < rows; i++)
  355. {
  356. email += this.objects[grid.binddataset].getColumn(i, "email");
  357. email +=";";
  358. }
  359. opener.ds_main_emailattr.setColumn(0, "refemail",email);
  360. }
  361. else //DM
  362. {
  363. var pGrid = opener.ds_main_recvrinfo_recvrlist; //parent.grd_recvrlist;
  364. var pfRow = 0; //parent.grd_recvrlist.fixedRows;
  365. for(var i = fRow; i < rows; i++)
  366. {
  367. var prows = pGrid.addRow();
  368. pGrid.setColumn(prows, "recvrnm", this.objects[grid.binddataset].getColumn(i, "innrclntnm"));
  369. pGrid.setColumn(prows, "recvrzipcd", this.objects[grid.binddataset].getColumn(i, "zipcd"));
  370. pGrid.setColumn(prows, "recvraddr", this.objects[grid.binddataset].getColumn(i, "address"));
  371. }
  372. }
  373. }
  374. else
  375. {
  376. sysf_messageBox("받는 사람이 추가되지", "E007");
  377. return;
  378. }
  379. this.close();
  380. }
  381. ]]></Script>
  382. </Form>
  383. </FDL>