SMLQJ00300_검사항목별결과관리.xrw 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052
  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>QC 검사항목별 결과관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <testrslt>
  11. <chk/>
  12. <bcno/>
  13. <matrnm/>
  14. <levlnm/>
  15. <acptdt/>
  16. <testcd/>
  17. </testrslt>
  18. <testrsltinfo>
  19. <bcno/>
  20. <matrcd/>
  21. <levlcd/>
  22. <testcd/>
  23. <acptdt/>
  24. <rsltcnfmdt/>
  25. <rsltcnfmid/>
  26. <orgrslt/>
  27. <viewrslt/>
  28. <wgmrstat/>
  29. <measfactcd/>
  30. <measfactcnts/>
  31. <judgmark/>
  32. <wgmrmark/>
  33. <rsltstat/>
  34. <rsltkind/>
  35. <refkind/>
  36. <refflag/>
  37. <refl/>
  38. <refh/>
  39. <refls/>
  40. <refhs/>
  41. <refcval/>
  42. <intrsltfrmt/>
  43. <avge/>
  44. <rsltunit/>
  45. <wgmrscop/>
  46. <sdval/>
  47. <judgkind/>
  48. <rundkind/>
  49. <lotno/>
  50. <matrnm/>
  51. <prodcmpy/>
  52. <levlnm/>
  53. <bfcolumn0/>
  54. <bfcolumn1/>
  55. <bfcolumn2/>
  56. <bfcolumn3/>
  57. <bfcolumn4/>
  58. <bfcolumn5/>
  59. <bfcolumn6/>
  60. <bfcolumn7/>
  61. <bfcolumn8/>
  62. <bfrsltcnfmid/>
  63. <bfrsltcnfmdt/>
  64. <iud/>
  65. <instcd/>
  66. <userdeptflagcd/>
  67. <eqmtcd/>
  68. <acptflag/>
  69. </testrsltinfo>
  70. </main>
  71. <send>
  72. <testnm/>
  73. <testnm2/>
  74. <testcd/>
  75. <testcd2/>
  76. <rsltstat/>
  77. </send>
  78. <init/>
  79. <hidden>
  80. <ref>
  81. <acptfromdd/>
  82. <acpttodd/>
  83. <testroom>00</testroom>
  84. <eqmtcd>00</eqmtcd>
  85. <testnm/>
  86. <levlcd/>
  87. <basecdid/>
  88. <testlist>
  89. <testnm/>
  90. <testcd/>
  91. <testcd2/>
  92. <testnm2/>
  93. </testlist>
  94. <testcdlist/>
  95. <rsltflag>1</rsltflag>
  96. <acptflag>00</acptflag>
  97. <levllist>
  98. <levlnm/>
  99. <levlcd/>
  100. <levlcd2/>
  101. </levllist>
  102. </ref>
  103. <rsltinfo>
  104. <rsltstat>
  105. <rsltstat/>
  106. <wgmrmark/>
  107. <judgmark/>
  108. </rsltstat>
  109. <refval/>
  110. <wgmrscop/>
  111. <wgmrstat/>
  112. <avge/>
  113. <sdval/>
  114. <lotno/>
  115. <prodcmpy/>
  116. <orgrslt/>
  117. <measfactcnts/>
  118. <acptdt/>
  119. <bfrsltcnfmdt/>
  120. <rsltcnfmid/>
  121. <bfrsltcnfmid/>
  122. <rsltcnfmdt/>
  123. <rsltunit/>
  124. <bfrslt/>
  125. <measfactcd/>
  126. </rsltinfo>
  127. </hidden>
  128. </root>
  129. </instance>
  130. <script type="javascript" ev:event="xforms-model-construct-done">
  131. <![CDATA[
  132. fSetinit();
  133. ]]>
  134. </script>
  135. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  136. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  137. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  138. <script type="javascript" src="../../../com/commonweb/js/numericHelper.js"/>
  139. <script type="javascript" src="../../../lis/commonweb/js/LLZ001.js"/>
  140. <script type="javascript" src="../../../lis/commonweb/js/LQZ001.js"/>
  141. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0111"/>
  142. <submission id="TRLQJ00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  143. <bind id="bind0" ref="/root/main/testrslt/column0" readonly="../column0/@readonly = 'true'"/>
  144. <bind id="bind1" ref="/root/main/testrslt/column1" readonly="../column1/@readonly = 'true'"/>
  145. <bind id="bind2" ref="/root/main/testrslt/column2" readonly="../column2/@readonly = 'true'"/>
  146. <bind id="bind3" ref="/root/main/testrslt/column3" readonly="../column3/@readonly = 'true'"/>
  147. <bind id="bind4" ref="/root/main/testrslt/column4" readonly="../column4/@readonly = 'true'"/>
  148. <bind id="bind5" ref="/root/main/testrslt/column5" readonly="../column5/@readonly = 'true'"/>
  149. <bind id="bind6" ref="/root/main/testrslt/column6" readonly="../column6/@readonly = 'true'"/>
  150. <bind id="bind7" ref="/root/main/testrslt/column7" readonly="../column7/@readonly = 'true'"/>
  151. <bind id="bind8" ref="/root/main/testrslt/column8" readonly="../column8/@readonly = 'true'"/>
  152. <bind id="bind9" ref="/root/main/testrslt/column9" readonly="../column9/@readonly = 'true'"/>
  153. <bind id="bind10" ref="/root/main/testrslt/column10" readonly="../column10/@readonly = 'true'"/>
  154. <bind id="bind11" ref="/root/main/testrslt/column11" readonly="../column11/@readonly = 'true'"/>
  155. <bind id="bind12" ref="/root/main/testrslt/column12" readonly="../column12/@readonly = 'true'"/>
  156. <bind id="bind13" ref="/root/main/testrslt/column13" readonly="../column13/@readonly = 'true'"/>
  157. <bind id="bind14" ref="/root/main/testrslt/column14" readonly="../column14/@readonly = 'true'"/>
  158. <bind id="bind15" ref="/root/main/testrslt/column15" readonly="../column15/@readonly = 'true'"/>
  159. <bind id="bind16" ref="/root/main/testrslt/column16" readonly="../column16/@readonly = 'true'"/>
  160. <bind id="bind17" ref="/root/main/testrslt/column17" readonly="../column17/@readonly = 'true'"/>
  161. <bind id="bind18" ref="/root/main/testrslt/column18" readonly="../column18/@readonly = 'true'"/>
  162. <bind id="bind19" ref="/root/main/testrslt/column19" readonly="../column19/@readonly = 'true'"/>
  163. <bind id="bind20" ref="/root/main/testrslt/column20" readonly="../column20/@readonly = 'true'"/>
  164. <bind id="bind21" ref="/root/main/testrslt/column21" readonly="../column21/@readonly = 'true'"/>
  165. <bind id="bind22" ref="/root/main/testrslt/column22" readonly="../column22/@readonly = 'true'"/>
  166. <bind id="bind23" ref="/root/main/testrslt/column23" readonly="../column23/@readonly = 'true'"/>
  167. <bind id="bind24" ref="/root/main/testrslt/column24" readonly="../column24/@readonly = 'true'"/>
  168. <bind id="bind25" ref="/root/main/testrslt/column25" readonly="../column25/@readonly = 'true'"/>
  169. <bind id="bind26" ref="/root/main/testrslt/column26" readonly="../column26/@readonly = 'true'"/>
  170. <bind id="bind27" ref="/root/main/testrslt/column27" readonly="../column27/@readonly = 'true'"/>
  171. <bind id="bind28" ref="/root/main/testrslt/column28" readonly="../column28/@readonly = 'true'"/>
  172. <bind id="bind29" ref="/root/main/testrslt/column29" readonly="../column29/@readonly = 'true'"/>
  173. <bind id="bind30" ref="/root/main/testrslt/column30" readonly="../column30/@readonly = 'true'"/>
  174. <bind id="bind31" ref="/root/main/testrslt/column31" readonly="../column31/@readonly = 'true'"/>
  175. <bind id="bind32" ref="/root/main/testrslt/column32" readonly="../column32/@readonly = 'true'"/>
  176. <bind id="bind33" ref="/root/main/testrslt/column33" readonly="../column33/@readonly = 'true'"/>
  177. <bind id="bind34" ref="/root/main/testrslt/column34" readonly="../column34/@readonly = 'true'"/>
  178. <submission id="TXLQJ00301" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  179. </model>
  180. <script type="javascript">
  181. <![CDATA[
  182. var vStartCol = 6; //결과값이 조회되는 컬럼
  183. //초기화
  184. function fSetinit(){
  185. //var fromdate = getCurrentDate().toDate("YYYYMMDD").getAddDate(-30)
  186. //model.setValue("/root/hidden/ref/acptfromdd" , fromdate.getDateFormat("YYYYMMDD"));
  187. model.setValue("/root/hidden/ref/acptfromdd" , getCurrentDate());
  188. model.setValue("/root/hidden/ref/acpttodd" , getCurrentDate());
  189. model.makeValue("/root/send/codeflag" ,"0000|0111|0701|0703|"); //0000:사용자부서코드, 0111:시행부서계, 0707: 장비코드, 0703:조치사유
  190. submit("TRLZZ00101", false);
  191. model.makeValue("/root/send/basecdid" , model.getValue("/root/init/LB0000/nm"));
  192. model.setValue("/root/send/codeflag" , "0501|0704|"); //사용자 부서별로 레벨코드를 조회하기 위해 사용자부서 코드를 가져온 다음 다시 레벨코드 조회
  193. submit("TRLZZ00101");
  194. grd_testRslt.fixedcellcheckbox(0, 1) = true;
  195. grd_testRslt.fixedcellischeck(0, 1) = false;
  196. //grd_testRslt.rowHidden(1) = true; //검사코드
  197. }
  198. //검사실에 따른 장비 조회
  199. function fSetEqmtCd(){
  200. model.removeNodeset("/root/init/LB0701");
  201. var testroom = model.getValue("/root/hidden/ref/testroom");
  202. model.makeValue("/root/send/basecdid", testroom); //검사실구분 코드(장비코드앞자리)
  203. model.setValue("/root/send/codeflag","0701|");
  204. model.setValue("/root/hidden/ref/eqmtcd", "00");
  205. submit("TRLZZ00101");
  206. }
  207. //장비별 검사항목 조회 팝업
  208. function fTestListSch(){
  209. var eqmtcd = model.getValue("/root/hidden/ref/eqmtcd"); //장비코드
  210. var deptflag = model.getValue("/root/init/LB0000/nm"); //사용자부서코드
  211. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag;
  212. setParameter("opener_parameter_id", sflag);
  213. modal("SPLQP00100", "", "", "", "", "", "");
  214. model.setValue("/root/hidden/ref/testnm", model.getValue("/root/hidden/ref/testlist/testnm")); //검사명
  215. model.setValue("/root/send/testnm" , model.getValue("/root/hidden/ref/testlist/testnm")); //검사명
  216. model.setValue("/root/send/testnm2" , model.getValue("/root/hidden/ref/testlist/testnm2")); //검사명
  217. model.setValue("/root/send/testcd" , model.getValue("/root/hidden/ref/testlist/testcd")); //검사코드를 받아와서 셋팅~
  218. model.setValue("/root/send/testcd2" , model.getValue("/root/hidden/ref/testlist/testcd2"));
  219. model.refresh();
  220. fGrdSet();//검사항목에 따른 그리드 셋팅
  221. }
  222. //검사항목별 레벨 조회 팝업
  223. function fTestLevlSch(){
  224. var eqmtcd = model.getValue("/root/send/eqmtcd"); //장비코드
  225. var deptflag = model.getValue("/root/init/LB0000/nm"); //사용자부서코드
  226. var sflag = "nu" + "▦" + eqmtcd + "▦" + deptflag;
  227. setParameter("opener_parameter_id", sflag);
  228. modal("SPLQP00200", "", "", "", "", "", "");
  229. //model.makeValue("/root/send/levlnm" , model.getValue("/root/hidden/ref/levllist/levlnm")); //레벨명
  230. model.setValue("/root/hidden/ref/levlcd" , model.getValue("/root/hidden/ref/levllist/levlcd")); //레벨코드
  231. //model.makeValue("/root/send/levlcd2" , model.getValue("/root/hidden/ref/levllist/levlcd2"));
  232. model.refresh();
  233. }
  234. //검사항목에 따른 그리드 셋팅
  235. function fGrdSet(){
  236. if(model.getValue("/root/hidden/ref/testlist/testnm") != ""){
  237. model.removeNodeset("/root/main/rslt");
  238. grd_testRslt.addRow(); //요거 안해주면 컬럼 안사라져서 이상하게됨 -_-
  239. //그리드 컬럼 추가 및 캡션 설정 //컬럼 추가때 사용
  240. var vCap = "^검체번호^QC물질^레벨^접수일시"; //캡션 초기화(고정인 컬럼 캡션)//검사명
  241. var vCap2 = vCap //검사코드
  242. var vTestnm = model.getValue("/root/hidden/ref/testlist/testnm2").split("▦"); //검사항목을 ▦단위로 쪼개서 담고
  243. var vTestcd = model.getValue("/root/hidden/ref/testlist/testcd").split("▦"); //검사항목을 ▦단위로 쪼개서 담고
  244. //1번째 컬럼을 제외하고 다 지운다~~
  245. for(i = grd_testRslt.cols; i>vStartCol; i--){
  246. grd_testRslt.removeColumn(false);
  247. }
  248. if(vTestnm.length > 30) {
  249. alert("최대조회 항목 수는 30개입니다\n검사항목을 다시 선택하세요!!");
  250. fTestListSch();
  251. return;
  252. }
  253. //검사항목 갯수만큼 컬럼 추가
  254. for(i = 0; i<vTestnm.length ; i++){ //선택한 검사항목 갯수만큼
  255. vCap = vCap + "^" + vTestnm[i]; //캡션에 하나씩 넣어주고
  256. vCap2 = vCap2 + "^" + vTestcd[i];
  257. grd_testRslt.addColumn("ref:column"+ i +"; type:input;", false); //컬럼 ref설정 및 input타입으로 컬럼 추가
  258. }
  259. grd_testRslt.caption = vCap + "|" + vCap2;
  260. }
  261. //grd_testRslt.refresh();
  262. model.resetInstanceNode("/root/hidden/rsltinfo");
  263. model.removeNodeset("/root/main/testrslt");
  264. model.refresh();
  265. }
  266. //결과조회
  267. function fGetTestRslt(){
  268. var eqmtcd = model.getValue("/root/hidden/ref/eqmtcd");
  269. var levlcd = model.getValue("/root/hidden/ref/levlcd");
  270. if(eqmtcd == "00"){
  271. messageBox("장비를", "C002","");
  272. return;
  273. }
  274. if(model.getValue("/root/hidden/ref/testlist/testnm") == ""){
  275. messageBox("검사항목을", "C002","");
  276. return;
  277. }
  278. if(levlcd == "" || levlcd == "00"){
  279. messageBox("레벨을", "C002","");
  280. return;
  281. }
  282. grd_testRslt.rebuildStyle();
  283. model.makeValue("/root/send/acptfromdd" , model.getValue("/root/hidden/ref/acptfromdd"));
  284. model.makeValue("/root/send/acpttodd" , model.getValue("/root/hidden/ref/acpttodd"));
  285. model.makeValue("/root/send/testroom" , model.getValue("/root/hidden/ref/testroom"));
  286. model.makeValue("/root/send/eqmtcd" , eqmtcd);
  287. model.makeValue("/root/send/levlcd" , levlcd);
  288. model.makeValue("/root/send/rsltflag" , model.getValue("/root/hidden/ref/rsltflag"));
  289. model.makeValue("/root/send/acptflag" , model.getValue("/root/hidden/ref/acptflag"));
  290. model.makeValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm"));
  291. submit("TRLQJ00301");
  292. fGrdReMake();//조회후 그리드 readonly에 따른 배경색 지정
  293. }
  294. //조회후 그리드 배경색 지정
  295. function fGrdReMake(){
  296. var testcd = model.getValue("/root/send/testcd");
  297. var length = testcd.split("▦").length;
  298. for (i = 1; i<grd_testRslt.rows; i++){ //row
  299. for(j = 0; j<length; j++){ //col
  300. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@readonly") == "true"){
  301. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#eaeaea"; //상단 검사코드때문에 i+1
  302. }else {
  303. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@wgmrmark") == "W"){
  304. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#99cf16";
  305. }/*else{
  306. grd_testRslt.cellStyle("background-color", i+1, j+vStartCol) = "#ffffff";
  307. }*/
  308. if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@judgmark") == "H"){
  309. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#ff0000";
  310. }else if(model.getValue("/root/main/testrslt[" + i + "]/column"+ j +"/@judgmark") == "L"){
  311. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#0000ff";
  312. }/*else{
  313. grd_testRslt.cellStyle("color", i+1, j+vStartCol) = "#000000";
  314. }*/
  315. }
  316. }
  317. }
  318. }
  319. //결과상세정보 복사
  320. function fGetRsltInfo(row, col){
  321. var findData = model.getValue("/root/main/testrslt[" + row + "]/bcno") + grd_testRslt.valueMatrix(1, col); //검체코드+검사코드
  322. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  323. if(findRow != "-1"){
  324. var acptdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/acptdt"); //접수일시
  325. var rsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmdt"); //결과확인일시
  326. var rsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmid"); //확인자
  327. var orgrslt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt"); //실제결과
  328. var rsltstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltstat"); //결과상태
  329. var wgmrstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat"); //WGMR상태
  330. var measfactcd = model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcd"); //조치사항코드
  331. var measfactcnts = model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts"); //조치사항
  332. var judgmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgmark"); //판정마크
  333. var wgmrmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark"); //WGMR판정마크
  334. //var rsltkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltkind"); //결과유형
  335. var refkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refkind"); //참고치유형
  336. //var refflag = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refflag"); //참고치구분
  337. var refl = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refl"); //참고치하한
  338. var refh = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refh"); //참고치상한
  339. //var refls = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refls"); //하부등호
  340. //var refhs = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refhs"); //상부등호
  341. var refcval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refcval"); //참고치문자
  342. //var intrsltfrmt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/intrsltfrmt"); //숫자결과포멧
  343. var avge = model.getValue("/root/main/testrsltinfo[" + findRow + "]/avge"); //평균
  344. var rsltunit = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltunit"); //단위
  345. var wgmrscop = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrscop"); //WGMR범위
  346. var sdval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/sdval"); //표준편차
  347. //var judgkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgkind"); //판정유형
  348. //var rundkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rundkind"); //반올림유형
  349. var lotno = model.getValue("/root/main/testrsltinfo[" + findRow + "]/lotno"); //LotNO
  350. var prodcmpy = model.getValue("/root/main/testrsltinfo[" + findRow + "]/prodcmpy"); //제조회사
  351. var bfrsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmid"); //이전결과확인자
  352. var bfrsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmdt"); //이전결과검사일시
  353. var bfrslt1 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn0"); //이전결과1
  354. //var bfrslt2 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn1"); //이전결과2
  355. //var bfrslt3 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn2");
  356. //var bfrslt4 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn3");
  357. //var bfrslt5 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn4");
  358. //var bfrslt6 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn5");
  359. //var bfrslt7 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn6");
  360. //var bfrslt8 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn7");
  361. //var bfrslt9 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn8");
  362. model.setValue("/root/hidden/rsltinfo/rsltstat/judgmark" , judgmark);
  363. model.setValue("/root/hidden/rsltinfo/rsltstat/wgmrmark", wgmrmark);
  364. model.setValue("/root/hidden/rsltinfo/rsltstat/rsltstat" , rsltstat);
  365. model.setValue("/root/hidden/rsltinfo/wgmrstat" , wgmrstat);
  366. model.setValue("/root/hidden/rsltinfo/avge" , avge);
  367. model.setValue("/root/hidden/rsltinfo/sdval" , sdval);
  368. model.setValue("/root/hidden/rsltinfo/wgmrscop" , wgmrscop);
  369. model.setValue("/root/hidden/rsltinfo/lotno" , lotno);
  370. model.setValue("/root/hidden/rsltinfo/prodcmpy" , prodcmpy);
  371. model.setValue("/root/hidden/rsltinfo/orgrslt" , orgrslt);
  372. model.setValue("/root/hidden/rsltinfo/rsltunit" , rsltunit);
  373. model.setValue("/root/hidden/rsltinfo/acptdt" , acptdt);
  374. model.setValue("/root/hidden/rsltinfo/rsltcnfmdt" , rsltcnfmdt);
  375. model.setValue("/root/hidden/rsltinfo/rsltcnfmid" , rsltcnfmid);
  376. model.setValue("/root/hidden/rsltinfo/bfrsltcnfmdt" , bfrsltcnfmdt);
  377. model.setValue("/root/hidden/rsltinfo/bfrsltcnfmid" , bfrsltcnfmid);
  378. model.setValue("/root/hidden/rsltinfo/measfactcd" , measfactcd);
  379. model.setValue("/root/hidden/rsltinfo/measfactcnts" , measfactcnts);
  380. model.setValue("/root/hidden/rsltinfo/bfrslt" , bfrslt1);
  381. if(refkind == "1"){ //1:문자, 2:숫자, 0:없음
  382. model.setValue("/root/hidden/rsltinfo/refval", refcval);
  383. }else if(refkind == "2"){
  384. model.setValue("/root/hidden/rsltinfo/refval", refl + "~" + refh);
  385. }
  386. }else{ //검체번호+검사코드가 없으면 결과상세정보 초기화
  387. model.resetInstanceNode("/root/hidden/rsltinfo");
  388. }
  389. model.refresh();
  390. }
  391. //결과입력 키 이벤트
  392. function fGrdKeyEvent(row, col){
  393. var findData = model.getValue("/root/main/testrslt[" + row + "]/bcno") + grd_testRslt.valueMatrix(1, col); //검체코드+검사코드
  394. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  395. var inptrslt = grd_testRslt.valueMatrix(grd_testRslt.row, col);
  396. if(inptrslt == ""){
  397. //다음행으로
  398. for (i = row+2; i < grd_testRslt.rows; i++) {
  399. var isReadonly = model.getValue("/root/main/testrslt[" + (i-1) + "]/column"+ (col-vStartCol) +"/@readonly");
  400. if (isReadonly == "false") {
  401. grd_testRslt.row = i;
  402. break;
  403. }
  404. }
  405. return;
  406. }
  407. //if(findRow != "-1"){
  408. var vViewRslt = "";
  409. var vJudgLH = "";
  410. var vJudgWGMR = "";
  411. //var acptdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/acptdt"); //접수일시
  412. //var rsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmdt"); //결과확인일시
  413. //var rsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltcnfmid"); //확인자
  414. //var orgrslt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt"); //실제결과
  415. //var rsltstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltstat"); //결과상태
  416. //var wgmrstat = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat"); //WGMR상태
  417. //var measfactcnts = model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts"); //조치사항
  418. //var judgmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgmark"); //판정마크
  419. //var wgmrmark = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark"); //WGMR판정마크
  420. var rsltkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltkind"); //결과유형
  421. var refkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refkind"); //참고치유형
  422. var refflag = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refflag"); //참고치구분
  423. var refl = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refl"); //참고치하한
  424. var refh = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refh"); //참고치상한
  425. var refls = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refls"); //하부등호
  426. var refhs = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refhs"); //상부등호
  427. var refcval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/refcval"); //참고치문자
  428. var intrsltfrmt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/intrsltfrmt"); //숫자결과포멧
  429. var avge = model.getValue("/root/main/testrsltinfo[" + findRow + "]/avge"); //평균
  430. //var rsltunit = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rsltunit"); //단위
  431. var wgmrscop = model.getValue("/root/main/testrsltinfo[" + findRow + "]/wgmrscop"); //WGMR범위
  432. var sdval = model.getValue("/root/main/testrsltinfo[" + findRow + "]/sdval"); //표준편차
  433. var judgkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/judgkind"); //판정유형
  434. var rundkind = model.getValue("/root/main/testrsltinfo[" + findRow + "]/rundkind"); //반올림유형
  435. //var lotno = model.getValue("/root/main/testrsltinfo[" + findRow + "]/lotno"); //LotNO
  436. //var prodcmpy = model.getValue("/root/main/testrsltinfo[" + findRow + "]/prodcmpy"); //제조회사
  437. //var bfrsltcnfmid = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmid"); //이전결과확인자
  438. //var bfrsltcnfmdt = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfrsltcnfmdt"); //이전결과검사일시
  439. var bfrslt1 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn0"); //이전결과1
  440. var bfrslt2 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn1"); //이전결과2
  441. var bfrslt3 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn2");
  442. var bfrslt4 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn3");
  443. var bfrslt5 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn4");
  444. var bfrslt6 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn5");
  445. var bfrslt7 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn6");
  446. var bfrslt8 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn7");
  447. var bfrslt9 = model.getValue("/root/main/testrsltinfo[" + findRow + "]/bfcolumn8");
  448. var inptrslt = grd_testRslt.valueMatrix(grd_testRslt.row, col);
  449. vViewRslt = fCOMLIS_CvtRslt(inptrslt, rsltkind, intrsltfrmt, rundkind); //결과유형 판별 및 반올림옵션 적용
  450. vJudgLH = fCOMLIS_QCJudgLH(inptrslt, judgkind, refkind, refflag, refl, refls, refh, refhs); //L/H구분 //판정하기 위해 함수 호출
  451. if (wgmrscop != "NNNNNN"){
  452. if(wgmrscop != "YYNNNN" && wgmrscop != "YNNNNN" && wgmrscop != "NYNNNN" ){ //이전결과와 비교하는 판정은 일치하지 않을 수도 있기에 YYNNNN까지만 판정
  453. wgmrscop = "YYNNNN";
  454. }
  455. vJudgWGMR = fCOMLIS_QCJudgWGMR(inptrslt, wgmrscop, avge, sdval, bfrslt1, bfrslt2, bfrslt3, bfrslt4, bfrslt5, bfrslt6, bfrslt7, bfrslt8, bfrslt9); //WGMR 판정 함수 호출
  456. }
  457. if(vViewRslt == "err") { //결과유형이 숫자로 되어있는데 문자로 입력되어있을때 등등... (239Line - fCOMLIS_CvtRslt)
  458. model.setValue("/root/main/testrslt/[" + row+1 + "]/column"+ col-vStartCol,"");
  459. alert("결과유형이 맞지 않습니다");
  460. return;
  461. }
  462. model.setValue("/root/hidden/rsltinfo/wgmrstat" , vJudgWGMR); //결과상세정보에 복사
  463. model.setValue("/root/hidden/rsltinfo/orgrslt" , inptrslt); //결과상세정보의 실제결과로
  464. model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrstat" , vJudgWGMR); //grd2로
  465. model.setValue("/root/main/testrsltinfo[" + findRow + "]/orgrslt" , inptrslt); //실제결과를 grd2로
  466. model.setValue("/root/main/testrsltinfo[" + findRow + "]/viewrslt" , vViewRslt); //보이는결과를 grd2로
  467. model.setValue("/root/main/testrsltinfo[" + findRow + "]/judgmark" , vJudgLH); //판정마크를 숨grd2로
  468. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol), vViewRslt); //보이는결과를 결과 그리드에 넣어줌
  469. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark", vJudgLH);
  470. model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/judgmark", vJudgLH); //결과상세정보로
  471. if(vJudgWGMR != ""){
  472. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark", "W"); //결과의 wgmr어트리뷰트에 넣어줌
  473. model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/wgmrmark" , "W"); //결과상세정보의 결과 내역으로 넣어줌
  474. model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark", "W");
  475. }else {
  476. model.setValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark", "");
  477. model.setValue("/root/hidden/rsltinfo/rsltstat[" +1+"]/wgmrmark", "");
  478. model.setValue("/root/main/testrsltinfo[" + findRow + "]/wgmrmark", "");
  479. }
  480. //판정에 따라 그리드 색 변경
  481. if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@wgmrmark") == "W"){
  482. grd_testRslt.cellStyle("background-color", (row+1), col) = "#99cf16";
  483. }else{
  484. grd_testRslt.cellStyle("background-color", (row+1), col) = "#fffff";
  485. }
  486. if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark") == "H"){
  487. grd_testRslt.cellStyle("color", (row+1), col) = "#ff0000";
  488. }else if(model.getValue("/root/main/testrslt[" + (row) + "]/column"+ (col-vStartCol) +"/@judgmark") == "L"){
  489. grd_testRslt.cellStyle("color", (row+1), col) = "#0000ff";
  490. }else{
  491. grd_testRslt.cellStyle("color", (row+1), col) = "#000000";
  492. }
  493. //}
  494. model.setValue("/root/main/testrslt[" + row + "]/chk", "1"); //체크 선택
  495. //readonly가 아닌 다음행으로 고고싱
  496. for (i = row+2; i <= grd_testRslt.rows; i++) {
  497. var isReadonly = model.getValue("/root/main/testrslt[" + (i-1) + "]/column"+ (col-vStartCol) +"/@readonly");
  498. if(i == grd_testRslt.rows){ //마지막행일때는 옆칸 첫행으로 이동함
  499. grd_testRslt.row = 2
  500. grd_testRslt.col += 1 ;
  501. }
  502. if (isReadonly == "false") {
  503. grd_testRslt.row = i;
  504. break;
  505. }
  506. }
  507. //grd_testRslt.row = row+2; //다음행으로
  508. fGetRsltInfo(grd_testRslt.row-1, col); //검사상세정보 조회
  509. //model.refresh();
  510. }
  511. //키다운 이벤트
  512. function fGrdKeyDown(){
  513. if(event.keyCode == "38"){ //방향키↑키라면
  514. fGetRsltInfo(grd_testRslt.row-2, grd_testRslt.col);
  515. }else if(event.keyCode == "40"){//방향키↓키라면
  516. fGetRsltInfo(grd_testRslt.row, grd_testRslt.col);
  517. }else if(event.keyCode == "37"){//방향키←키라면
  518. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col-1);
  519. }else if(event.keyCode == "39"){//방향키→키라면
  520. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col+1);
  521. }
  522. }
  523. //소견저장
  524. function fCntsSet(row, col){
  525. var findData = model.getValue("/root/main/testrslt[" + row + "]/bcno") + grd_testRslt.valueMatrix(1, col); //검체코드+검사코드
  526. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  527. var measfactcnts = model.getValue("/root/hidden/rsltinfo/measfactcnts");
  528. var measfactcd = model.getValue("/root/hidden/rsltinfo/measfactcd");
  529. model.setValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts", measfactcnts);
  530. model.setValue("/root/main/testrsltinfo[" + findRow + "]/measfactcd", measfactcd);
  531. model.setValue("/root/main/testrslt[" + (grd_testRslt.row-1) +"]/chk", "1"); //조치사항 입력한 Row 체크하기..
  532. }
  533. function fPopMenu(row, col){
  534. model.removeNodeset("/root/hidden/popupmenu");
  535. if(event.button == 3){ // 라이트클릭 메뉴만들기...
  536. model.makeNode("/root/hidden/popupmenu/grid");
  537. model.makeNode("/root/hidden/popupmenu/grid/item");
  538. model.makeValue("/root/hidden/popupmenu/grid/item["+1+"]/name" , "▶ 제외");
  539. model.makeValue("/root/hidden/popupmenu/grid/item["+1+"]/func" , "fRemove");
  540. }
  541. if(grd_testRslt.isCell(event.target) && grd_testRslt.mouseCol >= vStartCol){
  542. setPopupMenu("grd_testRslt", false, "/root/hidden/popupmenu/grid/item", "name", "func");
  543. }else{
  544. window.setPopupMenu(false);
  545. }
  546. }
  547. function fRemove(){
  548. grd_testRsltInfo.clearStatus();
  549. var findData = model.getValue("/root/main/testrslt[" + (grd_testRslt.row-1) + "]/bcno") + grd_testRslt.valueMatrix(1, grd_testRslt.col); //검체코드+검사코드
  550. var findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  551. //alert(findRow+ " "+ findData);
  552. grd_testRsltInfo.addStatus(findRow, "update");
  553. model.setValue("/root/main/testrsltinfo[" + findRow + "]/iud", "R"); //결과상태를 iud에
  554. if(model.getValue("/root/main/testrsltinfo[" + findRow + "]/measfactcnts") == ""){
  555. alert("제외하실 항목을 선택 후\n조치사항에 사유를 입력하세요!");
  556. }else{
  557. fSetSave("R");
  558. }
  559. }
  560. // 보고 방법 변경 버튼
  561. function fSetreptmthdchng(){
  562. }
  563. // 저장 버튼
  564. function fSetSave(stat){
  565. if(messageBox("", "Q004")==6){ //실행하시겠습니까? 6:ok
  566. var findData, findRow;
  567. if(stat != "R"){
  568. grd_testRsltInfo.clearStatus();
  569. for(i = 1; i < grd_testRslt.rows; i++){
  570. if (model.getValue("/root/main/testrslt[" + i + "]/chk") == "1"){
  571. for(j = 0; j<grd_testRslt.cols-vStartCol; j++){
  572. if (model.getValue("/root/main/testrslt[" + i + "]/column"+j) != ""){
  573. findData = model.getValue("/root/main/testrslt[" + i + "]/bcno") + grd_testRslt.valueMatrix(1, j + vStartCol); //검체코드+검사코드
  574. findRow = grd_testRsltInfo.findRow(findData, 0, 1);
  575. grd_testRsltInfo.addStatus(findRow, "update");
  576. model.setValue("/root/main/testrsltinfo[" + findRow + "]/iud", stat); //결과상태를 iud에
  577. }
  578. }
  579. }
  580. }
  581. }
  582. if(checkGridUpdate(grd_testRsltInfo)){ //저장데이터 유무 체크
  583. model.setValue("/root/send/rsltstat", stat);
  584. model.makeValue("/root/send/testrsltlist", grd_testRsltInfo.getUpdateData());
  585. if(submit("TXLQJ00301")){
  586. grd_testRslt.fixedcellischeck(0, 1) = false; //올첵 해제
  587. fGetTestRslt(); //결과 재조회
  588. }
  589. }else{
  590. alert("저장할 자료가 존재하지 않습니다!");
  591. return;
  592. }
  593. }//end if(실행할래?);
  594. }
  595. function fSetFactCnts(){
  596. model.setValue("/root/hidden/rsltinfo/measfactcnts", cbo_cntcd.label);
  597. textarea1.refresh();
  598. fCntsSet(grd_testRslt.row-1, grd_testRslt.col);
  599. }
  600. //저장 데이터 확인
  601. function checkGridUpdate(grid){
  602. var uData = grid.getUpdateDataXml("update");
  603. if (uData==""){
  604. return false;
  605. }else{
  606. return true;
  607. }
  608. }
  609. ]]>
  610. </script>
  611. </xhtml:head>
  612. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  613. <group id="group1" style="left:0px; top:40px; width:1195px; height:744px; font-size:18pt; ">
  614. <datagrid id="grd_testRslt" nodeset="/root/main/testrslt" caption="^검체번호^QC물질^레벨^접수일시|^검체번호^QC물질^레벨^접수일시" colsep="^" colwidth="20, 90, 120, 80,120,60" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" selectionmode="free" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:100px; width:1013px; height:621px; ">
  615. <col checkvalue="1,0" ref="chk" type="checkbox"/>
  616. <col ref="bcno"/>
  617. <col ref="matrnm"/>
  618. <col ref="levlnm"/>
  619. <col ref="acptdt" format="yyyy-mm-dd hh:nn:ss"/>
  620. <script type="javascript" ev:event="onclick">
  621. <![CDATA[
  622. if(isDataCell() && grd_testRslt.col >= vStartCol){
  623. fGetRsltInfo(grd_testRslt.row-1, grd_testRslt.col); //row에 -1을 해준 이유는 캡션의 검사코드 row때문에..
  624. }/*else if(isDataCell() && grd_testRslt.col == 1){
  625. fSetChk(); //체크박스
  626. }*/
  627. else{
  628. model.resetInstanceNode("/root/hidden/rsltinfo");
  629. model.refresh();
  630. }
  631. ]]>
  632. </script>
  633. <script type="javascript" ev:event="onkeypress">
  634. <![CDATA[
  635. if(event.keyCode == "13"){
  636. fGrdKeyEvent(grd_testRslt.row-1, grd_testRslt.col); //결과 입력 키이벤트
  637. }
  638. ]]>
  639. </script>
  640. <script type="javascript" ev:event="onkeydown">
  641. <![CDATA[
  642. fGrdKeyDown();
  643. ]]>
  644. </script>
  645. <script type="javascript" ev:event="onmousedown">
  646. <![CDATA[
  647. fPopMenu(grd_testRslt.row-1, grd_testRslt.col);
  648. ]]>
  649. </script>
  650. <script type="javascript" ev:event="xforms-value-changed">
  651. <![CDATA[
  652. if(grd_testRslt.col > 5){
  653. fGrdKeyEvent(grd_testRslt.row-1, grd_testRslt.col);
  654. }
  655. ]]>
  656. </script>
  657. </datagrid>
  658. <datagrid id="grd_testRsltInfo" nodeset="/root/main/testrsltinfo" visibility="hidden" caption="검체번호+검사코드^^검체번호^물질코드^레벨코드^검사코드^접수일시^확인일시^검사자^실제결과^보이는결과^wgmr상태^조치코드^조치사항^판정마크^wgmr판정^결과상태^결과유형^참고치유형^참고치구분^하한^상한^하부등호^상부등호^참고치문자^숫자결과포멧^평균^단위^wgmr범위^편차^판정유형^반올림유형^LotNo^물질명^제조회사^레벨명^이전결과1^이전결과2^이전결과3^이전결과4^이전결과5^이전결과6^이전결과7^이전결과8^이전결과9^이전검사일시^이전결과검사자^기관코드^사용자부서^장비코드^접수구분" colsep="^" colwidth="130,20, 80, 100, 60, 60" dataheight="23" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:380px; width:1013px; height:321px; ">
  659. <col ref="finddata"/>
  660. <col ref="iud"/>
  661. <col ref="bcno"/>
  662. <col ref="matrcd"/>
  663. <col ref="levlcd"/>
  664. <col ref="testcd"/>
  665. <col ref="acptdt"/>
  666. <col ref="rsltcnfmdt"/>
  667. <col ref="rsltcnfmid"/>
  668. <col ref="orgrslt"/>
  669. <col ref="viewrslt"/>
  670. <col ref="wgmrstat"/>
  671. <col ref="measfactcd"/>
  672. <col ref="measfactcnts"/>
  673. <col ref="judgmark"/>
  674. <col ref="wgmrmark"/>
  675. <col ref="rsltstat"/>
  676. <col ref="rsltkind"/>
  677. <col ref="refkind"/>
  678. <col ref="refflag"/>
  679. <col ref="refl"/>
  680. <col ref="refh"/>
  681. <col ref="refls"/>
  682. <col ref="refhs"/>
  683. <col ref="refcval"/>
  684. <col ref="intrsltfrmt"/>
  685. <col ref="avge"/>
  686. <col ref="rsltunit"/>
  687. <col ref="wgmrscop"/>
  688. <col ref="sdval"/>
  689. <col ref="judgkind"/>
  690. <col ref="rundkind"/>
  691. <col ref="lotno"/>
  692. <col ref="matrnm"/>
  693. <col ref="prodcmpy"/>
  694. <col ref="levlnm"/>
  695. <col ref="bfcolumn0"/>
  696. <col ref="bfcolumn1"/>
  697. <col ref="bfcolumn2"/>
  698. <col ref="bfcolumn3"/>
  699. <col ref="bfcolumn4"/>
  700. <col ref="bfcolumn5"/>
  701. <col ref="bfcolumn6"/>
  702. <col ref="bfcolumn7"/>
  703. <col ref="bfcolumn8"/>
  704. <col ref="bfrsltcnfmdt"/>
  705. <col ref="bfrsltcnfmid"/>
  706. <col ref="instcd"/>
  707. <col ref="userdeptflagcd"/>
  708. <col ref="eqmtcd"/>
  709. <col ref="acptflag"/>
  710. </datagrid>
  711. <line id="line14" class="line_1" style="x1:0px; y1:95px; x2:1010px; y2:95px; "/>
  712. <caption id="caption3" class="tit_2" style="left:5px; top:80px; width:139px; height:13px; ">검사항목별 결과정보</caption>
  713. <group id="group3" style="left:0px; top:10px; width:1195px; height:60px; ">
  714. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:60px; "/>
  715. <button id="button6" class="btn1_letter2" style="left:1124px; top:20px; width:56px; height:22px; ">
  716. <caption>조회</caption>
  717. <script type="javascript" ev:event="DOMActivate">
  718. <![CDATA[
  719. fGetTestRslt();
  720. ]]>
  721. </script>
  722. </button>
  723. <line id="line13" class="line_4" style="x1:1109px; y1:8px; x2:1109px; y2:51px; "/>
  724. <caption id="caption2" class="search_no_b" style="left:199px; top:9px; width:15px; height:20px; vertical-align:middle; ">~</caption>
  725. <caption id="caption4" class="search_name" style="left:15px; top:9px; width:89px; height:17px; ">접수일자 :</caption>
  726. <caption id="caption5" class="search_name" style="left:15px; top:33px; width:89px; height:17px; ">검사항목 :</caption>
  727. <input id="input1" ref="/root/hidden/ref/acptfromdd" class="input_search" inputtype="date" style="left:105px; top:8px; width:90px; height:19px; "/>
  728. <input id="input2" ref="/root/hidden/ref/acpttodd" class="input_search" inputtype="date" style="left:215px; top:8px; width:90px; height:19px; "/>
  729. <caption id="caption8" class="search_name" style="left:340px; top:9px; width:88px; height:17px; ">검 사 실 :</caption>
  730. <select1 id="combo1" ref="/root/hidden/ref/testroom" class="combo_default" appearance="minimal" style="left:430px; top:8px; width:120px; height:19px; ">
  731. <choices>
  732. <itemset nodeset="/root/init/LB0111">
  733. <label ref="nm"/>
  734. <value ref="cd"/>
  735. </itemset>
  736. </choices>
  737. <script type="javascript" ev:event="xforms-select">
  738. <![CDATA[
  739. fSetEqmtCd(); //검사실에 대한 장비 조회
  740. ]]>
  741. </script>
  742. </select1>
  743. <select1 id="combo4" ref="/root/hidden/ref/eqmtcd" class="combo_default" appearance="minimal" style="left:685px; top:8px; width:165px; height:19px; ">
  744. <choices>
  745. <itemset nodeset="/root/init/LB0701">
  746. <label ref="nm"/>
  747. <value ref="cd"/>
  748. </itemset>
  749. </choices>
  750. <script type="javascript" ev:event="xforms-select">
  751. <![CDATA[
  752. if(model.getValue("/root/hidden/ref/eqmtcd") != "00"){ //장비코드가 전체가 아니면
  753. fTestListSch(); //장비에대한 검사항목 조회 팝업뜬다~~~
  754. }
  755. ]]>
  756. </script>
  757. </select1>
  758. <caption id="caption9" class="search_name" style="left:590px; top:9px; width:85px; height:17px; ">장 비 :</caption>
  759. <caption id="caption22" class="search_name" style="left:590px; top:35px; width:87px; height:17px; ">접수구분 :</caption>
  760. <select1 id="cbo_acptFlag" ref="/root/hidden/ref/acptflag" class="combo_search" appearance="minimal" style="left:685px; top:33px; width:107px; height:19px; ">
  761. <choices>
  762. <itemset nodeset="/root/init/LB0704">
  763. <label ref="nm"/>
  764. <value ref="cd"/>
  765. </itemset>
  766. </choices>
  767. </select1>
  768. <caption id="caption10" class="search_name" style="left:811px; top:33px; width:87px; height:17px; ">작업구분 :</caption>
  769. <select1 id="radio1" ref="/root/hidden/ref/rsltflag" class="radio_search" appearance="full" cellspacing="5" cols="4" overflow="visible" style="left:901px; top:35px; width:204px; height:13px; border-style:none; ">
  770. <choices>
  771. <item>
  772. <label>전체</label>
  773. <value>0</value>
  774. </item>
  775. <item>
  776. <label>미완료</label>
  777. <value>1</value>
  778. </item>
  779. <item>
  780. <label>완료</label>
  781. <value>2</value>
  782. </item>
  783. <item>
  784. <label>제외</label>
  785. <value>R</value>
  786. </item>
  787. </choices>
  788. <script type="javascript" ev:event="xforms-value-changed">
  789. <![CDATA[
  790. if(radio1.value == "1"){
  791. button2.disabled = false;
  792. button3.disabled = false;
  793. }else{
  794. button2.disabled = true;
  795. button3.disabled = true;
  796. }
  797. model.resetInstanceNode("/root/hidden/rsltinfo");
  798. model.removeNodeset("/root/main/testrslt");
  799. model.refresh();
  800. ]]>
  801. </script>
  802. </select1>
  803. <output id="output17" ref="/root/hidden/ref/testnm" class="output_fix" style="left:105px; top:32px; width:200px; height:19px; "/>
  804. <button id="button61" class="icon_search" style="left:309px; top:33px; width:16px; height:16px; ">
  805. <caption/>
  806. <script type="javascript" ev:event="DOMActivate">
  807. <![CDATA[
  808. if(model.getValue("/root/hidden/ref/eqmtcd") == "00"){ //장비코드가 전체이면
  809. messageBox("장비를", "C002","");
  810. }else{
  811. fTestListSch(); //장비별 검사항목 팝업 뜨지롱
  812. }
  813. ]]>
  814. </script>
  815. </button>
  816. <caption id="caption7" class="search_name" style="left:340px; top:33px; width:89px; height:17px; ">레 벨 :</caption>
  817. <img id="img5" class="icon_search" visibility="hidden" style="left:552px; top:34px; width:16px; height:16px; "/>
  818. <button id="btn_levl" class="icon_search" style="left:552px; top:34px; width:16px; height:16px; ">
  819. <caption/>
  820. <script type="javascript" ev:event="DOMActivate">
  821. <![CDATA[
  822. fTestLevlSch(); //레벨조회 팝업 뜨지롱
  823. ]]>
  824. </script>
  825. </button>
  826. <select1 id="cbo_levlCd" ref="/root/hidden/ref/levlcd" class="combo_search" appearance="minimal" style="left:430px; top:32px; width:120px; height:19px; ">
  827. <choices>
  828. <itemset nodeset="/root/init/LB0501">
  829. <label ref="nm"/>
  830. <value ref="cd"/>
  831. </itemset>
  832. </choices>
  833. </select1>
  834. <output id="output16" ref="/root/hidden/ref/levllist/levlnm" class="output_fix" style="left:430px; top:32px; width:120px; height:19px; "/>
  835. </group>
  836. <line id="line2" class="line_1" style="x1:1015px; y1:95px; x2:1194px; y2:95px; "/>
  837. <caption id="caption11" class="tit_2" style="left:1020px; top:80px; width:115px; height:14px; ">결과 상세정보</caption>
  838. <output id="output1" ref="/root/hidden/rsltinfo/refval" class="output_fix" style="left:1015px; top:172px; width:179px; height:19px; "/>
  839. <line id="line7" class="line_3" style="x1:1015px; y1:720px; x2:1194px; y2:720px; "/>
  840. <datagrid id="datagrid2" nodeset="/root/hidden/rsltinfo/rsltstat" caption="S^W^N" colsep="^" colwidth="53, 53, 53" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:1015px; top:100px; width:179px; height:48px; ">
  841. <col ref="rsltstat" style="left:20px; top:23px; width:50px; height:23px; font-size:9pt; font-weight:bolder; color:#339966; text-align:center; "/>
  842. <col ref="wgmrmark" style="font-weight:bolder; text-align:center; "/>
  843. <col ref="judgmark" style="font-weight:bolder; text-align:center; "/>
  844. </datagrid>
  845. <line id="line1" class="line_2" style="x1:1015px; y1:193px; x2:1194px; y2:193px; "/>
  846. <line id="line5" class="line_2" style="x1:1015px; y1:261px; x2:1194px; y2:261px; "/>
  847. <output id="output2" ref="/root/hidden/rsltinfo/wgmrstat" class="output_fix" style="left:1015px; top:217px; width:179px; height:19px; "/>
  848. <line id="line6" class="line_2" style="x1:1015px; y1:237px; x2:1195px; y2:237px; "/>
  849. <output id="output3" ref="/root/hidden/rsltinfo/avge" class="output_fix" style="left:1101px; top:240px; width:93px; height:19px; "/>
  850. <output id="output4" ref="/root/hidden/rsltinfo/sdval" class="output_fix" style="left:1101px; top:264px; width:93px; height:19px; "/>
  851. <line id="line8" class="line_2" style="x1:1015px; y1:288px; x2:1194px; y2:288px; "/>
  852. <line id="line9" class="line_2" style="x1:1015px; y1:285px; x2:1194px; y2:285px; "/>
  853. <line id="line10" class="line_2" style="x1:1015px; y1:309px; x2:1194px; y2:309px; "/>
  854. <output id="output5" ref="/root/hidden/rsltinfo/lotno" class="output_fix" style="left:1101px; top:288px; width:93px; height:19px; "/>
  855. <line id="line11" class="line_2" style="x1:1015px; y1:333px; x2:1194px; y2:333px; "/>
  856. <output id="output6" ref="/root/hidden/rsltinfo/wgmrscop" class="output_fix" style="left:1101px; top:312px; width:93px; height:19px; "/>
  857. <output id="output7" ref="/root/hidden/rsltinfo/prodcmpy" class="output_fix" style="left:1101px; top:336px; width:93px; height:19px; "/>
  858. <output id="output8" ref="/root/hidden/rsltinfo/orgrslt" class="output_fix" style="left:1101px; top:360px; width:93px; height:19px; "/>
  859. <line id="line12" class="line_2" style="x1:1015px; y1:357px; x2:1194px; y2:357px; "/>
  860. <line id="line15" class="line_2" style="x1:1015px; y1:381px; x2:1194px; y2:381px; "/>
  861. <line id="line16" class="line_2" style="x1:1015px; y1:449px; x2:1194px; y2:449px; "/>
  862. <line id="line17" class="line_2" style="x1:1015px; y1:493px; x2:1194px; y2:493px; "/>
  863. <line id="line18" class="line_2" style="x1:1015px; y1:517px; x2:1194px; y2:517px; "/>
  864. <line id="line19" class="line_2" style="x1:1015px; y1:561px; x2:1194px; y2:561px; "/>
  865. <textarea id="textarea1" ref="/root/hidden/rsltinfo/measfactcnts" style="left:1015px; top:679px; width:179px; height:42px; ">
  866. <script type="javascript" ev:event="xforms-value-changed">
  867. <![CDATA[
  868. fCntsSet(grd_testRslt.row-1, grd_testRslt.col);
  869. ]]>
  870. </script>
  871. </textarea>
  872. <caption id="caption1" class="cell_1" style="left:1015px; top:239px; width:85px; height:21px; ">평균</caption>
  873. <caption id="caption12" class="cell_1" style="left:1015px; top:263px; width:85px; height:21px; ">표준편차</caption>
  874. <caption id="caption13" class="cell_1" style="left:1015px; top:150px; width:179px; height:21px; ">참고치</caption>
  875. <caption id="caption14" class="cell_1" style="left:1015px; top:287px; width:85px; height:21px; ">LOT NO</caption>
  876. <caption id="caption15" class="cell_1" style="left:1015px; top:195px; width:179px; height:21px; ">WGMR판정</caption>
  877. <caption id="caption16" class="cell_1" style="left:1015px; top:311px; width:85px; height:21px; ">적용률</caption>
  878. <caption id="caption17" class="cell_1" style="left:1015px; top:335px; width:85px; height:21px; ">제조회사</caption>
  879. <caption id="caption18" class="cell_1" style="left:1015px; top:359px; width:85px; height:21px; ">실제 결과</caption>
  880. <caption id="caption19" class="cell_1" style="left:1015px; top:657px; width:179px; height:21px; ">조치사항(사유)</caption>
  881. <caption id="caption31" class="cell_1" style="left:1015px; top:495px; width:85px; height:21px; ">검사자</caption>
  882. <caption id="caption32" class="cell_1" style="left:1015px; top:563px; width:85px; height:21px; ">이전결과</caption>
  883. <output id="output9" ref="/root/hidden/rsltinfo/acptdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:429px; width:179px; height:19px; "/>
  884. <output id="output10" ref="/root/hidden/rsltinfo/rsltcnfmdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:473px; width:179px; height:19px; "/>
  885. <caption id="caption20" class="cell_1" style="left:1015px; top:407px; width:179px; height:21px; ">접수일시</caption>
  886. <caption id="caption21" class="cell_1" style="left:1015px; top:451px; width:179px; height:21px; ">결과보고(확인)일시</caption>
  887. <output id="output11" ref="/root/hidden/rsltinfo/rsltcnfmid" class="output_fix" style="left:1101px; top:496px; width:93px; height:19px; "/>
  888. <output id="output12" ref="/root/hidden/rsltinfo/bfrsltcnfmdt" class="output_fix" format="yyyy-mm-dd hh:nn:ss" style="left:1015px; top:541px; width:179px; height:19px; "/>
  889. <caption id="caption23" class="cell_1" style="left:1015px; top:519px; width:179px; height:21px; ">이전결과(확인)일시</caption>
  890. <output id="output13" ref="/root/hidden/rsltinfo/bfrslt" class="output_fix" style="left:1101px; top:564px; width:93px; height:19px; "/>
  891. <line id="line4" class="line_2" style="x1:1014px; y1:585px; x2:1193px; y2:585px; "/>
  892. <output id="output14" ref="/root/hidden/rsltinfo/rsltunit" class="output_fix" style="left:1101px; top:384px; width:93px; height:19px; "/>
  893. <line id="line20" class="line_2" style="x1:1015px; y1:405px; x2:1194px; y2:405px; "/>
  894. <caption id="caption24" class="cell_1" style="left:1015px; top:383px; width:85px; height:21px; ">단위</caption>
  895. <output id="output15" ref="/root/hidden/rsltinfo/bfrsltcnfmid" class="output_fix" style="left:1101px; top:588px; width:93px; height:19px; "/>
  896. <caption id="caption25" class="cell_1" style="left:1015px; top:587px; width:85px; height:21px; ">검사자</caption>
  897. <line id="line21" class="line_2" style="x1:1014px; y1:609px; x2:1193px; y2:609px; "/>
  898. <line id="line22" class="line_2" style="x1:1014px; y1:633px; x2:1193px; y2:633px; "/>
  899. <select1 id="cbo_cntcd" ref="/root/hidden/rsltinfo/measfactcd" class="combo_search" appearance="minimal" style="left:1015px; top:635px; width:179px; height:19px; ">
  900. <choices>
  901. <itemset nodeset="/root/init/LB0703">
  902. <label ref="nm"/>
  903. <value ref="cd"/>
  904. </itemset>
  905. </choices>
  906. <script type="javascript" ev:event="xforms-value-changed">
  907. <![CDATA[
  908. fSetFactCnts();
  909. ]]>
  910. </script>
  911. </select1>
  912. <caption id="caption26" class="cell_1" style="left:1015px; top:611px; width:179px; height:21px; ">조치사항(코드)</caption>
  913. <line id="line23" class="line_2" style="x1:1015px; y1:655px; x2:1194px; y2:655px; "/>
  914. </group>
  915. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  916. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:132px; height:14px; ">
  917. <![CDATA[QC 검사항목별결과관리]]>
  918. <script type="javascript" ev:event="ondblclick">
  919. <![CDATA[
  920. if(grd_testRsltInfo.visible){
  921. grd_testRsltInfo.visible = false;
  922. }else{
  923. grd_testRsltInfo.visible = true;
  924. }
  925. ]]>
  926. </script>
  927. </caption>
  928. </group>
  929. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  930. <button id="button10" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  931. <caption>초기화</caption>
  932. <script type="javascript" ev:event="onclick">
  933. <![CDATA[
  934. window.reload();
  935. ]]>
  936. </script>
  937. </button>
  938. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  939. <button id="button2" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  940. <caption>확인</caption>
  941. <script type="javascript" ev:event="DOMActivate">
  942. <![CDATA[
  943. fSetSave(2);
  944. ]]>
  945. </script>
  946. </button>
  947. <button id="button4" class="btn4_letter2" visibility="hidden" style="left:950px; top:3px; width:56px; height:22px; ">
  948. <caption>제외</caption>
  949. <script type="javascript" ev:event="onclick">
  950. <![CDATA[
  951. //fInsSave();
  952. var a = model.getValue("/root/main/testrslt[" + 2 + "]/column0/@readonly")
  953. alert (a);
  954. ]]>
  955. </script>
  956. </button>
  957. <button id="button3" class="btn4_letter2" style="left:1009px; top:3px; width:56px; height:22px; ">
  958. <caption>저장</caption>
  959. <script type="javascript" ev:event="onclick">
  960. <![CDATA[
  961. fSetSave(1);
  962. ]]>
  963. </script>
  964. </button>
  965. <button id="btn_reptmthdchng" class="btn4_letter6" visibility="hidden" style="left:844px; top:3px; width:104px; height:22px; ">
  966. <caption>보고방법변경</caption>
  967. <script type="javascript" ev:event="onclick">
  968. <![CDATA[
  969. fSetreptmthdchng();
  970. ]]>
  971. </script>
  972. </button>
  973. </group>
  974. </xhtml:body>
  975. </xhtml:html>