SPCPC00700_데이터마이닝그룹리스트.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. * Name : SPCPC00700_데이터마이닝그룹리스트
  4. * Summary : 고객정보마이닝 그룹 리스트
  5. * Programmer : 최정환
  6. * Date Written : 2008.07.25
  7. * History : 2008.07.25
  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. <dtmntreeinfo>
  19. <dtmntreelist>
  20. <dtmnnm/>
  21. <depth/>
  22. <dtmnsmlcd/>
  23. <dtmnallcd/>
  24. </dtmntreelist>
  25. </dtmntreeinfo>
  26. <list>
  27. <dtmnlist>
  28. <dtmntitl/>
  29. <dtmnsmltitl/>
  30. <lnktmplyn/>
  31. <autexecflag/>
  32. <fstrgstdt/>
  33. <fstrgstnm/>
  34. <examcnt/>
  35. <lastexamcnt/>
  36. <lastexamdd/>
  37. <dtmnkey/>
  38. </dtmnlist>
  39. <choidtmnlist/>
  40. </list>
  41. <rcvcnt/>
  42. <chkvalue1/>
  43. <chkvalue2/>
  44. </main>
  45. <init>
  46. <C0030list/>
  47. <C0031list/>
  48. <C0032list/>
  49. </init>
  50. <send>
  51. <dtmnsrch>
  52. <dtmnsmlcd>0</dtmnsmlcd>
  53. </dtmnsrch>
  54. <data>
  55. <rgstfromdd/>
  56. <rgsttodd/>
  57. <dtmnnm/>
  58. <rgstnm/>
  59. <autexecflag/>
  60. <cmpnlnkyn/>
  61. <dtmnsmlcd/>
  62. </data>
  63. </send>
  64. <temp>
  65. <trsmtrgtlist>
  66. <status>I</status>
  67. <dtmntitl/>
  68. <appbasedd/>
  69. <spcldd/>
  70. <clintdupltretmthd/>
  71. <daydd/>
  72. <dtmnkey/>
  73. </trsmtrgtlist>
  74. </temp>
  75. </root>
  76. </instance>
  77. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  78. <submission id="TRCDT00401" mediatype="application/x-www-form-urlencoded" method="post" replace="instance" resultref="/root/main/dtmntreeinfo"/>
  79. <submission id="TRCDT00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" resultref="/root/main/list"/>
  80. </model>
  81. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  82. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  83. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  84. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  85. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  86. <script type="javascript" ev:event="xforms-ready">
  87. <![CDATA[
  88. model.removeNodeset("/root/main/list/dtmnlist");
  89. model.removeNodeset("/root/main/list/choidtmnlist");
  90. // C0030: 자동실행여부, C0031: 고객중복처리여부, C0032: 적용기준일
  91. zbcfGetCodeList(new Array("C0030", "C0031", "C0032"),
  92. new Array("/root/init/C0030list", "/root/init/C0031list", "/root/init/C0032list"));
  93. model.removeNodeset("/root/main/dtmntreeinfo/dtmntreelist");
  94. submit("TRCDT00401");
  95. var scrnflag = model.getValue("/root/hidden/scrnflag");
  96. ]]>
  97. </script>
  98. <script type="javascript">
  99. <![CDATA[
  100. //----------------------------------------//
  101. // 체크된 행을 대상그리드에 추가 후 삭제 //
  102. //----------------------------------------//
  103. function fGridRowAddRow(sndGrid, rcvGrid, type){
  104. var sRows = sndGrid.rows;
  105. var sfRow = sndGrid.fixedRows;
  106. var cntRows = sndGrid.rows-1;
  107. var rRows = rcvGrid.rows;
  108. if(type=="del") {
  109. var rows = sndGrid.rows;
  110. var fRow = sndGrid.fixedRows;
  111. for(var i=fRow; i<rows; i++){
  112. sndGrid.valueMatrix(i,sndGrid.colRef("chk"))="Y";
  113. }
  114. model.refresh();
  115. }
  116. var check_cnt = 0;
  117. for(var i=sfRow; i<sRows; i++){
  118. if(sndGrid.valueMatrix(i,sndGrid.colRef("chk")) == "Y" ){
  119. var lnktmplyn = grd_dtmnlist.valueMatrix(i,grd_dtmnlist.colRef("lnktmplyn"));
  120. if (lnktmplyn == "Y") {
  121. messageBox("선택된 데이터마이닝은 기존에 연결된 캠페인에서 제외처리 되오니","I007");
  122. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("status")) = "U"
  123. }
  124. rcvGrid.addRow();
  125. if (lnktmplyn == "Y") {
  126. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("status")) = "U"
  127. } else {
  128. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("status")) = "I"
  129. }
  130. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("dtmntitl")) = sndGrid.valueMatrix(i,sndGrid.colRef("dtmntitl"));
  131. rcvGrid.valueMatrix(rRows, rcvGrid.colRef("dtmnkey")) = sndGrid.valueMatrix(i,sndGrid.colRef("dtmnkey"));
  132. check_cnt++;
  133. rRows++;
  134. }
  135. }
  136. if(check_cnt < 1) {
  137. messageBox("고객정보마이닝 리스트를","C002");
  138. }
  139. //추가된 사람 목록삭제
  140. for(var j=sRows; j>=sfRow; j--){
  141. if(sndGrid.valueMatrix(j,sndGrid.colRef("chk")) == "Y"){
  142. sndGrid.deleterow(j,false);
  143. cntRows--;
  144. }
  145. }
  146. if(type == "add"){
  147. model.setValue("/root/main/rcvcnt",rRows-1);//수신인 숫자
  148. }else{
  149. model.setValue("/root/main/rcvcnt",cntRows);//수신인 숫자
  150. }
  151. model.refresh();
  152. }
  153. function fGetTrsmTrgt() {
  154. var count = 0;
  155. var check_cnt = 0;
  156. for (i=0; i < grd_choidtmnlist.selectedRows; i++) {
  157. if(grd_choidtmnlist.valueMatrix(i+1,grd_choidtmnlist.colRef("chk")) == "Y" ){
  158. var dtmntitl = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),1)
  159. var appbasedd = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),2)
  160. var spcldd = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),3)
  161. var clintdupltretmthd = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),4)
  162. var daydd = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),5)
  163. var dtmnkey = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),6)
  164. var status = grd_choidtmnlist.valuematrix(grd_choidtmnlist.selectedRow(i),7)
  165. count = count + 1
  166. model.makeValue("/root/temp/trsmtrgtlist/dtmntitl", dtmntitl);
  167. model.makeValue("/root/temp/trsmtrgtlist/appbasedd", appbasedd); // 임시노드에 선택된 항목을 넣어준다.
  168. model.makeValue("/root/temp/trsmtrgtlist/spcldd", spcldd); // 임시노드에 선택된 항목을 넣어준다.
  169. model.makeValue("/root/temp/trsmtrgtlist/clintdupltretmthd", clintdupltretmthd); // 임시노드에 선택된 항목을 넣어준다.
  170. model.makeValue("/root/temp/trsmtrgtlist/daydd", daydd); // 임시노드에 선택된 항목을 넣어준다.
  171. model.makeValue("/root/temp/trsmtrgtlist/dtmnkey", dtmnkey); // 임시노드에 선택된 항목을 넣어준다.
  172. model.makeValue("/root/temp/trsmtrgtlist/status", status); // 임시노드에 선택된 항목을 넣어준다.
  173. model.duplicate(opener.root.main.cmpn, root.temp.trsmtrgtlist); // 임시노드에 있는 항목을 메인(부모)창에 복사해준다.
  174. model.removenodeset("/root/temp/trsmtrgtlist/dtmntitl"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  175. model.removenodeset("/root/temp/trsmtrgtlist/appbasedd"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  176. model.removenodeset("/root/temp/trsmtrgtlist/spcldd"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  177. model.removenodeset("/root/temp/trsmtrgtlist/clintdupltretmthd"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  178. model.removenodeset("/root/temp/trsmtrgtlist/daydd"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  179. model.removenodeset("/root/temp/trsmtrgtlist/dtmnkey"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  180. model.removenodeset("/root/temp/trsmtrgtlist/status"); // 다음항목 복사시 중복되지 않도록 임시노드를 지워준다.
  181. check_cnt++;
  182. }
  183. }
  184. if(check_cnt < 1) {
  185. messageBox("고객정보마이닝 리스트를","C002");
  186. }else{
  187. opener.model.refresh();
  188. window.close();
  189. }
  190. }
  191. function fGetDtmnInfo() {
  192. submit("TRCDT00201");
  193. /* for(var i=1; i<grd_dtmnlist.rows; i++){
  194. var lnktmplyn = grd_dtmnlist.valueMatrix(i,grd_dtmnlist.colRef("lnktmplyn"));
  195. if (lnktmplyn == "Y") {
  196. grd_dtmnlist.isReadOnly(i,0,i,0) = true;
  197. }
  198. }
  199. */
  200. }
  201. function fGridAllRow(mode) {
  202. // 주소록 그룹 조회
  203. if (mode == "A") {
  204. var rows = grd_dtmnlist.rows;
  205. var fRow = grd_dtmnlist.fixedRows;
  206. var chk = grd_dtmnlist.valueMatrix(1, grd_dtmnlist.colRef("chk"));
  207. var boolchk = model.getValue("/root/main/chkvalue1");
  208. if (boolchk == "Y") {
  209. for(var i=fRow; i<rows; i++) {
  210. grd_dtmnlist.valueMatrix(i, grd_dtmnlist.colRef("chk"))="Y";
  211. }
  212. } else {
  213. for(var i=fRow; i<rows; i++) {
  214. grd_dtmnlist.valueMatrix(i, grd_dtmnlist.colRef("chk"))="N";
  215. }
  216. }
  217. model.refresh();
  218. // 그룹 내역
  219. } else if (mode == "B") {
  220. var rows = grd_choidtmnlist.rows;
  221. var fRow = grd_choidtmnlist.fixedRows;
  222. var chk = grd_choidtmnlist.valueMatrix(1, grd_choidtmnlist.colRef("chk"));
  223. var boolchk = model.getValue("/root/main/chkvalue2");
  224. if (boolchk == "Y") {
  225. for(var i=fRow; i<rows; i++){
  226. grd_choidtmnlist.valueMatrix(i, grd_choidtmnlist.colRef("chk"))="Y";
  227. }
  228. } else {
  229. for(var i=fRow; i<rows; i++){
  230. grd_choidtmnlist.valueMatrix(i, grd_choidtmnlist.colRef("chk"))="N";
  231. }
  232. }
  233. model.refresh();
  234. } else if (mode == "C") { // 데이터 이동 후 마스터 목록 선택 해제
  235. var rows = grd_dtmnlist.rows;
  236. var fRow = grd_dtmnlist.fixedRows;
  237. var chk = grd_dtmnlist.valueMatrix(1, grd_dtmnlist.colRef("chk"));
  238. for(var i=fRow; i<rows; i++){
  239. grd_dtmnlist.valueMatrix(i, grd_dtmnlist.colRef("chk"))="N";
  240. }
  241. model.setValue("/root/main/chkvalue1", "");
  242. }
  243. model.refresh();
  244. }
  245. ]]>
  246. </script>
  247. </xhtml:head>
  248. <xhtml:body pagewidth="908" pageheight="600" style="border-color:#c7a3cf; ">
  249. <group id="group1" style="left:0px; top:0px; width:908px; height:600px; ">
  250. <caption id="caption9" class="tit_2" style="left:225px; top:0px; width:200px; height:13px; ">고객정보마이닝 그룹 조회</caption>
  251. <group id="grp_johe" style="left:225px; top:14px; width:675px; height:35px; vertical-align:top; ">
  252. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:675px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  253. <caption id="caption2" class="search_name" style="left:25px; top:9px; width:104px; height:17px; ">검색어 :</caption>
  254. <input id="ipt_s_dtmnnm" ref="/root/send/data/dtmnnm" class="input_s_essential" navindex="2" style="left:149px; top:8px; width:130px; height:19px; ">
  255. <script type="javascript" ev:event="onkeypress">
  256. <![CDATA[
  257. //var param = ipt_s_dtmnnm.currentText;
  258. if("13" == event.keyCode){
  259. btn_search.dispatch("DOMActivate");
  260. //fClicked("search", grd_userbaseinfo, param);
  261. }
  262. ]]>
  263. </script>
  264. </input>
  265. <line id="line13" style="x1:460px; y1:7px; x2:460px; y2:29px; border-color:#ffe4bb; border-left-style:solid; "/>
  266. <button id="btn_search" class="btn1_letter2" navindex="3" style="left:490px; top:5px; width:56px; height:22px; ">
  267. <caption>조회</caption>
  268. <script type="javascript" ev:event="DOMActivate">
  269. <![CDATA[
  270. if(ipt_s_dtmnnm.currentText == ""){
  271. messageBox("검색어를 1자이상 ", "C001");
  272. } else {
  273. model.removeNodeset("/root/main/list/dtmnlist");
  274. fGetDtmnInfo();
  275. }
  276. ]]>
  277. </script>
  278. </button>
  279. </group>
  280. <group id="grp_body" style="left:225px; top:49px; width:675px; height:310px; ">
  281. <line id="line2" class="line_1" style="x1:0px; y1:10px; x2:675px; y2:10px; "/>
  282. <datagrid id="grd_dtmnlist" nodeset="/root/main/list/dtmnlist" caption="^고객정보마이닝 그룹명^연결캠페인^자동실행^등록일^등록부서^등록자^" colwidth="20, 290, 70, 60, 70, 80, 60, 0" dataheight="23" extendlastcol="scroll" frozencols="1" mergecellsfixedrows="bycolrec" rowheight="23" style="left:0px; top:15px; width:675px; height:295px; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
  283. <col checkvalue="Y,N" ref="chk" type="checkbox" style="text-align:center; "/>
  284. <col ref="dtmntitl"/>
  285. <col disabled="true" ref="lnktmplyn" type="combo" style="text-align:center; ">
  286. <choices>
  287. <item>
  288. <label>연결</label>
  289. <value>Y</value>
  290. </item>
  291. </choices>
  292. </col>
  293. <col disabled="true" ref="autexecflag" type="combo" style="text-align:center; ">
  294. <choices>
  295. <itemset nodeset="/root/init/C0030list/C0030">
  296. <label ref="cdnm"/>
  297. <value ref="cdid"/>
  298. </itemset>
  299. </choices>
  300. </col>
  301. <col ref="fstrgstdt" format="yyyy-mm-dd"/>
  302. <col ref="deptnm"/>
  303. <col ref="fstrgstnm"/>
  304. <col ref="dtmnkey" visibility="hidden"/>
  305. </datagrid>
  306. <bool id="bool1" ref="/root/main/chkvalue1" style="left:3px; top:19px; width:15px; height:15px; ">
  307. <script type="javascript" ev:event="xforms-value-changed">
  308. <![CDATA[
  309. var mode = "A";
  310. fGridAllRow(mode);
  311. ]]>
  312. </script>
  313. </bool>
  314. </group>
  315. <group id="group3" style="left:225px; top:359px; width:675px; height:210px; ">
  316. <caption id="caption3" class="tit_2" style="left:0px; top:10px; width:200px; height:13px; ">그룹내역</caption>
  317. <button id="btn_saveexcel" class="btn2_letter3" style="left:555px; top:4px; width:53px; height:19px; ">
  318. <caption>초기화</caption>
  319. <script type="javascript" ev:event="DOMActivate">
  320. <![CDATA[
  321. fGridRowAddRow(grd_choidtmnlist,grd_dtmnlist,"del");
  322. ]]>
  323. </script>
  324. </button>
  325. <button id="button1" class="btn2_letter4" style="left:611px; top:4px; width:64px; height:19px; ">
  326. <caption>그룹추가</caption>
  327. <script type="javascript" ev:event="DOMActivate">
  328. <![CDATA[
  329. fGridRowAddRow(grd_dtmnlist,grd_choidtmnlist,"add");
  330. var mode = "C";
  331. fGridAllRow(mode);
  332. ]]>
  333. </script>
  334. </button>
  335. <line id="line1" class="line_1" style="x1:0px; y1:24px; x2:675px; y2:24px; "/>
  336. <datagrid id="grd_choidtmnlist" nodeset="/root/main/list/choidtmnlist" caption="^고객정보마이닝 그룹명^산정기준일^특정일^업데이트 구분^업데이트실행시간^^" colwidth="20, 270, 80, 90, 90, 100, 0, 0" dataheight="23" extendlastcol="scroll" frozencols="1" mergecellsfixedrows="bycolrec" rowheight="23" style="left:0px; top:29px; width:675px; height:181px; margin-left:0; margin-top:0; margin-right:0; margin-bottom:0; ">
  337. <col checkvalue="Y,N" ref="chk" type="checkbox" style="text-align:center; "/>
  338. <col ref="dtmntitl" type="input"/>
  339. <col disabled="true" ref="appbasedd" type="combo" _key="true">
  340. <choices>
  341. <itemset nodeset="/root/init/C0032list/C0032">
  342. <label ref="cdnm"/>
  343. <value ref="cdid"/>
  344. </itemset>
  345. </choices>
  346. </col>
  347. <col ref="spcldd" type="inputdate" format="yyyy-mm-dd"/>
  348. <col ref="clintdupltretmthd" type="combo" _key="true">
  349. <choices>
  350. <itemset nodeset="/root/init/C0031list/C0031">
  351. <label ref="cdnm"/>
  352. <value ref="cdid"/>
  353. </itemset>
  354. </choices>
  355. </col>
  356. <col class="text_center" ref="daydd" type="input" format="hh:nn"/>
  357. <col ref="dtmnkey" visibility="hidden"/>
  358. <col ref="status" visibility="hidden"/>
  359. <script type="javascript" ev:event="xforms-select">
  360. <![CDATA[
  361. //해당 행을 활성화한다
  362. grd_choidtmnlist.isReadOnly(grd_choidtmnlist.row, grd_choidtmnlist.colRef("appbasedd") + 1, grd_choidtmnlist.row, grd_choidtmnlist.colRef("spcldd")) = false;
  363. ]]>
  364. </script>
  365. </datagrid>
  366. <bool id="bool2" ref="/root/main/chkvalue2" style="left:3px; top:33px; width:15px; height:15px; ">
  367. <script type="javascript" ev:event="xforms-value-changed">
  368. <![CDATA[
  369. var mode = "B";
  370. fGridAllRow(mode);
  371. ]]>
  372. </script>
  373. </bool>
  374. </group>
  375. <group id="group5" scroll="auto" style="left:0px; top:573px; width:900px; height:27px; ">
  376. <button id="button2" class="btn4_letter2" style="left:785px; top:5px; width:56px; height:22px; ">
  377. <caption>확인</caption>
  378. <script type="javascript" ev:event="DOMActivate">
  379. <![CDATA[
  380. fGetTrsmTrgt();
  381. ]]>
  382. </script>
  383. </button>
  384. <button id="button3" class="btn4_letter2" style="left:844px; top:5px; width:56px; height:22px; ">
  385. <caption>닫기</caption>
  386. <close ev:event="DOMActivate"/>
  387. </button>
  388. </group>
  389. <group id="group12" style="left:0px; top:0px; width:215px; height:572px; ">
  390. <caption id="caption30" class="tit_2" style="left:0px; top:0px; width:215px; height:14px; ">고객정보마이닝 그룹</caption>
  391. <group id="grp_tree" scroll="auto" style="left:0px; top:13px; width:215px; height:557px; ">
  392. <line id="lin_tree" class="line_1" style="x1:0px; y1:0px; x2:215px; y2:0px; "/>
  393. <treeview id="trv_leftmenu" ref="/root/send/dtmnsrch/dtmnsmlcd" expanddepth="2" fullrowselect="true" itemsettype="depth" oneclickexpand="true" style="left:0px; top:5px; width:215px; height:550px; ">
  394. <itemset nodeset="/root/main/dtmntreeinfo/dtmntreelist">
  395. <label ref="dtmnnm"/>
  396. <value ref="dtmnallcd"/>
  397. <depth ref="depth"/>
  398. </itemset>
  399. <script type="javascript" ev:event="xforms-select">
  400. <![CDATA[
  401. var scrnflag = model.getValue("/root/hidden/scrnflag");
  402. var dtmn_allcd = trv_leftmenu.value;
  403. var split_var=dtmn_allcd.split('/');
  404. var i = 0;
  405. var dtmnlrgcd = split_var[0];
  406. var dtmnmdlcd = split_var[1];
  407. var dtmnsmlcd = split_var[2];
  408. var dtmn_smlcd = dtmnsmlcd;
  409. if (dtmn_smlcd > 0) {
  410. model.setValue("/root/send/data/dtmnsmlcd", dtmnsmlcd);
  411. fGetDtmnInfo();
  412. //model.setValue("/root/send/data/dtmnsmlcd", dtmnsmlcd);
  413. }
  414. ]]>
  415. </script>
  416. </treeview>
  417. </group>
  418. </group>
  419. </group>
  420. </xhtml:body>
  421. </xhtml:html>