SPMMB01300_수치결과검사항목.xrw 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <?xml version="1.0" encoding="EUC-KR"?>
  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>수치결과검사항목</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <testiteminfo>
  11. <testitemlist>
  12. <levl/>
  13. <tclscd/>
  14. <tclsscrnnm/>
  15. <check/>
  16. <rsltunit/>
  17. </testitemlist>
  18. <useyn/>
  19. </testiteminfo>
  20. </main>
  21. <send>
  22. <reqdata/>
  23. </send>
  24. <hidden>
  25. </hidden>
  26. <init/>
  27. </root>
  28. </instance>
  29. <script type="javascript" ev:event="xforms-ready">
  30. <![CDATA[
  31. //초기화
  32. model.removeNodeset("/root/main/testiteminfo/testitemlist");
  33. model.refresh();
  34. //수치결과검사항목을 모두 조회
  35. submit("TRMMB01301");
  36. //레벨을 트리형태로 나타내고 검사코드를 레벨단위로 보여준다~
  37. setTree(grd_testitem , grd_testitem.colref("levl"), grd_testitem.colref("tclscd"), false);
  38. //부모창에서 검사항목 개수를 받아옴
  39. var count = opener.javascript.getParameter("count");
  40. //검사항목 개수대로 코드를 받아옴
  41. for(var i=1 ; i <= count ; i++){
  42. model.makeNode("/root/hidden/cd[" + i + "]");
  43. model.setValue("/root/hidden/cd[" + i + "]",opener.javascript.getParameter("cd", i));
  44. }
  45. //레벨1은 선택되지 않게 막는다.
  46. var gridrows = grd_testitem.rows;
  47. for(var i = 1 ; i <= gridrows ; i++){
  48. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/levl");
  49. if(level == '1'){
  50. //체크박스의 체크가 불가능하게 비활성화
  51. grd_testitem.isreadonly(i, 0, i, 1) = true;
  52. }
  53. //부모창에서 받아온 코드가 이 그리드에 존재하는지 확인후 있는 것은 체크박스에 체크
  54. var tclscd = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclscd");
  55. for(var j = 1 ; j<= count ; j++){
  56. var cd = model.getValue("/root/hidden/cd[" + j + "]");
  57. if(cd == tclscd){
  58. model.setValue("/root/main/testiteminfo/testitemlist[" + i + "]/check", 'true');
  59. }
  60. }
  61. }
  62. ]]>
  63. </script>
  64. <submission id="TRMMB01301" mediatype="application/x-www-form-urlencoded" method="post" resultref="/root/main/testiteminfo"/>
  65. </model>
  66. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  67. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  68. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  69. </xhtml:head>
  70. <xhtml:body pagewidth="550" pageheight="450" guideline="1,585;1,526;" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  71. <caption id="caption6" class="tit_2" style="left:0px; top:0px; width:175px; height:13px; text-align:left; ">수치결과검사항목</caption>
  72. <line id="line3" class="line_1" style="x1:0px; y1:20px; x2:526px; y2:20px; "/>
  73. <datagrid id="grd_testitem" nodeset="/root/main/testiteminfo/testitemlist" class="datagrid_logo" autoresize="true" caption="선택^레벨^검사코드^검사명^단위" colsep="^" colwidth="50, 0, 100, 250, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:25px; width:527px; height:375px; ">
  74. <col ref="check" type="checkbox"/>
  75. <col ref="levl"/>
  76. <col ref="tclscd"/>
  77. <col ref="tclsscrnnm"/>
  78. <col ref="rsltunit"/>
  79. <script type="javascript" ev:event="onclick">
  80. <![CDATA[
  81. //2단계를 선택시 3단계 모두 선택되게하고 2단계선택 해제시 선택 해제되게 한다~
  82. var gridrows = grd_testitem.rows;
  83. var gridrow = grd_testitem.row;
  84. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + gridrow + "]/levl");
  85. var check = model.getValue("/root/main/testiteminfo/testitemlist[" + gridrow + "]/check");
  86. if(check == 'true'){
  87. if(level == '2'){
  88. for(var i = gridrow+1 ; i <= gridrows ; i++){
  89. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/levl");
  90. if(level == '2'){
  91. break;
  92. }else if(level == '1'){
  93. break;
  94. }else{
  95. model.setValue("/root/main/testiteminfo/testitemlist[" + i + "]/check",'true');
  96. }
  97. }
  98. }
  99. }else{
  100. if(level == '2'){
  101. for(var i = gridrow+1 ; i <= gridrows ; i++){
  102. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/levl");
  103. if(level == '2'){
  104. break;
  105. }else if(level == '1'){
  106. break;
  107. }else{
  108. model.setValue("/root/main/testiteminfo/testitemlist[" + i + "]/check",'false');
  109. }
  110. }
  111. }
  112. }
  113. model.refresh();
  114. ]]>
  115. </script>
  116. </datagrid>
  117. <button id="button1" class="btn4_letter2" style="left:412px; top:405px; width:56px; height:22px; ">
  118. <caption>선택</caption>
  119. <script type="javascript" ev:event="DOMActivate">
  120. <![CDATA[
  121. //그리드의 총개수
  122. var gridrows = grd_testitem.rows;
  123. //체크한 개수를 얻기위한 변수
  124. var count = 0;
  125. //코드,코드명을 저장할 배열
  126. var tclscd = new Array();
  127. var tclsnm = new Array();
  128. var tclsscrnnm = new Array();
  129. var tclsscrncd = new Array();
  130. //레벨을 저장할 배열
  131. var levl = new Array();
  132. //그리드의 모든 데이타를 확인
  133. for(var i = 1 ; i <= gridrows ; i++){
  134. //체크값을 받아옴
  135. var check = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/check");
  136. //체크가 선택된 것
  137. if(check == 'true'){
  138. //개수를 알기 위해 카운트를 1씩 증가
  139. count = count + 1;
  140. //레벨값을 배열에 저장
  141. levl[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/levl");
  142. if(levl[count] == '2'){
  143. //레벨값이 2인경우인데 아래 3레벨이 존재하는 경우 2레벨 데이타를 가져가지 않는다
  144. for(var j = i+1 ; j <= gridrows ; j++){
  145. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + j + "]/levl");
  146. //가지고 갈 데이타 개수를 한개 줄임
  147. if(level == '3'){
  148. count = count - 1;
  149. break;
  150. }else{
  151. //3레벨이 아닌경우는 2레벨의 데이타를 가지고 간다
  152. tclscd[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclscd");
  153. tclsnm[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclsscrnnm");
  154. tclsscrncd[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclscd");
  155. tclsscrnnm[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclsscrnnm");
  156. break;
  157. }
  158. }
  159. //레벨이 3인경우
  160. }else if(levl[count] == '3'){
  161. //상세검사코드,싱세검사명을 가져감
  162. tclsscrncd[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclscd");
  163. tclsscrnnm[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + i + "]/tclsscrnnm");
  164. for(var j = i-1 ; j >= 1 ; j--){
  165. var level = model.getValue("/root/main/testiteminfo/testitemlist[" + j + "]/levl");
  166. //레벨2를 검사코드,검사명으로 가저감
  167. if(level == '2'){
  168. tclscd[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + j + "]/tclscd");
  169. tclsnm[count] = model.getValue("/root/main/testiteminfo/testitemlist[" + j + "]/tclsscrnnm");
  170. break;
  171. }
  172. }
  173. }
  174. }
  175. }
  176. //같은 검사명이 여러개가 가지 않도록 함
  177. // for(var i=1; i < count ; i++){
  178. // for(var j=i+1; j<=count ; j++){
  179. // if(tclsnm[i] == tclsnm[j]){
  180. // tclsnm[j] = '';
  181. // }
  182. // }
  183. //// }
  184. //받아온 배열을 부모창으로 보냄
  185. parent.window.model.makeValue("/root/hidden/testiteminfo/count",count);
  186. parent.window.model.makeValue("/root/hidden/testiteminfo/useyn","Y");
  187. for(var i = 1 ; i <= count ; i++){
  188. parent.window.model.makeValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testcd",tclscd[i]);
  189. parent.window.model.makeValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testitemcd",tclsscrncd[i]);
  190. parent.window.model.makeValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testnm",tclsnm[i]);
  191. parent.window.model.makeValue("/root/hidden/testiteminfo/testitemlist[" + i + "]/testitemnm",tclsscrnnm[i]);
  192. }
  193. window.close();
  194. ]]>
  195. </script>
  196. </button>
  197. <button id="button2" class="btn4_letter2" style="left:470px; top:405px; width:56px; height:22px; ">
  198. <caption>취소'</caption>
  199. <script type="javascript" ev:event="DOMActivate">
  200. <![CDATA[
  201. //취소 버튼 눌렀다는 상태값을 부모창으로 보내고 창 닫음
  202. parent.window.model.makeValue("/root/hidden/testiteminfo/useyn","N");
  203. window.close();
  204. ]]>
  205. </script>
  206. </button>
  207. </xhtml:body>
  208. </xhtml:html>