SMZPP00100_산출물관리마스터.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <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">
  4. <xhtml:head>
  5. <xhtml:title>Untitle</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <cls>
  11. <item>
  12. <sortno/>
  13. <clsnm/>
  14. <remark/>
  15. <cdid/>
  16. </item>
  17. </cls>
  18. <basecls>
  19. <item2>
  20. <dep/>
  21. <supernm/>
  22. <supercd/>
  23. <remarkbig/>
  24. <cdgupid/>
  25. <cdgupnm/>
  26. <remarkmid/>
  27. <cdid/>
  28. <cdnm/>
  29. <remarksml/>
  30. <oricdid/>
  31. <orisupcd/>
  32. <flag/>
  33. </item2>
  34. </basecls>
  35. <excelcls>
  36. <item3>
  37. <supernm/>
  38. <supercd/>
  39. <cdgupnm/>
  40. <cdgupid/>
  41. <cdnm/>
  42. <cdid/>
  43. <remark/>
  44. </item3>
  45. </excelcls>
  46. </main>
  47. <init>
  48. <item>
  49. <clscd/>
  50. <clsnm/>
  51. </item>
  52. <item2>
  53. <level/>
  54. <supercd/>
  55. <supernm/>
  56. <remarkbig/>
  57. <cdgupid/>
  58. <cdgupnm/>
  59. <remarkmid/>
  60. <cdid/>
  61. <cdnm/>
  62. <remarksml/>
  63. <oricdid/>
  64. <orisupcd/>
  65. <flag/>
  66. </item2>
  67. </init>
  68. <send>
  69. <cdid/>
  70. <update/>
  71. </send>
  72. <mimenu>
  73. <label>새로 추가</label>
  74. <func>addnew</func>
  75. </mimenu>
  76. <mimenu>
  77. <label>행 삭제</label>
  78. <func>deleterow</func>
  79. </mimenu>
  80. </root>
  81. </instance>
  82. <submission id="TRZPP00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/cls"/>
  83. <submission id="TRZPP00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/basecls"/>
  84. <script type="javascript" ev:event="xforms-ready">
  85. <![CDATA[
  86. // model.makeValue("/root/send/cdid","clscd");
  87. submit("TRZPP00101");
  88. submit("TRZPP00102");
  89. //grd_code2.rebuild();
  90. setTree(grd_code2, 1, 2, true);
  91. //model.refresh();
  92. ]]>
  93. </script>
  94. <submission id="TXZPP00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/cls"/>
  95. <submission id="TXZPP00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/basecls"/>
  96. <submission id="TRZPP00103" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/excelcls"/>
  97. </model>
  98. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  100. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  101. <script type="javascript" src="..\..\..\com\commonweb\js\common.js"/>
  102. <script type="javascript">
  103. <![CDATA[
  104. ]]>
  105. </script>
  106. </xhtml:head>
  107. <xhtml:body pagewidth="1211" pageheight="784" guideline="1,1244;1,72;2,160;2,594;1,1033;1,1142;2,131;" style="margin-left:8; margin-right:8; ">
  108. <script type="javascript" ev:event="onmenu">
  109. <![CDATA[
  110. if(event.description == "addnew")
  111. {
  112. btn_bcadd.dispatch("DOMActivate");
  113. }
  114. if(event.description == "deleterow")
  115. {
  116. btn_bcdelete.dispatch("DOMActivate");
  117. }
  118. ]]>
  119. </script>
  120. <switch id="switch1" style="left:8px; top:75px; width:1182px; height:680px; ">
  121. <case id="case1" selected="true">
  122. <button id="btn_save_excel" class="btn2_letter4" style="left:959px; top:13px; width:64px; height:19px; ">
  123. <caption>엑셀저장</caption>
  124. <script type="javascript" ev:event="DOMActivate">
  125. <![CDATA[
  126. var excelFileName = "분류_"+model.getValue("/root/main/cls/item/");
  127. var fileName = window.fileDialog("save", ",", false, excelFileName, "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  128. if (fileName != "")
  129. {
  130. grd_code1.saveExcel(fileName,"exportfalserows:0;col_8:value;");
  131. }
  132. ]]>
  133. </script>
  134. </button>
  135. <button id="btn_delete" class="btn2_letter2" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:1082px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  136. <caption>삭제</caption>
  137. <script type="javascript" ev:event="onclick">
  138. <![CDATA[
  139. // model.alert("하위 분류 데이터가 있습니다. 정말 삭제하시겠습니까?");
  140. deleteSelectedRows(grd_code1, true);
  141. var rows=grd_code1.rows;
  142. var fixedrows=grd_code1.fixedRows;
  143. var currentRows=rows-fixedrows;
  144. // alert("rows"+rows);
  145. // alert("fixedrow"+fixedrows);
  146. // alert("currentRows"+currentRows);
  147. for(var i=1; i<=currentRows; i++) {
  148. model.setValue("/root/main/cls/item["+i+"]/sortno", i);
  149. }
  150. ]]>
  151. </script>
  152. </button>
  153. <datagrid id="grd_code1" nodeset="/root/main/cls/item" autoresize="true" caption="분류명^비 고^번 호^CDID" colsep="^" colwidth="300, 623, 234, 2" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:39px; width:1170px; height:631px; ">
  154. <col ref="clsnm" type="input"/>
  155. <!-- <col ref="sortno" type="input"/>-->
  156. <col ref="remark" type="input"/>
  157. <col ref="sortno" type="input"/>
  158. <col ref="cdid" visibility="hidden"/>
  159. <script type="javascript" ev:event="onendedit">
  160. <![CDATA[
  161. if( event.keyCode==13){
  162. if(grd_code1.col == grd_code1.colRef("clscd")){
  163. grd_code1.col = grd_code1.colRef("clsnm");
  164. grd_code1.editCell();
  165. } else if(grd_code1.col == grd_code1.colRef("clsnm")){
  166. if(grd_code1.row+1 == grd_code1.rows){
  167. copyNodeListType("/root/main/cls", "/root/init/item", "after");
  168. model.refresh();
  169. var b = grd_code1.rows - grd_code1.fixedRows;
  170. grd_code1.row = b;
  171. grd_code1.col=grd_code1.colRef("clscd");
  172. grd_code1.editCell();
  173. }
  174. }
  175. }
  176. ]]>
  177. </script>
  178. </datagrid>
  179. <caption id="caption8" class="tit_2" style="left:12px; top:8px; width:85px; height:13px; ">분류</caption>
  180. <button id="btn_add" class="btn2_letter2" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:1032px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  181. <caption>추가</caption>
  182. <script type="javascript" ev:event="DOMActivate">
  183. <![CDATA[
  184. // var sort = model.getValue("/root/main/cls/item/sortno");
  185. // grd_code1.addRow();
  186. var row = grd_code1.addRow();
  187. grd_code1.addStatus(row, "insert");
  188. model.setValue("/root/main/cls/item["+grd_code1.row+"]/sortno", grd_code1.row);
  189. ]]>
  190. </script>
  191. </button>
  192. <button id="btn_save" class="btn5_letter2" disable.background-image="../../../com/commonweb/images/dis_btn5_letter2.gif" style="left:1132px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn5_letter2.gif; ">
  193. <caption>저장</caption>
  194. <script type="javascript" ev:event="DOMActivate">
  195. <![CDATA[
  196. //var update = getGridUpdateData(grd_code1);
  197. var update = grd_code1.getUpdateData();
  198. model.makeValue("/root/send/save", update);
  199. //alert(left.getUpdateData());
  200. submit("TXZPP00101");
  201. ]]>
  202. </script>
  203. </button>
  204. </case>
  205. <case id="case2">
  206. <button id="btn_xlssave2" class="btn2_letter4" style="left:873px; top:13px; width:64px; height:19px; ">
  207. <caption>엑셀저장</caption>
  208. <script type="javascript" ev:event="DOMActivate">
  209. <![CDATA[
  210. submit("TRZPP00103");
  211. var iRows= grd_excelfileout.rows; // 전체 행 개수
  212. var fixRow = 0;
  213. var iRow = 0;
  214. var conRow = 0;
  215. for(iRow ; iRow < iRows ; ) {
  216. var big = model.getValue("/root/main/excelcls/item3["+fixRow+"]/supernm");
  217. conRow = (parseInt(iRow)+1);
  218. var bigcond = model.getValue("/root/main/excelcls/item3["+conRow+"]/supernm");
  219. if(big == bigcond) {
  220. model.setValue("/root/main/excelcls/item3["+conRow+"]/supernm", "");
  221. model.setValue("/root/main/excelcls/item3["+conRow+"]/supercd", "");
  222. iRow++;
  223. } else {
  224. fixRow = conRow;
  225. iRow = conRow;
  226. }
  227. }
  228. fixRow = 0;
  229. iRow = 0;
  230. conRow = 0;
  231. for(iRow ; iRow < iRows ;) {
  232. var mid1 = model.getValue("/root/main/excelcls/item3["+fixRow+"]/cdgupnm");
  233. conRow = (parseInt(iRow)+1);
  234. var midcond = model.getValue("/root/main/excelcls/item3["+conRow+"]/cdgupnm");
  235. if(mid1 == midcond) {
  236. model.setValue("/root/main/excelcls/item3["+conRow+"]/cdgupnm", "");
  237. model.setValue("/root/main/excelcls/item3["+conRow+"]/cdgupid", "");
  238. iRow++;
  239. } else {
  240. //model.setValue("/root/main/excelcls/item3["+iRow+"]/cdgupnm", "");
  241. //model.setValue("/root/main/excelcls/item3["+iRow+"]/cdgupid", "");
  242. fixRow = conRow;
  243. iRow = conRow;
  244. }
  245. }
  246. var excelFileName = "분류기준_"+model.getValue("/root/main/excelcls/item2/");
  247. var fileName = window.fileDialog("save", ",", false, excelFileName, "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  248. if (fileName != "")
  249. {
  250. grd_excelfileout.saveExcel(fileName,"exportfalserows:0;col_8:value;");
  251. }
  252. ]]>
  253. </script>
  254. </button>
  255. <button id="btn_bcadd" class="btn2_letter2" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:1031px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  256. <caption>추가</caption>
  257. <script type="javascript" ev:event="DOMActivate">
  258. <![CDATA[
  259. var iRow = grd_code2.row; // 현재 행
  260. var iRows= grd_code2.rows; // 전체 행 개수
  261. var nodeset = grd_code2.nodeset;
  262. var iLevel = model.getValue("/root/main/basecls/item2["+iRow+"]/dep");
  263. //alert(iLevel);
  264. var oriCdid = model.getValue("/root/main/basecls/item2["+iRow+"]/oricdid");
  265. var parselevel = (parseInt(iLevel)+1);
  266. var insRow = (parseInt(iRow)+1);
  267. // 해당 분류가 하위 분류를 가지고 있는지 유무 확인
  268. var flag = "";
  269. var flagdown = model.getValue("/root/main/basecls/item2["+insRow+"]/dep");
  270. var flagup = model.getValue("/root/main/basecls/item2["+iRow+"]/dep");
  271. if(flagup >= flagdown) {
  272. flag = "Yes"
  273. }
  274. if(parselevel > "3" ) {
  275. model.alert("하위 분류기준을 만들수 없습니다.");
  276. } else {
  277. grd_code2.insertItem(iRow, "after");
  278. model.setValue("/root/main/basecls/item2["+insRow+"]/dep", parselevel);
  279. model.setValue("/root/main/basecls/item2["+insRow+"]/oricdid", oriCdid);
  280. model.setValue("/root/main/basecls/item2["+insRow+"]/flag", flag);
  281. }
  282. // var row = grd_code2.addRow();
  283. // grd_code2.addStatus(iRow, "insert");
  284. ]]>
  285. </script>
  286. </button>
  287. <button id="btn_bcsave" class="btn5_letter2" disable.background-image="../../../com/commonweb/images/dis_btn5_letter2.gif" style="left:1131px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn5_letter2.gif; ">
  288. <caption>저장</caption>
  289. <script type="javascript" ev:event="DOMActivate">
  290. <![CDATA[
  291. //var update = getGridUpdateData(grd_code1);
  292. var update = grd_code2.getUpdateData();
  293. // if(update == ""){
  294. // messageBox("업데이트 정보가 없습니다.", "I");
  295. // return 0;
  296. //
  297. // } else {
  298. // // alert(update);
  299. model.makeValue("/root/send/save2", update);
  300. //alert(left.getUpdateData());
  301. //setTree(grd_code2, 1, 2, true);
  302. submit("TXZPP00102");
  303. grd_code2.rebuild();
  304. setTree(grd_code2, 1, 2, true);
  305. //model.refresh();
  306. // }
  307. ]]>
  308. </script>
  309. </button>
  310. <datagrid id="grd_code2" nodeset="/root/main/basecls/item2" autoresize="true" caption="level^분 류 명^분류코드^비 고^중분류코드^중분류명^비 고^소분류코드^소분류명^비 고^cdid^supcd" colsep="^" colwidth="32, 351, 123, 656, 502, 480, 400, 261, 233, 169, 1, 1, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:40px; width:1170px; height:630px; ">
  311. <col ref="dep" type="input" visibility="hidden"/>
  312. <col ref="supernm" type="input"/>
  313. <col ref="supercd" type="input"/>
  314. <col ref="remarkbig" type="input"/>
  315. <col ref="cdgupid" type="input" visibility="hidden"/>
  316. <col ref="cdgupnm" type="input" visibility="hidden"/>
  317. <col ref="remarkmid" type="input" visibility="hidden"/>
  318. <col ref="cdid" type="input" visibility="hidden"/>
  319. <col ref="cdnm" type="input" visibility="hidden"/>
  320. <col ref="remarksml" type="input" visibility="hidden"/>
  321. <col ref="oricdid" type="input" visibility="hidden"/>
  322. <col ref="orisupcd" visibility="hidden"/>
  323. <col ref="flag" type="input" visibility="hidden"/>
  324. <script type="javascript" ev:event="onendedit">
  325. <![CDATA[
  326. // if( event.keyCode==13){
  327. // if(grd_code2.col == grd_code2.colRef("supercd")){
  328. //
  329. // }else if(grd_code2.col = grd_code2.colRef("supernm")){
  330. // }else if (grd_code2.col = grd_code2.colRef("cdgupnm")){
  331. // }else if(grd_code2.col = grd_code2.colRef("cdgupid")){
  332. // }else if(grd_code2.col = grd_code2.colRef("cdgupnm")){
  333. // }else if(grd_code2.col = grd_code2.colRef("cdid")){
  334. // }else (grd_code2.col = grd_code2.colRef("cdnm"));
  335. // grd_code2.editCell();
  336. // } else if(grd_code2.col == grd_code2.colRef("supercd")){
  337. // if(grd_code2.row+1 == grd_code2.rows){
  338. // copyNodeListType("/root/main/cls", "/root/init/item", "after");
  339. // model.refresh();
  340. // var b = grd_code2.rows - grd_code2.fixedRows;
  341. // grd_code2.row = b;
  342. // grd_code2.col=grd_code2.colRef("supercd");
  343. // grd_code2.editCell();
  344. // }
  345. // }
  346. //}
  347. // }
  348. //
  349. // ]]>
  350. </script>
  351. <script type="javascript" ev:event="xforms-value-changed">
  352. <![CDATA[
  353. ]]>
  354. </script>
  355. <script type="javascript" ev:event="DOMFocusOut">
  356. <![CDATA[
  357. window.setPopupMenu(false);
  358. ]]>
  359. </script>
  360. <script type="javascript" ev:event="onmousedown">
  361. <![CDATA[
  362. if(event.button == 3) {
  363. if(grd_code2.isCell(event.target) && grd_code2.mouseRow >= grd_code2.fixedrows)
  364. {
  365. window.setPopupMenu(true, "/root/mimenu", "label", "func", true);
  366. } else{
  367. window.setPopupMenu(false);
  368. }
  369. }
  370. ]]>
  371. </script>
  372. <script type="javascript" ev:event="onclick">
  373. <![CDATA[
  374. // if(grd_code2.mouseCol == 5 || grd_code2.mouseCol == 6){
  375. // var iRow = grd_code2.mouseRow;
  376. // var checkscrncd = model.getValue("/root/main/basecls/item2["+iRow+"]/dep");
  377. // if(checkscrncd != "" || checkscrncd != null){
  378. // grd_code2.addStatus(iRow, "update");
  379. // }
  380. // }
  381. ]]>
  382. </script>
  383. </datagrid>
  384. <button id="btn_bcdelete" class="btn2_letter2" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:1081px; top:13px; width:42px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  385. <caption>삭제</caption>
  386. <script type="javascript" ev:event="DOMActivate">
  387. <![CDATA[
  388. // grd_examcureroom.add(grd_examcureroom.row,"delete");
  389. deleteSelectedRows(grd_code2, true);
  390. // var selectedRows = grd_code1.selectedRows;
  391. //
  392. // var arr = new Array(selectedRows);
  393. // for(var i=0; i<arr.length; i++){
  394. // arr[i] = grd_code1.selectedRow(i);
  395. // }
  396. // for(var i = arr.length-1; i>=0; i--){
  397. // grd_code1.deleteRow(arr[i], false);
  398. // }
  399. // grd_code1.refresh();
  400. ]]>
  401. </script>
  402. </button>
  403. <caption id="caption9" class="tit_2" style="left:12px; top:8px; width:85px; height:13px; ">분류기준</caption>
  404. <button id="btn_bcbigadd" class="btn2_letter5" disable.background-image="../../../com/commonweb/images/dis_btn2_letter2.gif" style="left:946px; top:13px; width:75px; height:19px; background-image:../../../com/commonweb/images/btn2_letter2.gif; ">
  405. <caption>대분류추가</caption>
  406. <script type="javascript" ev:event="DOMActivate">
  407. <![CDATA[
  408. var row = grd_code2.addRow();
  409. grd_code2.addStatus(row, "insert");
  410. ]]>
  411. </script>
  412. </button>
  413. </case>
  414. </switch>
  415. <button id="button1" class="btn_sw" group="tab" selected="true" style="left:8px; top:54px; width:300px; height:22px; ">
  416. <caption>분류</caption>
  417. <toggle case="case1" ev:event="onclick"/>
  418. </button>
  419. <button id="button2" class="btn_sw" group="tab" style="left:309px; top:54px; width:300px; height:22px; ">
  420. <caption>분류기준</caption>
  421. <toggle case="case2" ev:event="onclick"/>
  422. </button>
  423. <line id="line8" class="line_1" style="x1:11px; y1:45px; x2:608px; y2:45px; "/>
  424. <caption id="caption12" class="tit_2" style="left:15px; top:30px; width:118px; height:13px; ">분류 마스터 관리</caption>
  425. <datagrid id="grd_excelfileout" nodeset="/root/main/excelcls/item3" visibility="hidden" caption="대분류명^대분류코드^중분류명^중분류코드^소분류명^소분류코드^비고" colsep="^" colwidth="100, 100, 100, 100, 100, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:45px; top:625px; width:940px; height:130px; ">
  426. <col ref="supernm"/>
  427. <col ref="supercd"/>
  428. <col ref="cdgupnm"/>
  429. <col ref="cdgupid"/>
  430. <col ref="cdnm"/>
  431. <col ref="cdid"/>
  432. <col ref="remark"/>
  433. </datagrid>
  434. <caption id="caption7" class="tit_1" style="left:0px; top:0px; width:140px; height:14px; ">산출물 관리</caption>
  435. </xhtml:body>
  436. </xhtml:html>