SMLQP00800_미생물QC조회.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLQP00100_QC결과대장.xrw
  4. * 설 명 : QC결과대장
  5. * 설 계 자 : (주)에이씨케이 -
  6. * 작 성 자 : (주)에이씨케이 -
  7. * 작 성 일 : 2006.12.26
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <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">
  13. <xhtml:head>
  14. <xhtml:title>QC 결과조회</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root>
  18. <main>
  19. <rsltlist>
  20. <row>
  21. <a/>
  22. <b/>
  23. <c/>
  24. <d/>
  25. <e/>
  26. <f/>
  27. </row>
  28. <header/>
  29. </rsltlist>
  30. </main>
  31. <send>
  32. <acptfromdd/>
  33. <acpttodd/>
  34. <testroom>00</testroom>
  35. <eqmtcd>00</eqmtcd>
  36. <testcd>00</testcd>
  37. <testcd2/>
  38. <levlcd>00</levlcd>
  39. <testnm/>
  40. <levlcd2/>
  41. <levlnm/>
  42. <testnm2/>
  43. <deptflag/>
  44. <acptflag>00</acptflag>
  45. </send>
  46. <init>
  47. <LB0702/>
  48. </init>
  49. <hidden>
  50. <ref>
  51. <testlist>
  52. <testnm/>
  53. <testcd/>
  54. <testcd2/>
  55. <testnm2/>
  56. </testlist>
  57. <levllist>
  58. <levlnm/>
  59. <levlcd/>
  60. <levlcd2/>
  61. </levllist>
  62. </ref>
  63. <testdetlinfo>
  64. <testdetlinfo/>
  65. </testdetlinfo>
  66. <measfact/>
  67. </hidden>
  68. </root>
  69. </instance>
  70. <script type="javascript" ev:event="xforms-ready">
  71. <![CDATA[
  72. fSetInit();
  73. ]]>
  74. </script>
  75. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  76. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  77. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  78. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0111"/>
  79. <submission id="TRLQP00102" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/hidden/testdetlinfo/testdetlinfo"/>
  80. <submission id="TRLQP00112" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/eqmttestlist"/>
  81. <submission id="TRLQP00901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/hidden/testdetlinfo/testdetlinfo"/>
  82. </model>
  83. <script type="javascript">
  84. <![CDATA[
  85. function fSetInit(){
  86. //model.removeNodeset("/root/main/testdetlinfo");
  87. //grd_testDetlInfo.rebuild();
  88. model.toggle("case1");
  89. //fbuttonvisible("A");
  90. var fromdate = getCurrentDate().toDate("YYYYMMDD").getAddDate(-30)
  91. model.setValue("/root/send/acptfromdd", fromdate.getDateFormat("YYYYMMDD"));
  92. model.setValue("/root/send/acpttodd", getCurrentDate());
  93. model.makeValue("/root/send/codeflag","0000|0111|0701|"); //0000:사용자부서코드, 0111:시행부서계 0707: 장비코드
  94. submit("TRLZZ00101", false);
  95. model.makeValue("/root/send/basecdid", "M");
  96. model.setValue("/root/send/codeflag", "0501|0704|"); //사용자 부서별로 레벨코드를 조회하기 위해 사용자부서 코드를 가져온 다음 다시 레벨코드 조회
  97. submit("TRLZZ00101");
  98. }
  99. // 스위치에 따라 버튼 보이기
  100. function fbuttonvisible(ref){
  101. // 검사항목별
  102. if(ref == "A"){
  103. group3.visible = false;
  104. group5.visible = true;
  105. model.setValue("/root/send/testnm", "");
  106. model.setValue("/root/send/eqmtcd", "00");
  107. fGrdReSet();
  108. }
  109. // 레벨별
  110. else if(ref == "B"){
  111. group3.visible = true;
  112. group5.visible = false;
  113. model.setValue("/root/send/eqmtcd", "00");
  114. //model.setValue("/root/send/levlcd", "");
  115. //ipt_levl.refresh();
  116. fGrdReSet();
  117. }
  118. }
  119. //그리드초기화
  120. function fGrdReSet(){
  121. model.removeNodeset("/root/main/testdetlinfo/testdetlinfo");
  122. //1번째 컬럼을 제외하고 다 지운다~~
  123. for(i = grd_testDetlInfo.cols; i>2; i--){
  124. grd_testDetlInfo.removeColumn(false);
  125. }
  126. model.refresh();
  127. }
  128. //장비코드설정
  129. function fSetEqmtCd(){
  130. model.removeNodeset("/root/init/LB0701");
  131. var testroom = model.getValue("/root/send/testroom");
  132. model.makeValue("/root/send/basecdid", testroom); //검사실구분 코드(장비코드앞자리)
  133. model.makeValue("/root/send/codeflag","0701|");
  134. model.setValue("/root/send/eqmtcd", '00');
  135. submit("TRLZZ00101");
  136. }
  137. //#2 검사항목 설정
  138. function fSetTestCd(){
  139. model.removeNodeset("/root/init/eqmttestlist");
  140. model.makeValue("/root/send/basecdid", model.getValue("/root/send/eqmtcd"));
  141. model.makeValue("/root/send/codeflag", "0702|");
  142. submit("TRLQP00112");
  143. model.setValue("/root/send/testcd", "00");
  144. cbo_testlist.refresh();
  145. }
  146. //장비별 검사항목 조회 팝업
  147. function fTestListSch(){
  148. var eqmtcd = model.getValue("/root/send/eqmtcd"); //장비코드
  149. var deptflag = "M"; //사용자부서코드
  150. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag;
  151. setParameter("opener_parameter_id", sflag);
  152. modal("SPLQP00100", "", "", "", "", "", "");
  153. model.setValue("/root/send/testnm" , model.getValue("/root/hidden/ref/testlist/testnm")); //검사명
  154. model.setValue("/root/send/testnm2" , model.getValue("/root/hidden/ref/testlist/testnm2")); //검사명
  155. model.setValue("/root/send/testcd" , model.getValue("/root/hidden/ref/testlist/testcd")); //검사코드를 받아와서 셋팅~
  156. model.setValue("/root/send/testcd2" , model.getValue("/root/hidden/ref/testlist/testcd2"));
  157. model.refresh();
  158. //fGrdSet();//검사항목에 따른 그리드 셋팅
  159. }
  160. //검사항목별 레벨 조회 팝업
  161. function fTestLevlSch(){
  162. var eqmtcd = model.getValue("/root/send/eqmtcd"); //장비코드
  163. var deptflag = "M" //사용자부서코드
  164. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag;
  165. setParameter("opener_parameter_id", sflag);
  166. modal("SPLQP00200", "", "", "", "", "", "");
  167. model.setValue("/root/send/levlnm" , model.getValue("/root/hidden/ref/levllist/levlnm")); //검사명
  168. model.setValue("/root/send/levlcd" , model.getValue("/root/hidden/ref/levllist/levlcd")); //검사코드를 받아와서 셋팅~
  169. model.setValue("/root/send/levlcd2" , model.getValue("/root/hidden/ref/levllist/levlcd2"));
  170. model.refresh();
  171. //fGrdSet2();//검사항목에 따른 그리드 셋팅
  172. }
  173. //검사항목에 따른 그리드 셋팅
  174. function fGrdSet(){
  175. if(model.getValue("/root/hidden/ref/testlist/testnm") != ""){
  176. model.removeNodeset("/root/main/testdetlinfo");
  177. grd_testDetlInfo.addRow(); ///////////////////////////////////////////////////removeNodeset하면 컬럼이 사라지지 않는 현상 발생...
  178. //그리드 컬럼 추가 및 캡션 설정 //컬럼 추가때 사용
  179. var vCap = "검사정보"; //캡션 test로 초기화(고정인 컬럼 캡션)
  180. var vTestnm = model.getValue("/root/hidden/ref/testlist/testnm2").split("▦"); //검사항목을 ", "단위로 쪼개서 담고
  181. /*
  182. if(vTestnm.length > 10){
  183. alert("최대조회 항목 수는 10개입니다\n검사항목을 다시 선택하세요!!");
  184. fTestListSch();
  185. return;
  186. }*/
  187. //1번째 컬럼을 제외하고 다 지운다~~
  188. for(i = grd_testDetlInfo.cols; i>2; i--){
  189. grd_testDetlInfo.removeColumn(false);
  190. }
  191. //검사항목 갯수만큼 컬럼 추가
  192. for(i = 0; i<vTestnm.length ; i++){ //선택한 검사항목 갯수만큼
  193. vCap = vCap + "^" + vTestnm[i]; //캡션에 하나씩 넣어주고
  194. grd_testDetlInfo.addColumn("ref:column"+(i)+ " ; type:output;", false); //컬럼 ref설정 및 output타입으로 컬럼 추가
  195. }
  196. grd_testDetlInfo.caption = vCap;
  197. }
  198. grd_testDetlInfo.rowHidden(1) = true; ///////////////////////////////////////////////////removeNodeset하면 컬럼이 사라지지 않는 현상 발생...
  199. grd_testDetlInfo.refresh();
  200. }
  201. // 요셉
  202. function fMicroGetRslt(){
  203. if(model.getValue("/root/send/eqmtcd") == "00"){
  204. messageBox("장비를", "C002","");
  205. return 0;
  206. }
  207. if(model.getValue("/root/hidden/ref/testlist/testnm") == ""){
  208. messageBox("검사항목을", "C002","");
  209. return 0;
  210. }
  211. //if(model.getValue("/root/send/levlcd") == "00"){
  212. // messageBox("레벨을", "C002","");
  213. // return 0;
  214. //}
  215. else{
  216. // 그리드 컬럼 초기화
  217. var cols = grd_testDetlInfo.cols-grd_testDetlInfo.fixedCols;
  218. var rows = grd_testDetlInfo.rows-grd_testDetlInfo.fixedRows;
  219. //alert(cols)
  220. for( var i = 0; i < cols; i++ ) {
  221. grd_testDetlInfo.removeColumn(false);
  222. }
  223. for( var i = 0; i < rows; i++ ) {
  224. grd_testDetlInfo.removeRow(false);
  225. }
  226. model.removeNodeset("/root/main/");
  227. model.setValue("/root/send/deptflag", "M");
  228. submit("TRLQP00901", false);
  229. //submit("TRLMP00301", false);
  230. var gridCaption = model.getValue("/root/hidden/testdetlinfo/rsltlist/header/caption");
  231. if(gridCaption == "") return;
  232. //ref 정보
  233. var gridColRef = model.getValue("/root/hidden/testdetlinfo/rsltlist/header/colref");
  234. var gridColRefArray = gridColRef.split("^");
  235. for( var i = 0; i < gridColRefArray.length; i++ ) {
  236. grd_testDetlInfo.addColumn("ref:" + gridColRefArray[i] + ";", false);
  237. }
  238. grd_testDetlInfo.colWidth(1) = 200;
  239. grd_testDetlInfo.colWidth(2) = 100;
  240. grd_testDetlInfo.ellipsis = true;
  241. for( i = 3; i < grd_testDetlInfo.cols; i++ ) {
  242. grd_testDetlInfo.colWidth(i) = 60;
  243. grd_testDetlInfo.colWidth(i+1) = 0;
  244. grd_testDetlInfo.colWidth(i+2) = 20;
  245. grd_testDetlInfo.colWidth(i+3) = 40;
  246. i = i+3;
  247. }
  248. grd_testDetlInfo.caption = gridCaption;
  249. //grd_keepbaclist.colType(1) = "checkbox"; //선택컬럼 체크박스로
  250. var node = instance1.selectSingleNode("/root/main");
  251. node.replaceChild(instance1.root.hidden.testdetlinfo.rsltlist, instance1.root.main.rsltlist);
  252. grd_testDetlInfo.rebuild();
  253. var R = grd_testDetlInfo.rows;
  254. var C = grd_testDetlInfo.cols;
  255. var re1, re2;
  256. //grd_testDetlInfo.colStyle(1,"left","text-align");
  257. grd_testDetlInfo.colAttribute(1, "text-align") = "left";
  258. for(re1 = 2 ; re1 < R ; re1++){
  259. for(re2 = 3 ; re2 < C ; re2++){
  260. if(re2 % 4 == 0){
  261. if(grd_testDetlInfo.valueMatrix(re1, re2) != ""){
  262. grd_testDetlInfo.cellStyle("background-image", re1, re2+1) = "../../../lis/commonweb/images/icnMULTIRST.gif";
  263. }
  264. }
  265. }
  266. }
  267. }
  268. }
  269. function fgetcomment(){
  270. var gridCol = grd_testDetlInfo.col;
  271. var gridRow = grd_testDetlInfo.row;
  272. if(gridCol < 3){
  273. model.setValue("/root/hidden/measfact", "");
  274. model.refresh();
  275. return;
  276. }
  277. if(gridRow < 2){
  278. model.setValue("/root/hidden/measfact", "");
  279. model.refresh();
  280. return;
  281. }
  282. var calCol = grd_testDetlInfo.col - 1;
  283. if(calCol % 4 == 0){
  284. var cnts = grd_testDetlInfo.valueMatrix(gridRow, calCol);
  285. model.setValue("/root/hidden/measfact", cnts);
  286. }else{
  287. model.setValue("/root/hidden/measfact", "");
  288. }
  289. model.refresh();
  290. }
  291. ]]>
  292. </script>
  293. </xhtml:head>
  294. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  295. <group id="group4" scroll="auto" style="left:0px; top:11px; width:1195px; height:27px; ">
  296. <button id="button5" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  297. <caption>초기화</caption>
  298. <script type="javascript" ev:event="onclick">
  299. <![CDATA[
  300. window.reload(); //초기화reload
  301. ]]>
  302. </script>
  303. </button>
  304. <line id="line17" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  305. </group>
  306. <group id="group1" scroll="auto" style="left:0px; top:40px; width:1195px; height:744; ">
  307. <datagrid id="grd_testDetlInfo" nodeset="/root/main/rsltlist/row" class="datagrid2" colsep="^" colwidth="120" dataheight="25" defaultrows="1" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" selectionmode="free" tooltip="true" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:95px; width:1194px; height:525px; text-align:center; ">
  308. <script type="javascript" ev:event="onclick">
  309. <![CDATA[
  310. if(grd_testDetlInfo.isCell(event.target) && grd_testDetlInfo.row >= grd_testDetlInfo.fixedRows ){
  311. fgetcomment();
  312. }
  313. ]]>
  314. </script>
  315. </datagrid>
  316. <caption id="caption9" class="tit_2" style="left:5px; top:75px; width:130px; height:28px; ">검체정보상세내역</caption>
  317. <button id="button6" class="btn2_letter2" style="left:1148px; top:69px; width:42px; height:34px; ">
  318. <caption>엑셀</caption>
  319. <script type="javascript" ev:event="DOMActivate">
  320. <![CDATA[
  321. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  322. if (fileName != ""){
  323. grd_testDetlInfo.saveExcel(fileName);
  324. }
  325. ]]>
  326. </script>
  327. </button>
  328. <line id="line2" class="line_1" style="x1:0px; y1:90px; x2:1194px; y2:90px; "/>
  329. <button id="button1" class="icon_search" visibility="hidden" style="left:773px; top:33px; width:16px; height:16px; background-image:../../../com/commonweb/images/icon_search.gif; ">
  330. <caption/>
  331. <script type="javascript" ev:event="DOMActivate">
  332. <![CDATA[
  333. //modal("SMLLF90400", "", "", "", "", "/root/hidden/ref/tclscdlist/testgrup", "/root/hidden/tclscdlist/testgrup");
  334. ]]>
  335. </script>
  336. </button>
  337. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1193px; height:60px; "/>
  338. <button id="button3" class="btn1_letter2" style="left:1123px; top:20px; width:56px; height:22px; ">
  339. <caption>조회</caption>
  340. <script type="javascript" ev:event="DOMActivate">
  341. <![CDATA[
  342. fMicroGetRslt();
  343. //grd_testDetlInfo.frozenRows = 4;
  344. ]]>
  345. </script>
  346. </button>
  347. <select1 id="cbo_exeDept" ref="/root/send/testroom" class="combo_search" visibility="hidden" appearance="minimal" style="left:515px; top:8px; width:100px; height:19px; ">
  348. <choices>
  349. <itemset nodeset="/root/init/LB0111">
  350. <label ref="nm"/>
  351. <value ref="cd"/>
  352. </itemset>
  353. </choices>
  354. <script type="javascript" ev:event="xforms-select">
  355. <![CDATA[
  356. fSetEqmtCd(); //검사실에 대한 장비 조회
  357. ]]>
  358. </script>
  359. </select1>
  360. <button id="btn_testListSch" class="icon_search" style="left:363px; top:34px; width:16px; height:16px; background-image:../../../com/commonweb/images/icon_search.gif; ">
  361. <caption/>
  362. <script type="javascript" ev:event="DOMActivate">
  363. <![CDATA[
  364. if(model.getValue("/root/send/eqmtcd") == "00"){ //장비코드가 전체이면
  365. messageBox("장비를", "C002","");
  366. }else{
  367. fTestListSch(); //장비별 검사항목 팝업 뜨지롱
  368. }
  369. ]]>
  370. </script>
  371. </button>
  372. <select1 id="cbo_eqmtList" ref="/root/send/eqmtcd" class="combo_search" appearance="minimal" style="left:940px; top:8px; width:100px; height:19px; ">
  373. <choices>
  374. <itemset nodeset="/root/init/LB0701[etc01 = 'M']">
  375. <label ref="nm"/>
  376. <value ref="cd"/>
  377. </itemset>
  378. </choices>
  379. <script type="javascript" ev:event="xforms-select">
  380. <![CDATA[
  381. fTestListSch(); //장비에대한 검사항목 조회 팝업뜬다~~~
  382. ]]>
  383. </script>
  384. </select1>
  385. <caption id="caption1" class="search_no_b" style="left:195px; top:10px; width:15px; height:17px; vertical-align:middle; ">~</caption>
  386. <caption id="caption2" class="search_name" style="left:15px; top:33px; width:93px; height:17px; ">검사항목 :</caption>
  387. <caption id="caption3" class="search_name" visibility="hidden" style="left:435px; top:9px; width:75px; height:17px; ">검사실 :</caption>
  388. <input id="ipt_testCd" ref="/root/send/testnm" class="input_search" style="left:105px; top:32px; width:255px; height:19px; "/>
  389. <select1 id="combo3" ref="/root/send/acptflag" class="combo_search" appearance="minimal" style="left:940px; top:31px; width:100px; height:19px; ">
  390. <choices>
  391. <itemset nodeset="/root/init/LB0704">
  392. <label ref="nm"/>
  393. <value ref="cd"/>
  394. </itemset>
  395. </choices>
  396. </select1>
  397. <caption id="caption4" class="search_name" style="left:850px; top:9px; width:75px; height:17px; ">장비 :</caption>
  398. <select1 id="cbo_levlCd" ref="/root/send/levlcd" class="combo_search" appearance="minimal" style="left:515px; top:32px; width:255px; height:19px; ">
  399. <choices>
  400. <itemset nodeset="/root/init/LB0501">
  401. <label ref="nm"/>
  402. <value ref="cd"/>
  403. </itemset>
  404. </choices>
  405. </select1>
  406. <caption id="caption5" class="search_name" style="left:435px; top:33px; width:93px; height:17px; ">레벨 :</caption>
  407. <caption id="caption6" class="search_name" style="left:850px; top:32px; width:86px; height:17px; ">접수구분 :</caption>
  408. <line id="line1" class="line_4" style="x1:1108px; y1:8px; x2:1108px; y2:52px; "/>
  409. <input id="ipt_acptFromdd" ref="/root/send/acptfromdd" class="input_search" inputtype="date" style="left:105px; top:8px; width:85px; height:19px; "/>
  410. <caption id="caption7" class="search_name" style="left:15px; top:9px; width:90px; height:17px; ">접수일자 :</caption>
  411. <input id="ipt_acpTtodd" ref="/root/send/acpttodd" class="input_search" inputtype="date" style="left:210px; top:8px; width:85px; height:19px; "/>
  412. <line id="line3" class="line_1" style="x1:0px; y1:655px; x2:1194px; y2:655px; "/>
  413. <caption id="caption8" class="tit_2" style="left:5px; top:640px; width:130px; height:14px; ">조치사항 상세내역</caption>
  414. <textarea id="textarea1" ref="/root/hidden/measfact" style="left:0px; top:660px; width:1194px; height:75px; "/>
  415. </group>
  416. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  417. <caption id="caption16" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">QC 결과조회</caption>
  418. </group>
  419. </xhtml:body>
  420. </xhtml:html>