SMLQJ10300_핵의학검사항목별결과관리.xrw 53 KB

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