SMRSM00800_유해위험성코드.xrw 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  3. <xhtml:html xmlns:ex="http://www.comsquare.co.kr/xforms/excel" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://www.comsquare.co.kr/example" xmlns:ms="urn:schemas-microsoft-com:xslt" 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" xmlns:cs="http://www.comsquare.co.kr/xforms">
  4. <xhtml:head>
  5. <xhtml:title>유해위험성 코드 관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <codeinfo>
  11. <codelist>
  12. <harmcd/>
  13. <harmnm/>
  14. <useyn/>
  15. <dispseq/>
  16. <cmt/>
  17. <harmcls/>
  18. </codelist>
  19. </codeinfo>
  20. </main>
  21. <send>
  22. <reqdata>
  23. <harmcls/>
  24. </reqdata>
  25. </send>
  26. <senddata>
  27. <execdata>
  28. <codelist/>
  29. </execdata>
  30. </senddata>
  31. <popdata>
  32. <cdgrupid/>
  33. </popdata>
  34. <init/>
  35. </root>
  36. </instance>
  37. <script type="javascript" ev:event="xforms-ready">
  38. <![CDATA[
  39. cmb_harmcls.value = "A";
  40. btn_search.dispatch("DOMActivate");
  41. ]]>
  42. </script>
  43. <submission id="TRRSM00801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/codeinfo"/>
  44. <submission id="TXRSM00801" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/senddata/execdata" resultref="/root/hidden"/>
  45. </model>
  46. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  47. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  48. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  49. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  50. <script type="javascript" src="../../../ast/tumorelctweb/js/combolist.js"/>
  51. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  52. <script type="javascript">
  53. <![CDATA[
  54. function datacheck(){
  55. //var scdid1 = "";
  56. //var scdid2 = "";
  57. for (var i = 1; i < datagrid1.rows; i ++){
  58. if (model.getValue("/root/main/codeinfo/codelist[" + i + "]/harmnm") == ""){
  59. messageBox("코드명은 필수 입력항목입니다.", "E999", "");
  60. return false;
  61. }
  62. /*
  63. if (model.getValue("/root/main/codeinfo/codelist[" + i + "]/cdnm") == ""){
  64. messageBox("코드명은 필수 입력항목입니다.", "E999", "");
  65. return false;
  66. }
  67. */
  68. /*
  69. scdid1 = model.getValue("/root/main/codeinfo/codelist[" + i + "]/cdid");
  70. var k = i + 1;
  71. for (var j = k; j < datagrid1.rows; j++){
  72. scdid2 = model.getValue("/root/main/codeinfo/codelist[" + j + "]/cdid");
  73. if (i != j){
  74. if (scdid1 == scdid2){
  75. messageBox(j + "번째에서 중복된 자료가 존재합니다", "E999", "");
  76. return false;
  77. }
  78. }
  79. }
  80. */
  81. }
  82. return true;
  83. }
  84. function ExecData(){
  85. var update = getGridUpdateData(datagrid1);
  86. model.setValue("/root/senddata/execdata/codelist", update);
  87. if (submit("TXRSM00801")){
  88. //readfunc();
  89. btn_search.dispatch("DOMActivate");
  90. }
  91. }
  92. function isDate(str) { // 날짜 형식에 대한 적합여부 체크
  93. if (str == "") return true; // 빈건 체크안함
  94. if (trim(str) == "") return true; // 빈건 체크안함
  95. if (isNaN(parseInt(str))) return false; // 숫자가 아니면 false
  96. if (str.length != 8) return false; // 8자리(yyyymmdd)가 아니면 false
  97. var yy = new Number(str.substring(0, 4));
  98. var mm = new Number(str.substring(4, 6)) - 1;
  99. var dd = new Number(str.substring(6, 8));
  100. var date = new Date(yy, mm, dd);
  101. //alert(date.getFullYear() +"-" + (date.getMonth()+1) + "-" + date.getDate());
  102. if (yy != date.getFullYear() ||
  103. mm != date.getMonth() ||
  104. dd != date.getDate()) {
  105. return false; // 존재하지 않는 날짜
  106. }
  107. return true; // 존재하는 날짜
  108. }
  109. function trim(data){ // 문자에 대한 TRIM 작업
  110. return data.replace(/(^\s*)|(\s*$)/g, "");
  111. }
  112. ]]>
  113. </script>
  114. </xhtml:head>
  115. <xhtml:body guideline="1,1195;" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  116. <caption id="caption1" class="tit_1" style="left:0px; top:0px; width:875px; height:13px; ">유해위험성 코드 관리</caption>
  117. <shape id="rectangle1" appearance="roundrect" style="left:0px; top:48px; width:1195px; height:37px; background-color:#fffbf2; border-color:#ffd799; "/>
  118. <button id="btn_search" class="btn1_letter2" style="left:290px; top:56px; width:56px; height:22px; ">
  119. <caption>조회</caption>
  120. <script type="javascript" ev:event="DOMActivate">
  121. <![CDATA[
  122. misfGridInit(datagrid1);
  123. if (submit("TRRSM00801")){
  124. }
  125. model.refresh();
  126. ]]>
  127. </script>
  128. </button>
  129. <line id="line6" style="x1:275px; y1:55px; x2:275px; y2:77px; border-color:#ffe4bb; border-left-style:solid; "/>
  130. <line id="line7" class="line_1" style="x1:0px; y1:116px; x2:1195px; y2:116px; "/>
  131. <datagrid id="datagrid1" nodeset="/root/main/codeinfo/codelist" caption="코드^코드명^사용여부^출력순서^비 고^harmcls" colsep="^" colwidth="57, 291, 72, 69, 333, 54" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:0px; top:121px; width:1195px; height:609px; ">
  132. <col disabled="true" ref="harmcd" maxlength="2" style="text-align:center; "/>
  133. <col ref="harmnm" type="input" maxbyte="50" style="text-align:left; "/>
  134. <col ref="useyn" type="combo" style="text-align:center; ">
  135. <choices>
  136. <item>
  137. <label>Yes</label>
  138. <value>Y</value>
  139. </item>
  140. <item>
  141. <label>No</label>
  142. <value>N</value>
  143. </item>
  144. </choices>
  145. </col>
  146. <col ref="dispseq" type="input" format="#" style="text-align:center; "/>
  147. <col ref="cmt" type="input"/>
  148. <col ref="harmcls" visibility="hidden"/>
  149. <script type="javascript" ev:event="xforms-value-changed">
  150. <![CDATA[
  151. /*
  152. var scol = datagrid1.col;
  153. datagrid1.col = scol;
  154. datagrid1.dispatch("onentercell");
  155. datagrid1.editCell();
  156. */
  157. ]]>
  158. </script>
  159. <script type="javascript" ev:event="onaftersort">
  160. <![CDATA[
  161. datagrid1.gridToInstance();
  162. ]]>
  163. </script>
  164. </datagrid>
  165. <caption id="caption4" class="tit_2" style="left:3px; top:100px; width:113px; height:13px; ">코드별 상세정보</caption>
  166. <button id="btn_grdadd" class="btn2_letter3" style="left:1086px; top:95px; width:53px; height:19px; ">
  167. <caption>행추가</caption>
  168. <script type="javascript" ev:event="DOMActivate">
  169. <![CDATA[
  170. /* if (model.getValue("/root/send/reqdata/grupcdid") == ""){
  171. messageBox("구분코드를 선택한 후 작업하시기 바랍니다.", "E999", "");
  172. return;
  173. }
  174. */
  175. var imaxcd = 0; //코드의 최대값을 넣음
  176. var iharmcd = 0; //코드를 integer로 변경한 값
  177. var smaxcd = ""; //코드를 string으로 변경한 값
  178. var icol = datagrid1.colRef("harmcd");
  179. for(var i = 1; i < datagrid1.rows; i++) {
  180. //alert( parseInt(datagrid1.valueMatrix(i, icol)) + '|' + imaxcd);
  181. /*
  182. if ( parseInt(datagrid1.valueMatrix(i, icol)) > imaxcd ) {
  183. imaxcd = parseInt(datagrid1.valueMatrix(i, icol));
  184. }
  185. */
  186. iharmcd = parseInt(model.getValue("/root/main/codeinfo/codelist[" + i + "]/harmcd"), 10);
  187. if ( iharmcd > imaxcd ) {
  188. imaxcd = iharmcd;
  189. }
  190. }
  191. imaxcd = imaxcd + 1 ; // 최대값 + 1 이 추가한 행의 코드번호가 된다.
  192. if (imaxcd < 10) {
  193. smaxcd = "0" + imaxcd ;
  194. } else {
  195. smaxcd = "" + imaxcd;
  196. }
  197. datagrid1.addRow();
  198. var irow = datagrid1.row;
  199. model.setValue("/root/main/codeinfo/codelist[" + irow + "]/harmcd", smaxcd );
  200. model.setValue("/root/main/codeinfo/codelist[" + irow + "]/harmcls", model.getValue("/root/send/reqdata/harmcls"));
  201. model.setValue("/root/main/codeinfo/codelist[" + irow + "]/useyn", "Y");
  202. model.refresh();
  203. /*
  204. model.setFocus("datagrid1");
  205. datagrid1.row = irow;
  206. datagrid1.col = 2;
  207. datagrid1.dispatch("onentercell");
  208. datagrid1.editCell();
  209. datagrid1.refresh();
  210. */
  211. ]]>
  212. </script>
  213. </button>
  214. <button id="btn_grddel" class="btn2_letter3" style="left:1142px; top:95px; width:53px; height:19px; ">
  215. <caption>행삭제</caption>
  216. <script type="javascript" ev:event="DOMActivate">
  217. <![CDATA[
  218. //datagrid1.deleteRow(datagrid1.row);
  219. /*
  220. - 0 : read : 조회시
  221. - 1 : insert : 행추가시
  222. - 2 : update : 조회한 것을 수정시
  223. - 3 : insert & new : 행추가한 것을 수정시
  224. - 4 : delete
  225. - 5 : delete & insert
  226. - 6 : delete & update
  227. */
  228. var status = datagrid1.rowStatus(datagrid1.row) ;
  229. if(status == 0) {
  230. datagrid1.addStatus(datagrid1.row, "delete");
  231. }else if(status == 1) {
  232. datagrid1.deleteRow(datagrid1.row);
  233. }else if(status == 2) {
  234. datagrid1.addStatus(datagrid1.row, "delete");
  235. }else if(status == 3) {
  236. datagrid1.deleteRow(datagrid1.row);
  237. }else if(status == 4) {
  238. datagrid1.removeStatus(datagrid1.row, "delete");
  239. }else if(status == 5) { // insert된 data는 삭제시 위에서 addStatus("delete")하지 않고, 바로 deleteRow했기 때문에 5의 경우는 발생하지 않음.
  240. datagrid1.removeStatus(datagrid1.row, "delete");
  241. }else if(status == 6) {
  242. datagrid1.removeStatus(datagrid1.row, "delete");
  243. }
  244. ]]>
  245. </script>
  246. </button>
  247. <caption id="caption2" class="search_name" style="left:39px; top:58px; width:51px; height:17px; ">분류</caption>
  248. <select1 id="cmb_harmcls" ref="/root/send/reqdata/harmcls" appearance="minimal" style="left:96px; top:57px; width:164px; height:19px; ">
  249. <choices>
  250. <item>
  251. <label>물리적위험성</label>
  252. <value>A</value>
  253. </item>
  254. <item>
  255. <label>건강유해성</label>
  256. <value>B</value>
  257. </item>
  258. <item>
  259. <label>환경유해성</label>
  260. <value>C</value>
  261. </item>
  262. </choices>
  263. <script type="javascript" ev:event="xforms-value-changed">
  264. <![CDATA[
  265. btn_search.dispatch("DOMActivate");
  266. ]]>
  267. </script>
  268. </select1>
  269. <group id="group4" scroll="auto" style="left:0px; top:13px; width:1195px; height:27px; ">
  270. <line id="line2" class="line_6" style="x1:0px; y1:25px; x2:1195px; y2:25px; "/>
  271. <button id="btn_save" class="btn4_letter2" style="left:1139px; top:3px; width:56px; height:22px; ">
  272. <caption>저장</caption>
  273. <script type="javascript" ev:event="DOMActivate">
  274. <![CDATA[
  275. if (datacheck() == false){
  276. return;
  277. }
  278. ExecData();
  279. ]]>
  280. </script>
  281. </button>
  282. </group>
  283. <caption id="caption3" style="left:0px; top:735px; width:503px; height:20px; color:#ff0000; ">※ 사용된 코드는 삭제하지 말고, 사용여부를 "No" 로 변경 후 저장하시기 바랍니다.</caption>
  284. </xhtml:body>
  285. </xhtml:html>