SPMMB01500_수치결과검사항목.xrw 10 KB

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