SPCCN00300_DM발송.xrw 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * Name : SPCCN00300_DM전송
  4. * Summary : DM전송
  5. * Programmer : 최정환
  6. * Date Written : 2007.08.20
  7. * History : 2007.08.20
  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>DM출력</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <dmattr>
  19. <trsmdd/>
  20. <trsmdt/>
  21. <bizflag/>
  22. <replzipcd1/>
  23. <replzipcd2/>
  24. <replzipcdseq/>
  25. <replzipcdaddr/>
  26. <repldetladdr/>
  27. <replzipcd/>
  28. <repladdr/>
  29. <replnm/>
  30. <delivetitl/>
  31. <delivecnts/>
  32. <delivesigncnts/>
  33. <msglrgcd/>
  34. <msgmdlcd/>
  35. <msgsmlcd/>
  36. <labelpaper/>
  37. <recvrlist/>
  38. </dmattr>
  39. <msgsmllist>
  40. <msgsmlcd/>
  41. <dmtitl/>
  42. </msgsmllist>
  43. <recvrinfo>
  44. <recvrlist>
  45. <chk>N</chk>
  46. <recvrnm/>
  47. <recvrzipcd/>
  48. <recvraddr/>
  49. <recvrpid/>
  50. </recvrlist>
  51. </recvrinfo>
  52. </main>
  53. <focusid/>
  54. <send>
  55. <info>
  56. <msglrgcd/>
  57. <msgmdlcd/>
  58. <msgsmlcd/>
  59. <chnlflag/>
  60. </info>
  61. </send>
  62. <init>
  63. <chnllrglist>
  64. <chnllrggrup>
  65. <msglrgnm/>
  66. <msglrgcd/>
  67. </chnllrggrup>
  68. </chnllrglist>
  69. <chnlmdllist>
  70. <chnlmdlgrup>
  71. <msgmdlnm/>
  72. <msgmdlcd/>
  73. <msglrgcd/>
  74. </chnlmdlgrup>
  75. </chnlmdllist>
  76. </init>
  77. <temp>
  78. <dmattr>
  79. <msgsmlcd/>
  80. <dmtitl/>
  81. <dmbdtext/>
  82. <dmsigntext/>
  83. <msglrgcd/>
  84. <msgmdlcd/>
  85. <replzipcd1/>
  86. <replzipcd2/>
  87. <replzipcdseq/>
  88. <replzipcdaddr/>
  89. <repldetladdr/>
  90. <replnm/>
  91. </dmattr>
  92. </temp>
  93. <hidden/>
  94. <fwd>
  95. <type>dm</type>
  96. </fwd>
  97. </root>
  98. </instance>
  99. <submission id="TRCNS00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/info" resultref="/root/init/chnllrglist/chnllrggrup"/>
  100. <submission id="TRCNS00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/info" replace="instance" resultref="/root/init/chnlmdllist/chnlmdlgrup"/>
  101. <submission id="TRCCN00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/info" replace="instance" resultref="/root/main/msgsmllist"/>
  102. <submission id="TRCCN00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/info" replace="instance" resultref="/root/temp/dmattr"/>
  103. <submission id="TXCCN00301" mediatype="multipart/form-data" method="form-data-post" ref="/root/main/dmattr" resultref="/root/hidden"/>
  104. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  105. <script type="javascript" ev:event="xforms-ready">
  106. <![CDATA[
  107. // DM탬플릿 그리드의 col을 초기화 시켜준다.
  108. model.removenodeset("/root/main/msgsmllist");
  109. // 메시지 분류코드 설정 (DM : D)
  110. model.setValue("/root/send/info/chnlflag", "D");
  111. // 메시지 대그룹을 가져온다
  112. submit("TRCNS00201");
  113. // 수동전송은 업무구분을 무조건 2로 한다.
  114. model.setValue("/root/main/dmattr/bizflag", "2");
  115. // 용지선택의 기본값을 정해준다.
  116. model.setValue("/root/main/dmattr/labelpaper", "A");
  117. model.refresh();
  118. ]]>
  119. </script>
  120. <script type="javascript">
  121. <![CDATA[
  122. // 선택한 채널관리 대분류에 따른 채널관리 중분류를 가져온다.
  123. function fGetChnlMdlCd() {
  124. var msglrgcd = model.getValue("/root/main/dmattr/msglrgcd");
  125. model.setValue("/root/send/info/msglrgcd",msglrgcd);
  126. submit("TRCNS00202");
  127. }
  128. // 선택한 채널관리 중분류에 따른 메시지 리스트를 가져온다.
  129. function fGetChnlSmlCd() {
  130. var msgmdlcd = model.getValue("/root/main/dmattr/msgmdlcd");
  131. model.setValue("/root/send/info/msgmdlcd",msgmdlcd);
  132. submit("TRCCN00101");
  133. }
  134. // DM정보조회
  135. function fGetDMAttr() {
  136. var row = grd_msglist.row;
  137. // 선택한 채널관리 리스트항목의 대분류에 따른 채널관리 중분류를 가져온다.
  138. var msgsmlcd = grd_msglist.valueMatrix(row, grd_msglist.colRef("msgsmlcd"));
  139. if (msgsmlcd != "") {
  140. model.setValue("/root/send/info/msgsmlcd", msgsmlcd);
  141. submit("TRCCN00301");
  142. var msgsmlcd = model.getValue("/root/temp/dmattr/msgsmlcd");
  143. var dmtitl = model.getValue("/root/temp/dmattr/dmtitl");
  144. var dmbdtext = model.getValue("/root/temp/dmattr/dmbdtext");
  145. var msglrgcd = model.getValue("/root/temp/dmattr/msglrgcd");
  146. var msgmdlcd = model.getValue("/root/temp/dmattr/msgmdlcd");
  147. var dmsigntext = model.getValue("/root/temp/dmattr/dmsigntext");
  148. var replzipcd1 = model.getValue("/root/temp/dmattr/replzipcd1");
  149. var replzipcd2 = model.getValue("/root/temp/dmattr/replzipcd2");
  150. var replzipcdseq = model.getValue("/root/temp/dmattr/replzipcdseq");
  151. var replzipcdaddr = model.getValue("/root/temp/dmattr/replzipcdaddr");
  152. var repldetladdr = model.getValue("/root/temp/dmattr/repldetladdr");
  153. var replnm = model.getValue("/root/temp/dmattr/replnm");
  154. model.setValue("/root/main/dmattr/msgsmlcd", msgsmlcd);
  155. model.setValue("/root/main/dmattr/delivetitl", dmtitl);
  156. model.setValue("/root/main/dmattr/delivecnts", dmbdtext);
  157. model.setValue("/root/main/dmattr/msglrgcd", msglrgcd);
  158. model.setValue("/root/main/dmattr/msgmdlcd", msgmdlcd);
  159. model.setValue("/root/main/dmattr/delivesigncnts", dmsigntext);
  160. model.setValue("/root/main/dmattr/replzipcd1", replzipcd1);
  161. model.setValue("/root/main/dmattr/replzipcd2", replzipcd2);
  162. model.setValue("/root/main/dmattr/replzipcdseq", replzipcdseq);
  163. model.setValue("/root/main/dmattr/replzipcdaddr", replzipcdaddr);
  164. model.setValue("/root/main/dmattr/repldetladdr", repldetladdr);
  165. model.setValue("/root/main/dmattr/replnm", replnm);
  166. model.refresh();
  167. }
  168. }
  169. // 그리드에 선택한 수신자를 삭제하는 함수
  170. function fgriddelete(grid) {
  171. var cur_row = grid.row; // 행 번호 가져오기
  172. var iStatus = grid.rowstatus(cur_row);
  173. var d_cnt = 0;
  174. var selectedRows = new Array();
  175. for (var i=grid.fixedRows; i<grid.rows; i++)
  176. {
  177. var chk = model.getValue("/root/main/recvrinfo/recvrlist["+i+"]/chk");
  178. if (chk == "Y")
  179. {
  180. selectedRows[d_cnt++] = i;
  181. }
  182. }
  183. if(d_cnt == 0) {
  184. messageBox("삭제할 행을", "C002");
  185. return;
  186. }
  187. for (var i=d_cnt-1; i>=0; i--)
  188. {
  189. grid.deleterow(selectedRows[i],false);
  190. }
  191. model.refresh();
  192. }
  193. // DM 전송
  194. function fDMSubmit() {
  195. if(isRequiredControls("ipt_dmtitl", "tar_dmbdtext")) {
  196. // 전송일자를 입력해준다.
  197. model.setValue("/root/main/dmattr/trsmdd",getCurrentDate());
  198. // 전송시간을 입력해준다.
  199. var getdate = getCurrentTime();
  200. var trsmdt = getdate.substring(0,4);
  201. model.setValue("/root/main/dmattr/trsmdt", trsmdt);
  202. // 회신자 우편번호 및 주소를 합친다.
  203. var replzipcd1 = model.getValue("/root/main/dmattr/replzipcd1");
  204. var replzipcd2 = model.getValue("/root/main/dmattr/replzipcd2");
  205. model.setValue("/root/main/dmattr/replzipcd", replzipcd1 + replzipcd2);
  206. var replzipaddr = model.getValue("/root/temp/dmattr/replzipcdaddr");
  207. var detladdr = model.getValue("/root/main/dmattr/repldetladdr");
  208. model.setValue("/root/main/dmattr/repladdr", replzipaddr + " " + detladdr);
  209. // 수신자 리스트가 담긴의 그리드를 체크한다.
  210. var nodeset = grd_recvrlist.nodeset;
  211. var recvrnm;
  212. var recvrzipcd;
  213. var recvraddr;
  214. var recvrpid;
  215. var cnt = 0;
  216. for (i=grd_recvrlist.fixedRows; i<grd_recvrlist.rows; i++)
  217. {
  218. cnt++;
  219. recvrnm = model.getValue("/root/main/recvrinfo/recvrlist["+cnt+"]/recvrnm");
  220. recvrzipcd = model.getValue("/root/main/recvrinfo/recvrlist["+cnt+"]/recvrzipcd");
  221. recvraddr = model.getValue("/root/main/recvrinfo/recvrlist["+cnt+"]/recvraddr");
  222. recvrpid = model.getValue("/root/main/recvrinfo/recvrlist["+cnt+"]/recvrpid");
  223. if(recvrnm.getTrim()=="")
  224. {
  225. messageBox(cnt+" 번째 수신자 이름을 ", "C001");
  226. grd_recvrlist.row = i;
  227. return;
  228. }
  229. if(recvrzipcd.length <6)
  230. {
  231. messageBox(cnt+" 번째 수신자 우편번호를 ", "C001");
  232. grd_recvrlist.row = i;
  233. return;
  234. }
  235. if(recvraddr.length <10)
  236. {
  237. messageBox(cnt+" 번째 수신자 주소를 ", "C001");
  238. grd_recvrlist.row = i;
  239. return;
  240. }
  241. }
  242. var nodeList = instance1.selectNodes("/root/main/recvrinfo/recvrlist");
  243. var rCSV = getNodeListCSV(nodeList);
  244. model.setValue("/root/main/dmattr/recvrlist", rCSV);
  245. var labelpaper = model.getValue("/root/main/dmattr/labelpaper");
  246. var s_replzipcd1 = model.getValue("/root/main/dmattr/replzipcd1");
  247. var s_replzipcd2 = model.getValue("/root/main/dmattr/replzipcd2");
  248. var s_repldetladdr = model.getValue("/root/main/dmattr/repldetladdr");
  249. var s_replnm = model.getValue("/root/main/dmattr/replnm");
  250. if (labelpaper == "A") {
  251. if ((s_replzipcd1 == "") || (s_replzipcd2 == "")){
  252. messageBox("발신자 주소를", "C001");
  253. model.setFocus("btnicon_search3");
  254. return false;
  255. } else if (s_repldetladdr == "") {
  256. var rtn = messageBox("상세주소가 없습니다. 상세주소 없이 ", "Q003");
  257. if(rtn == 6){
  258. } else {
  259. model.setFocus("ipt_detladdr");
  260. return false;
  261. }
  262. } else if (s_replnm == "") {
  263. var rtn = messageBox("발신자 이름이 없습니다. 발신자 이름 없이 ", "Q003");
  264. if(rtn == 6){
  265. } else {
  266. model.setFocus("ipt_rplenm");
  267. return false;
  268. }
  269. }
  270. exeReportPreview("RPCCN00300", "XMLSTR", "/root/main/recvrinfo/recvrlist");
  271. } else if (labelpaper == "B") {
  272. if ((s_replzipcd1 == "") || (s_replzipcd2 == "")){
  273. messageBox("발신자 주소를", "C001");
  274. model.setFocus("btnicon_search3");
  275. return false;
  276. } else if (s_repldetladdr == "") {
  277. var rtn = messageBox("상세주소가 없습니다. 상세주소 없이 ", "Q003");
  278. if(rtn == 6){
  279. } else {
  280. model.setFocus("ipt_detladdr");
  281. return false;
  282. }
  283. } else if (s_replnm == "") {
  284. var rtn = messageBox("발신자 이름이 없습니다. 발신자 이름 없이 ", "Q003");
  285. if(rtn == 6){
  286. } else {
  287. model.setFocus("ipt_rplenm");
  288. return false;
  289. }
  290. }
  291. exeReportPreview("RPCCN00303", "XMLSTR", "/root/main/recvrinfo/recvrlist");
  292. } else if (labelpaper == "X") {
  293. exeReportPreview("RPCCN00301", "XMLSTR", "/root/main/recvrinfo/recvrlist");
  294. } else if (labelpaper == "Y") {
  295. exeReportPreview("RPCCN00302", "XMLSTR", "/root/main/recvrinfo/recvrlist");
  296. } else {
  297. messageBox("출력할 용지를", "C002");
  298. return;
  299. }
  300. submit("TXCCN00301");
  301. messageBox("DM 출력 요청이 등록","I001");
  302. }
  303. }
  304. ]]>
  305. </script>
  306. </model>
  307. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  308. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  309. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  310. </xhtml:head>
  311. <xhtml:body pagewidth="600" pageheight="720" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  312. <group id="grp_tmpl" scroll="auto" style="left:0px; top:0px; width:420px; height:200px; ">
  313. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:95px; height:14px; ">DM템플릿</caption>
  314. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:420px; y2:25px; "/>
  315. <line id="line3" class="line_2" style="x1:0px; y1:53px; x2:420px; y2:53px; "/>
  316. <caption id="cap_dtmntitl" class="cell_1" style="left:0px; top:30px; width:105px; height:23px; text-align:center; vertical-align:middle; ">그룹</caption>
  317. <select1 id="cmb_msglrgcd" ref="/root/main/dmattr/msglrgcd" class="combo_default" appearance="minimal" style="left:108px; top:31px; width:150px; height:19px; ">
  318. <choices>
  319. <itemset nodeset="/root/init/chnllrglist/chnllrggrup">
  320. <label ref="msglrgnm"/>
  321. <value ref="msglrgcd"/>
  322. </itemset>
  323. </choices>
  324. <script type="javascript" ev:event="xforms-select">
  325. <![CDATA[
  326. // 기존에 선택된 중분류를 초기화한다.
  327. model.removenodeset("/root/init/chnlmdllist/chnlmdlgrup");
  328. // 선택한 채널관리 대분류에 따른 채널관리 중분류를 가져온다.
  329. fGetChnlMdlCd();
  330. model.setFocus("cmb_msgmdlcd");
  331. ]]>
  332. </script>
  333. </select1>
  334. <select1 id="cmb_msgmdlcd" ref="/root/main/dmattr/msgmdlcd" class="combo_default" appearance="minimal" style="left:261px; top:31px; width:150px; height:19px; ">
  335. <choices>
  336. <itemset nodeset="/root/init/chnlmdllist/chnlmdlgrup">
  337. <label ref="msgmdlnm"/>
  338. <value ref="msgmdlcd"/>
  339. </itemset>
  340. </choices>
  341. <script type="javascript" ev:event="xforms-select">
  342. <![CDATA[
  343. // 메시지 리스트를 초기화한다.
  344. model.removenodeset("/root/main/msgsmllist");
  345. // 선택한 채널관리 대분류에 따른 채널관리 중분류를 가져온다.
  346. fGetChnlSmlCd();
  347. ]]>
  348. </script>
  349. </select1>
  350. <datagrid id="grd_msglist" nodeset="/root/main/msgsmllist" caption="메시지코드^DM제목^" colwidth="113, 269" dataheight="23" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" tooltip="true" style="left:0px; top:57px; width:420px; height:143px; ">
  351. <col ref="msgsmlcd"/>
  352. <col ref="dmtitl"/>
  353. <script type="javascript" ev:event="ondblclick">
  354. <![CDATA[
  355. if( grd_msglist.isCell(event.target) && grd_msglist.row >= grd_msglist.fixedRows ){
  356. fGetDMAttr(); // DM메시지 정보조회
  357. }
  358. ]]>
  359. </script>
  360. </datagrid>
  361. </group>
  362. <group id="grp_biz" scroll="auto" style="left:0px; top:200px; width:580px; height:285px; ">
  363. <caption id="caption2" class="tit_2" style="left:5px; top:10px; width:95px; height:14px; ">DM출력</caption>
  364. <button id="btn_init" class="btn2_letter3" style="left:527px; top:5px; width:53px; height:19px; ">
  365. <caption>초기화</caption>
  366. <script type="javascript" ev:event="DOMActivate">
  367. <![CDATA[
  368. // 해당인스턴스의 값을 지운다
  369. model.setValue("/root/main/dmattr/msgsmlcd", "");
  370. model.setValue("/root/main/dmattr/delivetitl", "");
  371. model.setValue("/root/main/dmattr/delivecnts", "");
  372. model.setValue("/root/main/dmattr/delivesigncnts", "");
  373. model.setValue("/root/main/dmattr/msglrgcd", "");
  374. model.setValue("/root/main/dmattr/msgmdlcd", "");
  375. model.setValue("/root/main/dmattr/replzipcd1", "");
  376. model.setValue("/root/main/dmattr/replzipcd2", "");
  377. model.setValue("/root/main/dmattr/replzipcdaddr", "");
  378. //model.setValue("/root/main/dmattr/detladdr", "");
  379. model.setValue("/root/main/dmattr/labelpaper", "A");
  380. model.refresh();
  381. ]]>
  382. </script>
  383. </button>
  384. <line id="line4" class="line_1" style="x1:0px; y1:25px; x2:580px; y2:25px; "/>
  385. <line id="line7" class="line_2" style="x1:0px; y1:124px; x2:580px; y2:124px; "/>
  386. <line id="line8" class="line_2" style="x1:0px; y1:247px; x2:580px; y2:247px; "/>
  387. <caption id="cap_zipcdaddr" class="cell_1" style="left:0px; top:77px; width:90px; height:48px; text-align:center; vertical-align:middle; ">발신정보</caption>
  388. <output id="ipt_zipcd1" ref="/root/main/dmattr/replzipcd1" class="output_fix" style="left:93px; top:78px; width:45px; height:19px; "/>
  389. <output id="ipt_zipcd2" ref="/root/main/dmattr/replzipcd2" class="output_fix" style="left:141px; top:78px; width:45px; height:19px; "/>
  390. <button id="btnicon_search3" class="icon_search" style="left:193px; top:79px; width:16px; height:16px; ">
  391. <caption/>
  392. <script type="javascript" ev:event="DOMActivate">
  393. <![CDATA[
  394. var search_condition = "srchzipcd";
  395. var search_term1 = model.getValue("/root/main/msgtmpl/replzipcd1");
  396. var search_term2 = model.getValue("/root/main/msgtmpl/replzipcd2");
  397. var search_term = search_term1 + "-" + search_term2;
  398. var receive_zipcd1_path = "/root/main/dmattr/replzipcd1";
  399. var receive_zipcd2_path = "/root/main/dmattr/replzipcd2";
  400. var receive_zipcdseq_path = "/root/main/dmattr/replzipcdseq";
  401. var receive_zipcdaddr_path = "/root/main/dmattr/replzipcdaddr";
  402. setParameter("search_condition", search_condition);
  403. setParameter("search_term", search_term);
  404. setParameter("receive_zipcd1_path", receive_zipcd1_path);
  405. setParameter("receive_zipcd2_path", receive_zipcd2_path);
  406. setParameter("receive_zipcdseq_path", receive_zipcdseq_path);
  407. setParameter("receive_zipcdaddr_path", receive_zipcdaddr_path);
  408. modal("SPCCM00200")
  409. clearParameter("search_condition");
  410. clearParameter("search_term");
  411. clearParameter("receive_zipcd1_path");
  412. clearParameter("receive_zipcd2_path");
  413. clearParameter("receive_zipcdseq_path");
  414. clearParameter("receive_zipcdaddr_path");
  415. ]]>
  416. </script>
  417. </button>
  418. <output id="ipt_zipcdaddr" ref="/root/main/dmattr/replzipcdaddr" class="output_fix" style="left:213px; top:78px; width:367px; height:19px; "/>
  419. <input id="ipt_detladdr" ref="/root/main/dmattr/repldetladdr" class="input_default" style="left:93px; top:102px; width:362px; height:19px; "/>
  420. <input id="ipt_rplenm" ref="/root/main/dmattr/replnm" class="input_default" maxlength="25" style="left:458px; top:102px; width:120px; height:19px; ">
  421. <hint>
  422. <![CDATA[발신인]]>
  423. </hint>
  424. </input>
  425. <line id="line6" class="line_2" style="x1:0px; y1:74px; x2:580px; y2:74px; "/>
  426. <caption id="cap_dmtitl" class="cell_1" style="left:0px; top:53px; width:90px; height:23px; text-align:center; vertical-align:middle; ">DM제목</caption>
  427. <input id="ipt_dmtitl" ref="/root/main/dmattr/delivetitl" class="input_essential" navindex="3" style="left:93px; top:54px; width:487px; height:19px; "/>
  428. <line id="line2" class="line_3" style="x1:0px; y1:283px; x2:580px; y2:283px; "/>
  429. <caption id="cap_dmbdtext" class="cell_1" style="left:0px; top:126px; width:90px; height:122px; text-align:center; vertical-align:middle; ">DM본문내용</caption>
  430. <textarea id="tar_dmbdtext" ref="/root/main/dmattr/delivecnts" class="text_essential" navindex="4" style="left:93px; top:127px; width:487px; height:119px; ">
  431. <script type="javascript" ev:event="DOMFocusIn">
  432. <![CDATA[
  433. model.setValue("/root/focusid", event.focus)
  434. ]]>
  435. </script>
  436. </textarea>
  437. <caption id="caption6" class="cell_1" style="left:0px; top:249px; width:90px; height:34px; text-align:center; vertical-align:middle; ">DM서명내용</caption>
  438. <textarea id="tar_dmsigntext" ref="/root/main/dmattr/delivesigncnts" class="input_default" navindex="4" style="left:93px; top:249px; width:487px; height:33px; ">
  439. <script type="javascript" ev:event="DOMFocusIn">
  440. <![CDATA[
  441. model.setValue("/root/focusid", event.focus)
  442. ]]>
  443. </script>
  444. </textarea>
  445. <line id="line9" class="line_2" style="x1:0px; y1:51px; x2:580px; y2:51px; "/>
  446. <caption id="caption3" class="cell_1" style="left:0px; top:29px; width:90px; height:23px; text-align:center; vertical-align:middle; ">용지선택</caption>
  447. <select1 id="rdo_labelpaper" ref="/root/main/dmattr/labelpaper" navindex="13" appearance="full" cellspacing="15" cols="4" overflow="visible" style="left:93px; top:30px; width:395px; height:19px; background-color:transparent; border-style:none; ">
  448. <choices>
  449. <item>
  450. <label>DM용지1</label>
  451. <value>A</value>
  452. </item>
  453. <item>
  454. <label>DM용지2</label>
  455. <value>B</value>
  456. </item>
  457. <item>
  458. <label>라벨용지(16칸)</label>
  459. <value>X</value>
  460. </item>
  461. <item>
  462. <label>라벨용지(14칸)</label>
  463. <value>Y</value>
  464. </item>
  465. </choices>
  466. <script type="javascript" ev:event="xforms-value-changed">
  467. <![CDATA[
  468. var sLabelpaper = model.getValue("/root/main/dmattr/labelpaper");
  469. if (sLabelpaper == "X"){
  470. model.setValue("/root/main/dmattr/delivetitl", getCurrentDate() + "_라벨용지(16칸) 출력");
  471. model.setValue("/root/main/dmattr/delivecnts", "라벨용지(16칸) 출력입니다.");
  472. model.setValue("/root/main/dmattr/delivesigncnts", "");
  473. } else if (sLabelpaper == "Y"){
  474. model.setValue("/root/main/dmattr/delivetitl", getCurrentDate() + "_라벨용지(14칸) 출력");
  475. model.setValue("/root/main/dmattr/delivecnts", "라벨용지(14칸) 출력입니다.");
  476. model.setValue("/root/main/dmattr/delivesigncnts", "");
  477. } else {
  478. model.setValue("/root/main/dmattr/delivetitl", "");
  479. model.setValue("/root/main/dmattr/delivecnts", "");
  480. model.setValue("/root/main/dmattr/delivesigncnts", "");
  481. }
  482. model.refresh();
  483. ]]>
  484. </script>
  485. </select1>
  486. </group>
  487. <group id="grp_recvrlist" scroll="auto" style="left:0px; top:484px; width:580px; height:176px; ">
  488. <caption id="caption4" class="tit_2" style="left:5px; top:10px; width:95px; height:14px; ">수신자리스트</caption>
  489. <button id="button42" class="btn2_letter5" style="left:242px; top:4px; width:75px; height:19px; ">
  490. <caption>수신자추가</caption>
  491. <script type="javascript" ev:event="DOMActivate">
  492. <![CDATA[
  493. var i;
  494. grd_recvrlist.addItem();
  495. i = grd_recvrlist.rows;
  496. grd_recvrlist.bottomRow = i;
  497. grd_recvrlist.select(i, 1, i, 1) = true;
  498. ]]>
  499. </script>
  500. </button>
  501. <button id="button1" class="btn2_letter5" style="left:322px; top:4px; width:75px; height:19px; ">
  502. <caption>수신자삭제</caption>
  503. <script type="javascript" ev:event="DOMActivate">
  504. <![CDATA[
  505. fgriddelete(grd_recvrlist);
  506. ]]>
  507. </script>
  508. </button>
  509. <button id="btn_address" class="btn2_letter3" style="left:402px; top:4px; width:53px; height:19px; ">
  510. <caption>주소록</caption>
  511. <script type="javascript" ev:event="DOMActivate">
  512. <![CDATA[
  513. modal("SPCCN00500", "", "", "", "SPCCN00500", "/root/fwd", "/root/fwd");
  514. if ( grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvrnm")) == "" && grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvrzipcd")) == "" && grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvraddr")) == "" ) {
  515. grd_recvrlist.deleterow(1, false);
  516. };
  517. ]]>
  518. </script>
  519. </button>
  520. <button id="btn_addfile" class="btn2_letter9" style="left:460px; top:4px; width:119px; height:19px; ">
  521. <caption>외부파일 가져오기</caption>
  522. <script type="javascript" ev:event="DOMActivate">
  523. <![CDATA[
  524. modal("SPCCN00600", "", "", "", "SPCCN00600", "/root/fwd", "/root/fwd");
  525. if ( grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvrnm")) == "" && grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvrzipcd")) == "" && grd_recvrlist.valueMatrix(1,grd_recvrlist.colRef("recvraddr")) == "" ) {
  526. grd_recvrlist.deleterow(1, false);
  527. };
  528. ]]>
  529. </script>
  530. </button>
  531. <line id="line10" class="line_1" style="x1:0px; y1:25px; x2:580px; y2:25px; "/>
  532. <datagrid id="grd_recvrlist" nodeset="/root/main/recvrinfo/recvrlist" caption="^수신자명^수신자우편번호^수신자주소^등록번호" colwidth="19, 80, 121, 320, 100" dataheight="23" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" tooltip="true" style="left:0px; top:29px; width:580px; height:146px; ">
  533. <col checkvalue="Y,N" ref="chk" type="checkbox" style="text-align:center; "/>
  534. <col ref="recvrnm" type="input"/>
  535. <col ref="recvrzipcd" type="input" maxlength="7"/>
  536. <col ref="recvraddr" type="input"/>
  537. <col ref="recvrpid" type="input"/>
  538. </datagrid>
  539. </group>
  540. <group id="grp_btn" scroll="auto" style="left:0px; top:660px; width:580px; height:27px; ">
  541. <button id="btn_trsm" class="btn4_letter7" style="left:410px; top:5px; width:56px; height:22px; ">
  542. <caption>미리보기/출력</caption>
  543. <script type="javascript" ev:event="DOMActivate">
  544. <![CDATA[
  545. fDMSubmit();
  546. ]]>
  547. </script>
  548. </button>
  549. <button id="btn_cncl" class="btn4_letter2" style="left:524px; top:5px; width:56px; height:22px; ">
  550. <caption>닫기</caption>
  551. <close ev:event="DOMActivate"/>
  552. </button>
  553. </group>
  554. <switch id="switch2" style="left:425px; top:21px; width:155px; height:180px; border-color:#c7a3cf; border-style:solid; ">
  555. <case id="case1" selected="true">
  556. <caption id="caption5" style="left:10px; top:15px; width:130px; height:112px; ">
  557. <![CDATA[DM용지는
  558. 3단 접이식(A4)
  559. 라벨용지는
  560. Formtec 3107(16칸)
  561. Formtec 3108(14칸)
  562. 를 지원합니다.]]>
  563. </caption>
  564. </case>
  565. <case id="case2">
  566. <button id="caption40" class="btn_number" style="left:5px; top:70px; width:39px; height:19px; ">
  567. <caption>@</caption>
  568. </button>
  569. <button id="caption41" class="btn_number" style="left:47px; top:70px; width:39px; height:19px; ">
  570. <caption>♨</caption>
  571. </button>
  572. <button id="caption42" class="btn_number" style="left:89px; top:70px; width:39px; height:19px; ">
  573. <caption>☎</caption>
  574. </button>
  575. <button id="caption31" class="btn_number" style="left:47px; top:202px; width:39px; height:19px; ">
  576. <caption>♥</caption>
  577. </button>
  578. <button id="caption20" class="btn_number" style="left:89px; top:92px; width:39px; height:19px; ">
  579. <caption>◎</caption>
  580. </button>
  581. <button id="caption43" class="btn_number" style="left:5px; top:158px; width:39px; height:19px; ">
  582. <caption>☜</caption>
  583. </button>
  584. <button id="caption32" class="btn_number" style="left:5px; top:48px; width:39px; height:19px; ">
  585. <caption>♧</caption>
  586. </button>
  587. <button id="caption21" class="btn_number" style="left:5px; top:180px; width:39px; height:19px; ">
  588. <caption>◇</caption>
  589. </button>
  590. <button id="caption44" class="btn_number" style="left:47px; top:158px; width:39px; height:19px; ">
  591. <caption>☞</caption>
  592. </button>
  593. <button id="caption33" class="btn_number" style="left:47px; top:48px; width:39px; height:19px; ">
  594. <caption>♣</caption>
  595. </button>
  596. <button id="caption22" class="btn_number" style="left:47px; top:180px; width:39px; height:19px; ">
  597. <caption>◆</caption>
  598. </button>
  599. <button id="caption45" class="btn_number" style="left:89px; top:158px; width:39px; height:19px; ">
  600. <caption>%</caption>
  601. </button>
  602. <button id="caption34" class="btn_number" style="left:89px; top:48px; width:39px; height:19px; ">
  603. <caption>◁</caption>
  604. </button>
  605. <button id="caption23" class="btn_number" style="left:5px; top:26px; width:39px; height:19px; ">
  606. <caption>□</caption>
  607. </button>
  608. <button id="caption46" class="btn_number" style="left:89px; top:180px; width:39px; height:19px; ">
  609. <caption>☏</caption>
  610. </button>
  611. <button id="caption35" class="btn_number" style="left:5px; top:136px; width:39px; height:19px; ">
  612. <caption>◀</caption>
  613. </button>
  614. <button id="caption24" class="btn_number" style="left:47px; top:26px; width:39px; height:19px; ">
  615. <caption>■</caption>
  616. </button>
  617. <button id="caption47" class="btn_number" style="left:89px; top:202px; width:39px; height:19px; ">
  618. <caption>♪</caption>
  619. </button>
  620. <button id="caption36" class="btn_number" style="left:47px; top:136px; width:39px; height:19px; ">
  621. <caption>▷</caption>
  622. </button>
  623. <button id="caption25" class="btn_number" style="left:89px; top:26px; width:39px; height:19px; ">
  624. <caption>△</caption>
  625. </button>
  626. <button id="caption37" class="btn_number" style="left:89px; top:136px; width:39px; height:19px; ">
  627. <caption>▶</caption>
  628. </button>
  629. <button id="caption26" class="btn_number" style="left:5px; top:114px; width:39px; height:19px; ">
  630. <caption>▲</caption>
  631. </button>
  632. <button id="caption15" class="btn_number" style="left:5px; top:4px; width:39px; height:19px; ">
  633. <caption>●</caption>
  634. </button>
  635. <button id="caption38" class="btn_number" style="left:5px; top:224px; width:39px; height:19px; ">
  636. <caption>♤</caption>
  637. </button>
  638. <button id="caption27" class="btn_number" style="left:47px; top:114px; width:39px; height:19px; ">
  639. <caption>▽</caption>
  640. </button>
  641. <button id="caption16" class="btn_number" style="left:47px; top:4px; width:39px; height:19px; ">
  642. <caption>※</caption>
  643. </button>
  644. <button id="caption39" class="btn_number" style="left:47px; top:224px; width:39px; height:19px; ">
  645. <caption>♠</caption>
  646. </button>
  647. <button id="caption28" class="btn_number" style="left:89px; top:114px; width:39px; height:19px; ">
  648. <caption>▼</caption>
  649. </button>
  650. <button id="caption17" class="btn_number" style="left:89px; top:4px; width:39px; height:19px; ">
  651. <caption>☆</caption>
  652. </button>
  653. <button id="caption29" class="btn_number" style="left:5px; top:202px; width:39px; height:19px; ">
  654. <caption>♡</caption>
  655. </button>
  656. <button id="caption18" class="btn_number" style="left:5px; top:92px; width:39px; height:19px; ">
  657. <caption>★</caption>
  658. </button>
  659. <button id="caption19" class="btn_number" style="left:47px; top:92px; width:39px; height:19px; ">
  660. <caption>○</caption>
  661. </button>
  662. <script type="javascript" ev:event="onclick">
  663. <![CDATA[
  664. var trgObj = document.controls.item(event.target);
  665. var trgTextarea = model.getValue("/root/focusid");
  666. if( trgObj.elementName == "xforms:button" ) {
  667. if ( trgTextarea == "tar_dmbdtext" ) {
  668. var btnMark = trgObj.label;
  669. var txtSelPos = tar_dmbdtext.selBegin;
  670. var curText = tar_dmbdtext.currentText;
  671. var curTextBefore = curText.substr(0, txtSelPos);
  672. var curTextAfter = curText.substr(txtSelPos, curText.length);
  673. tar_dmbdtext.currentText = curTextBefore + btnMark + curTextAfter;
  674. model.setFocus("tar_dmbdtext");
  675. tar_dmbdtext.selBegin = txtSelPos + 1;
  676. tar_dmbdtext.dispatch("onkeyup");
  677. } else if ( trgTextarea == "tar_dmsigntext" ) {
  678. var btnMark = trgObj.label;
  679. var txtSelPos = tar_dmsigntext.selBegin;
  680. var curText = tar_dmsigntext.currentText;
  681. var curTextBefore = curText.substr(0, txtSelPos);
  682. var curTextAfter = curText.substr(txtSelPos, curText.length);
  683. tar_dmsigntext.currentText = curTextBefore + btnMark + curTextAfter;
  684. model.setFocus("tar_dmsigntext");
  685. tar_dmsigntext.selBegin = txtSelPos + 1;
  686. tar_dmsigntext.dispatch("onkeyup");
  687. }
  688. }
  689. ]]>
  690. </script>
  691. </case>
  692. <case id="case3">
  693. <button id="button4" class="btn2_letter3" style="left:5px; top:5px; width:53px; height:19px; ">
  694. <caption>고객</caption>
  695. </button>
  696. <script type="javascript" ev:event="onclick">
  697. <![CDATA[
  698. var trgObj = document.controls.item(event.target);
  699. var trgTextarea = model.getValue("/root/focusid");
  700. if( trgObj.elementName == "xforms:button" ) {
  701. if ( trgTextarea == "tar_dmbdtext" ) {
  702. var btnMark = "<@" + trgObj.label + ">";
  703. var txtSelPos = tar_dmbdtext.selBegin;
  704. var curText = tar_dmbdtext.currentText;
  705. var curTextBefore = curText.substr(0, txtSelPos);
  706. var curTextAfter = curText.substr(txtSelPos, curText.length);
  707. tar_dmbdtext.currentText = curTextBefore + btnMark + curTextAfter;
  708. var endTxt = tar_dmbdtext.currentText;
  709. model.setFocus("tar_dmbdtext");
  710. tar_dmbdtext.selBegin = endTxt.length-curTextAfter.length;
  711. tar_dmbdtext.dispatch("onkeyup");
  712. } else if ( trgTextarea == "tar_dmsigntext" ) {
  713. var btnMark = "<@" + trgObj.label + ">";
  714. var txtSelPos = tar_dmsigntext.selBegin;
  715. var curText = tar_dmsigntext.currentText;
  716. var curTextBefore = curText.substr(0, txtSelPos);
  717. var curTextAfter = curText.substr(txtSelPos, curText.length);
  718. tar_dmsigntext.currentText = curTextBefore + btnMark + curTextAfter;
  719. var endTxt = tar_dmsigntext.currentText;
  720. model.setFocus("tar_dmsigntext");
  721. tar_dmsigntext.selBegin = endTxt.length-curTextAfter.length;
  722. tar_dmsigntext.dispatch("onkeyup");
  723. }
  724. }
  725. ]]>
  726. </script>
  727. </case>
  728. </switch>
  729. <button id="btn_lattr" class="btn_sw" group="tab" style="left:425px; top:0px; width:38px; height:22px; ">
  730. <caption>용지</caption>
  731. <script type="javascript" ev:event="DOMActivate">
  732. <![CDATA[
  733. //var chosinfouseyn = model.getvalue("/root/main/dtmntmpl/tmpldefine/chosinfouseyn")
  734. //if (chosinfouseyn == "Y") {
  735. model.toggle("case1");
  736. //} else {
  737. //messageBox("연결정보중 내원정보가 선택되지","E007");
  738. //}
  739. ]]>
  740. </script>
  741. </button>
  742. <button id="btn_schar" class="btn_sw" group="tab" style="left:463px; top:0px; width:61px; height:22px; ">
  743. <caption>특수문자</caption>
  744. <script type="javascript" ev:event="DOMActivate">
  745. <![CDATA[
  746. model.toggle("case2");
  747. ]]>
  748. </script>
  749. </button>
  750. <button id="btn_prmchar" class="btn_sw" group="tab" style="left:524px; top:0px; width:56px; height:22px; ">
  751. <caption>예약어</caption>
  752. <script type="javascript" ev:event="DOMActivate">
  753. <![CDATA[
  754. model.toggle("case3");
  755. ]]>
  756. </script>
  757. </button>
  758. </xhtml:body>
  759. </xhtml:html>