SMLQF10800_핵의학QC물질및검사관리.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837
  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>Control Range 관리</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <getlevel>
  11. <chk/>
  12. <levlcd/>
  13. <levlnm/>
  14. </getlevel>
  15. <testlist>
  16. <chk/>
  17. <testcd/>
  18. <testnm/>
  19. </testlist>
  20. <matrtclslist>
  21. <testcd/>
  22. <testnm/>
  23. <matrcd/>
  24. <matrnm/>
  25. <levlcd/>
  26. <testfromdd/>
  27. <testtodd/>
  28. <rsltkind/>
  29. <refkind/>
  30. <refflag/>
  31. <refl/>
  32. <refls/>
  33. <refhs/>
  34. <refh/>
  35. <refcval/>
  36. <intrsltfrmt/>
  37. <rsltunit/>
  38. <avg/>
  39. <sdval/>
  40. <wgmrscop/>
  41. <judgkind/>
  42. <rundkind/>
  43. <graphdispyn/>
  44. <lotno/>
  45. <prodcmpy/>
  46. <proddt/>
  47. <windt/>
  48. <validd/>
  49. <matrifcd/>
  50. <userdeptflagcd/>
  51. <fstrgstrid/>
  52. <fstrgstdt/>
  53. <lastupdtrid/>
  54. <lastupdtdt/>
  55. <ddosevalue/>
  56. </matrtclslist>
  57. </main>
  58. <init/>
  59. <hidden>
  60. <refgbn>1</refgbn>
  61. <searchtestcd/>
  62. <testlrg>00</testlrg>
  63. <testmdl>
  64. <cd>00</cd>
  65. </testmdl>
  66. <refcont/>
  67. <temp/>
  68. </hidden>
  69. <send>
  70. <codeflag/>
  71. <refcont/>
  72. <refgbn/>
  73. <deptflag/>
  74. <searchflag/>
  75. <matrtclslist/>
  76. <matrfromdd/>
  77. <matrcd/>
  78. <levlcd/>
  79. <matrinfo/>
  80. <testlrgcd/>
  81. <testmdlcd/>
  82. <userdeptcd/>
  83. <testcd/>
  84. </send>
  85. </root>
  86. </instance>
  87. <script type="javascript" ev:event="xforms-ready">
  88. <![CDATA[
  89. fSetInit();
  90. ]]>
  91. </script>
  92. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  93. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  94. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  95. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0000"/>
  96. <submission id="TRLQF00702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/testlist"/>
  97. <submission id="TXLQF00702" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send"/>
  98. <submission id="TRLQF00501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/getlevel"/>
  99. <submission id="TRLQF00705" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/matrtclslist"/>
  100. <submission id="TXLQF00703" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance"/>
  101. </model>
  102. <script type="javascript">
  103. <![CDATA[
  104. //초기화
  105. function fSetInit(){
  106. model.resetInstanceNode("/root/main/matrinfo");
  107. model.removeNodeset("/root/main/getlevel");
  108. grd_levllist.rebuild();
  109. model.removeNodeset("/root/main/testlist");
  110. grd_testList.rebuild();
  111. model.removeNodeset("/root/main/matrtclslist");
  112. grd_matrTclsList.rebuild();
  113. grd_levllist.fixedcellcheckbox(0, 1) = true;
  114. grd_levllist.fixedcellischeck(0, 1) = false;
  115. grd_matrTclsList.fixedcellcheckbox(0, grd_matrTclsList.colRef("graphdispyn")) = true;
  116. grd_matrTclsList.fixedcellischeck(0, grd_matrTclsList.colRef("graphdispyn")) = false;
  117. model.setValue("/root/send/codeflag", "0102|0104|0000|"); // 0102= 중분류 // 0104 대분류 // 0000 userdeptflagcd
  118. submit("TRLZZ00101", false);
  119. model.makeValue("/root/send/basecdid", model.getValue("/root/init/LB0000/nm"));
  120. model.setValue("/root/send/codeflag", "0501|"); //체외꺼 레벨만 조회
  121. submit("TRLZZ00101", false);
  122. fGetLevel(); //물질리스트조회
  123. fGetTestList(); //검사항목리스트조회
  124. }
  125. //엔터키
  126. function fKeyEvent(){
  127. if(event.keyCode == "13"){
  128. //검사항목 리스트 조회
  129. if(event.target == "ipt_searchTestCd"){
  130. model.setValue("/root/send/refcont", ipt_searchTestCd.currentText);
  131. fGetTestList();
  132. }
  133. }
  134. }
  135. //조회
  136. function fGetLevel() {
  137. model.setValue("/root/send/userdeptcd", model.getValue("/root/init/LB0000/nm"));
  138. submit("TRLQF00501", false);
  139. }
  140. //검사항목 리스트 조회
  141. function fGetTestList(){
  142. //model.setValue("/root/send/refcont" , model.getValue("/root/hidden/searchtestcd")); //입력Text
  143. model.setValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm")); //사용자 부서코드
  144. submit("TRLQF00702");
  145. }
  146. //물질별 검사항목 조회
  147. function fGetMatrTclsList(){
  148. model.setValue("/root/send/refgbn" , model.getValue("/root/hidden/refgbn")); //전체, 사용가능자료 구분
  149. model.setValue("/root/send/testcd" , model.getValue("/root/main/testlist[" + grd_testList.row + "]/testcd")); //입력Text
  150. model.setValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm")); //사용자 부서코드
  151. submit("TRLQF00705");
  152. }
  153. //저장 데이터 확인
  154. function checkGridUpdate(grid)
  155. {
  156. var iData = grid.getUpdateDataXml("insert");
  157. var uData = grid.getUpdateDataXml("update");
  158. var dData = grid.getUpdateDataXml("delete");
  159. if (iData=="" && uData=="" && dData=="") return false;
  160. else return true;
  161. }
  162. //물질별 검사 정보 저장
  163. function fExeMatrTclsList(){
  164. model.setValue("/root/send/matrtclslist" , grd_matrTclsList.getUpdateData());
  165. model.copyNode("/root/send/matrinfo" , "/root/main/matrinfo");
  166. model.setValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm"));
  167. for(i = 1; i < grd_matrTclsList.rows; i++){
  168. if(grd_matrTclsList.rowStatus(i) == 3 || grd_matrTclsList.rowStatus(i) == 1){
  169. if(model.getValue("/root/main/matrtclslist[" + i + "]/testcd") == ""){
  170. messageBox("검사 코드는", "I003");
  171. return;
  172. }
  173. if(model.getValue("/root/main/matrtclslist[" + i + "]/matrcd") == ""){
  174. messageBox("Control 코드는", "I003");
  175. return;
  176. }
  177. if(model.getValue("/root/main/matrtclslist[" + i + "]/matrnm") == ""){
  178. messageBox("Control 명은", "I003");
  179. return;
  180. }
  181. if(model.getValue("/root/main/matrtclslist[" + i + "]/testfromdd") == ""){
  182. messageBox("시작일자는", "I003");
  183. return;
  184. }
  185. if(model.getValue("/root/main/matrtclslist[" + i + "]/testtodd") == ""){
  186. messageBox("종료일자는", "I003");
  187. return;
  188. }
  189. if(model.getValue("/root/main/matrtclslist[" + i + "]/levlcd") == ""){
  190. messageBox("Standard 코드는", "I003");
  191. return;
  192. }
  193. }
  194. }
  195. if ( submit("TXLQF00702") ) {
  196. //grd_matrTclsList.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  197. fGetMatrTclsList(); // 물질정보 다시 조회
  198. }
  199. }
  200. //검사항목 리스트 클릭시 Row선택하면 체크 선택되게
  201. function fTestListClick(){
  202. //if(grd_testList.col != "1"){
  203. //if(model.getValue("/root/main/testlist[" + grd_testList.row + "]/chk") == "false"){
  204. for(i = 1; i < grd_testList.rows; i++){
  205. if(i == grd_testList.row){
  206. model.setValue("/root/main/testlist[" + i + "]/chk", "true");
  207. }else{
  208. model.setValue("/root/main/testlist[" + i + "]/chk", "false");
  209. }
  210. }
  211. //}else{
  212. // model.setValue("/root/main/testlist[" + grd_testList.row + "]/chk", "false");
  213. //}
  214. //}
  215. }
  216. //아래버튼 클릭시 선택된 레벨 항목 복사함
  217. function fCopyTestList(){ //grd_matrTclsList
  218. var testCnt = model.getXPathValue('count(/root/main/testlist[chk="true"])');
  219. if(testCnt == 0){
  220. alert("검사항목을 선택하세요");
  221. return;
  222. }else if(testCnt > 1){
  223. alert("검사항목을 하나만 선택하세요!!");
  224. return;
  225. }
  226. var levlCnt = model.getXPathValue('count(/root/main/getlevel[chk="true"])');
  227. if(levlCnt == 0){
  228. alert("선택된 Control이 없습니다!!");
  229. return;
  230. }
  231. var row = grd_testList.findRow("true", 1, 1, true, true)
  232. var vLevlCd, vLevlNm;
  233. var vTestCd = model.getValue("/root/main/testlist[" + row + "]/testcd");
  234. var vTestNm = model.getValue("/root/main/testlist[" + row + "]/testnm");
  235. var sDeptFlag = model.getValue("/root/init/LB0000/nm");
  236. for(i = 1; i < grd_levllist.rows; i++){
  237. if(model.getValue("/root/main/getlevel[" + i + "]/chk") == "true"){
  238. vLevlCd = model.getValue("/root/main/getlevel[" + i + "]/levlcd");
  239. vLevlNm = model.getValue("/root/main/getlevel[" + i + "]/levlnm");
  240. if(grd_matrTclsList.findRow(vLevlCd, 1, 5, true, true) == -1){
  241. grd_matrTclsList.addRow(false);
  242. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testcd" , vTestCd); //검사코드
  243. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testnm" , vTestNm); //검사명
  244. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testfromdd" , getCurrentDate()); //시작일자
  245. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testtodd" , '99991231'); //종료일자
  246. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/levlcd" , vLevlCd);
  247. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrcd" , vTestCd); //물질코드는 검사코드로 (강영직 선생님 요구사항)
  248. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrnm" , vTestNm + "-" + vLevlNm); //물질명은 검사명-레벨명으로 (강영직 선생님 요구사항)
  249. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/userdeptflagcd" , sDeptFlag);
  250. }else{
  251. alert(model.getValue("/root/main/getlevel[" + i + "]/levlcd") + " 항목이 중복되었습니다");
  252. }
  253. //model.setValue("/root/main/testlist[" + i + "]/chk", "false");
  254. }
  255. }
  256. model.refresh();
  257. grd_matrTclsList.bottomRow = grd_matrTclsList.rows;
  258. }
  259. //레벨리스트 더블클릭시 선택 레벨 아래로 복사
  260. function fSetLevlCopy(){
  261. var testCnt = model.getXPathValue('count(/root/main/testlist[chk="true"])');
  262. if(testCnt == 0){
  263. alert("검사항목을 선택하세요");
  264. return;
  265. }else if(testCnt > 1){
  266. alert("검사항목을 하나만 선택하세요!!");
  267. return;
  268. }
  269. var row = grd_testList.findRow("true", 1, 1, true, true);
  270. var sTestCd = model.getValue("/root/main/testlist[" + row + "]/testcd");
  271. var sTestNm = model.getValue("/root/main/testlist[" + row + "]/testnm");
  272. var sLevlCd = model.getValue("/root/main/getlevel[" + grd_levllist.row + "]/levlcd");
  273. var sLevlNm = model.getValue("/root/main/getlevel[" + grd_levllist.row + "]/levlnm");
  274. var sDeptFlag = model.getValue("/root/init/LB0000/nm");
  275. var findrow = grd_matrTclsList.findRow(sLevlCd , 1,5 , true,true);
  276. if(findrow >0 ) {
  277. alert("이미 선택된 검사코드입니다.");
  278. model.setValue("/root/main/getlevel[" + grd_levllist.row + "]/chk", "false");
  279. return;
  280. }
  281. grd_matrTclsList.addRow(false);
  282. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/levlcd" , sLevlCd);
  283. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testcd" , sTestCd); //검사코드
  284. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrcd" , sTestCd); //물질코드는 검사코드로 (강영직 선생님 요구사항)
  285. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrnm" , sTestNm + "-" + sLevlNm); //물질명은 검사명-레벨명으로 (강영직 선생님 요구사항)
  286. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testnm" , sTestNm); //검사명
  287. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testfromdd" , getCurrentDate()); //시작일자
  288. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testtodd" , '99991231'); //종료일자
  289. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/userdeptflagcd" , sDeptFlag);
  290. model.setValue("/root/main/getlevel[" + grd_levllist.row + "]/chk", "false");
  291. grd_matrTclsList.bottomRow = grd_matrTclsList.rows;
  292. model.refresh();
  293. }
  294. function fLevlListClick(){
  295. if(grd_levllist.col != "1"){
  296. if(model.getValue("/root/main/getlevel[" + grd_levllist.row + "]/chk") != "true"){
  297. model.setValue("/root/main/getlevel[" + grd_levllist.row + "]/chk", "true");
  298. }else{
  299. model.setValue("/root/main/getlevel[" + grd_levllist.row + "]/chk", "false");
  300. }
  301. }
  302. }
  303. //종료
  304. function fEndMatr() {
  305. if(grd_matrTclsList.row == -1){
  306. return;
  307. }
  308. var todd = model.getValue("/root/main/matrtclslist["+grd_matrTclsList.row+"]/testtodd");
  309. if(todd < getCurrentDate()){
  310. alert("이미 종료된 물질입니다.");
  311. return;
  312. }
  313. grd_matrTclsList.rowStatus(grd_matrTclsList.row) = 4;
  314. model.setValue("/root/send/matrtclslist", getGridUpdateData(grd_matrTclsList));
  315. model.setValue("/root/send/userdeptcd", model.getValue("/root/init/LB0000/nm"));
  316. submit("TXLQF00703", false);
  317. fGetMatrTclsList();
  318. }
  319. //물질변경
  320. function fChangeMatr(){
  321. if(grd_matrTclsList.row == -1){
  322. return;
  323. }
  324. copyNodeListType("/root/hidden/temp", "/root/main/matrtclslist["+grd_matrTclsList.row+"]", "replace"); //선택항목 임시노드에 복사
  325. fEndMatr(); //선택된항목 물질 종료
  326. grd_matrTclsList.addrow();
  327. //선택했던 물질 정보 복사
  328. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrcd" , model.getValue("/root/hidden/temp/matrtclslist/matrcd"));
  329. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/levlcd" , model.getValue("/root/hidden/temp/matrtclslist/levlcd"));
  330. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/matrnm" , model.getValue("/root/hidden/temp/matrtclslist/matrnm"));
  331. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testcd" , model.getValue("/root/hidden/temp/matrtclslist/testcd"));
  332. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testnm" , model.getValue("/root/hidden/temp/matrtclslist/testnm"));
  333. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/userdeptflagcd" , model.getValue("/root/init/LB0000/nm"));
  334. //초기 정보 설정
  335. var fromdate = getCurrentDate().toDate("YYYYMMDD").getAddDate(1)
  336. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testfromdd", fromdate.getDateFormat("YYYYMMDD")); //새로운 물질 시작일자를 다음날로 변경
  337. model.setValue("/root/main/matrtclslist[" + (grd_matrTclsList.rows-1) + "]/testtodd","99991231");
  338. grd_matrTclsList.bottomRow = grd_matrTclsList.rows;
  339. fExeMatrTclsList();
  340. }
  341. //Low, High 입력시 평균 및 표준편차 Set
  342. function fSetRef(){
  343. var vRefL = model.getValue("/root/main/matrtclslist[" + grd_matrTclsList.row + "]/refl");
  344. var vRefH = model.getValue("/root/main/matrtclslist[" + grd_matrTclsList.row + "]/refh");
  345. if(vRefL != "" && vRefH != ""){
  346. if(parseFloat(vRefL) > parseFloat(vRefH)){
  347. alert("참고치 하한값이 상한값보다 클 수 없습니다.");
  348. return;
  349. }
  350. var vAvg = (parseFloat(vRefL) + parseFloat(vRefH)) / 2;
  351. var vSD = ((parseFloat(vRefH) - parseFloat(vRefL))) / 4;//윤선희선생님 요청에 의해 변경
  352. //var vSD = vAvg / 2;
  353. model.setValue("/root/main/matrtclslist[" + grd_matrTclsList.row + "]/avg" , vAvg);
  354. model.setValue("/root/main/matrtclslist[" + grd_matrTclsList.row + "]/sdval" , vSD);
  355. }
  356. }
  357. ]]>
  358. </script>
  359. </xhtml:head>
  360. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  361. <group id="group1" style="left:0px; top:30px; width:1195px; height:745px; font-size:18pt; ">
  362. <group id="group4" style="left:0px; top:10px; width:1195px; height:35px; ">
  363. <shape id="roundrect1" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1195px; height:35px; "/>
  364. <button id="btn_sea" class="btn1_letter2" visibility="hidden" style="left:560px; top:5px; width:56px; height:22px; ">
  365. <caption>조회</caption>
  366. <script type="javascript" ev:event="DOMActivate">
  367. <![CDATA[
  368. //물질리스트조회
  369. //fGetMatrList();
  370. ]]>
  371. </script>
  372. </button>
  373. <caption id="caption15" class="search_name" style="left:15px; top:9px; width:86px; height:18px; ">조회구분 :</caption>
  374. <select1 id="cbo_searchFlag" ref="/root/hidden/refgbn" class="combo_s_essential" appearance="minimal" style="left:103px; top:8px; width:100px; height:19px; ">
  375. <choices>
  376. <item>
  377. <label>사용가능자료</label>
  378. <value>1</value>
  379. </item>
  380. <item>
  381. <label>전체자료</label>
  382. <value>2</value>
  383. </item>
  384. </choices>
  385. </select1>
  386. <line id="line2" class="line_4" style="x1:458px; y1:6px; x2:458px; y2:28px; "/>
  387. <button id="button1" class="btn1_letter2" style="left:471px; top:7px; width:56px; height:22px; ">
  388. <caption>조회</caption>
  389. <script type="javascript" ev:event="DOMActivate">
  390. <![CDATA[
  391. fGetTestList();
  392. ]]>
  393. </script>
  394. </button>
  395. <input id="ipt_searchTestCd" ref="/root/hidden/searchtestcd" class="input_s_button" style="left:345px; top:8px; width:100px; height:19px; ">
  396. <script type="javascript" ev:event="onkeypress">
  397. <![CDATA[
  398. fKeyEvent();
  399. ]]>
  400. </script>
  401. </input>
  402. <caption id="caption4" class="search_name" style="left:252px; top:9px; width:86px; height:17px; ">검사코드 :</caption>
  403. </group>
  404. <datagrid id="grd_levllist" nodeset="/root/main/getlevel" caption="^Standard 및 Control수 코드^Standard 및 Control수^OnCall레벨코드" colsep="^" colwidth="30, 200, 300" dataheight="23" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:599px; top:75px; width:595px; height:290px; ">
  405. <col checkvalue="true,false" ref="chk" type="checkbox" visibility="visible"/>
  406. <col ref="levlcd"/>
  407. <col ref="levlnm"/>
  408. <script type="javascript" ev:event="ondblclick">
  409. <![CDATA[
  410. if(grd_levllist.isCell(event.target) && grd_levllist.row >= grd_levllist.fixedRows){
  411. fSetLevlCopy();
  412. }
  413. ]]>
  414. </script>
  415. <script type="javascript" ev:event="onaftersort">
  416. <![CDATA[
  417. grd_levllist.gridToInstance();
  418. ]]>
  419. </script>
  420. <script type="javascript" ev:event="onclick">
  421. <![CDATA[
  422. if(grd_levllist.isCell(event.target) && grd_levllist.row >= grd_levllist.fixedRows){
  423. fLevlListClick();
  424. }
  425. ]]>
  426. </script>
  427. </datagrid>
  428. <line id="line1" class="line_1" style="x1:600px; y1:70px; x2:1194px; y2:70px; "/>
  429. <caption id="caption7" class="tit_2" style="left:600px; top:55px; width:115px; height:13px; ">Control 리스트</caption>
  430. <group id="group3" visibility="hidden" style="left:615px; top:10px; width:565px; height:35px; ">
  431. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:565px; height:35px; "/>
  432. <select1 id="cmb_testLrgCd" ref="/root/hidden/testlrg" class="combo_s_essential" visibility="hidden" appearance="minimal" itemcount="10" style="left:325px; top:8px; width:110px; height:19px; ">
  433. <choices>
  434. <itemset nodeset="/root/init/LB0104">
  435. <label ref="nm"/>
  436. <value ref="cd"/>
  437. </itemset>
  438. </choices>
  439. <script type="javascript" ev:event="xforms-value-changed">
  440. <![CDATA[
  441. //fSetTestLrgCd();
  442. ]]>
  443. </script>
  444. </select1>
  445. <select1 id="cmb_testMdlCd" ref="/root/hidden/testmdl/cd" class="combo_s_essential" visibility="hidden" appearance="minimal" itemcount="10" style="left:440px; top:8px; width:115px; height:19px; ">
  446. <choices>
  447. <itemset nodeset="/root/init/LB0102">
  448. <label ref="nm"/>
  449. <value ref="cd"/>
  450. </itemset>
  451. </choices>
  452. <script type="javascript" ev:event="xforms-select">
  453. <![CDATA[
  454. //검사코드리스트조회
  455. //fGetTclscdList();
  456. ]]>
  457. </script>
  458. </select1>
  459. <line id="line13" class="line_4" style="x1:214px; y1:6px; x2:214px; y2:28px; "/>
  460. <line id="line5" class="line_4" style="x1:304px; y1:6px; x2:304px; y2:28px; "/>
  461. </group>
  462. <datagrid id="grd_testList" nodeset="/root/main/testlist" caption="^검사코드^검사명" colsep="^" colwidth="30, 150, 200" dataheight="23" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:75px; width:595px; height:290px; ">
  463. <col checkvalue="true,false" disabled="true" ref="chk" type="checkbox" visibility="visible"/>
  464. <col ref="testcd"/>
  465. <col ref="testnm"/>
  466. <script type="javascript" ev:event="ondblclick">
  467. <![CDATA[
  468. //더블 클릭시
  469. if(grd_testList.isCell(event.target) && grd_testList.row >= grd_testList.fixedRows){
  470. //fSetTestCopy();
  471. fTestListClick();
  472. fGetMatrTclsList();
  473. }
  474. ]]>
  475. </script>
  476. <script type="javascript" ev:event="onaftersort">
  477. <![CDATA[
  478. grd_testList.gridToInstance();
  479. ]]>
  480. </script>
  481. <script type="javascript" ev:event="onclick">
  482. <![CDATA[
  483. if(grd_testList.isCell(event.target) && grd_testList.row >= grd_testList.fixedRows){
  484. }
  485. ]]>
  486. </script>
  487. </datagrid>
  488. <line id="line14" class="line_1" style="x1:0px; y1:70px; x2:595px; y2:70px; "/>
  489. <caption id="caption3" class="tit_2" style="left:0px; top:55px; width:115px; height:13px; ">검사항목 리스트</caption>
  490. <datagrid id="grd_matrTclsList" nodeset="/root/main/matrtclslist" caption="검사코드^검사명^Control코드^Control명^Standard^시작일자^종료일자^Def. Dose^결과유형^참고치유형^참고치구분^참고치하한^하한^상한^참고치상한^참고치문자^소수길이^단위^평균^표준편차^WGMR범위^판정유형^반올림옵션^그래프^LotNo^제조회사^제조일시^입고일시^유효일시^IF연동코드^부서코드^등록자^등록일시^최종수정자^최종수정일시" colsep="^" colwidth="80, 120, 80, 100, 100, 85, 85, 80, 80, 80, 80, 80, 50, 50, 80, 80, 60, 50, 50, 60, 80, 80, 80, 60, 70, 80, 85, 85, 85, 80, 80, 80, 135, 80, 135" dataheight="23" explorerbar="sortshow" frozencols="5" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" tooltip="true" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:2px; top:390px; width:1191px; height:336px; ">
  491. <col ref="testcd"/>
  492. <col ref="testnm"/>
  493. <col disabled="true" ref="matrcd" type="input" maxlength="10"/>
  494. <col ref="matrnm" type="input" maxlength="100"/>
  495. <col disabled="true" ref="levlcd" type="combo">
  496. <choices>
  497. <itemset nodeset="/root/init/LB0501">
  498. <label ref="nm"/>
  499. <value ref="cd"/>
  500. </itemset>
  501. </choices>
  502. </col>
  503. <col disabled="true" ref="testfromdd" type="inputdate"/>
  504. <col disabled="true" ref="testtodd" type="inputdate"/>
  505. <col ref="ddosevalue" type="input"/>
  506. <col ref="rsltkind" type="combo">
  507. <choices>
  508. <item>
  509. <label>문자+숫자</label>
  510. <value>0</value>
  511. </item>
  512. <item>
  513. <label>숫자</label>
  514. <value>1</value>
  515. </item>
  516. </choices>
  517. </col>
  518. <col ref="refkind" type="combo">
  519. <choices>
  520. <item>
  521. <label>없음</label>
  522. <value>0</value>
  523. </item>
  524. <item>
  525. <label>문자</label>
  526. <value>1</value>
  527. </item>
  528. <item>
  529. <label>숫자</label>
  530. <value>2</value>
  531. </item>
  532. </choices>
  533. </col>
  534. <col ref="refflag" type="combo">
  535. <choices>
  536. <item>
  537. <label>사용안함</label>
  538. <value>0</value>
  539. </item>
  540. <item>
  541. <label>하한만사용</label>
  542. <value>1</value>
  543. </item>
  544. <item>
  545. <label>상한만사용</label>
  546. <value>2</value>
  547. </item>
  548. <item>
  549. <label>모두사용</label>
  550. <value>3</value>
  551. </item>
  552. </choices>
  553. </col>
  554. <col ref="refl" type="input"/>
  555. <col ref="refls" type="combo">
  556. <choices>
  557. <item>
  558. <label>
  559. <![CDATA[<]]>
  560. </label>
  561. <value>0</value>
  562. </item>
  563. <item>
  564. <label>
  565. <![CDATA[<=]]>
  566. </label>
  567. <value>1</value>
  568. </item>
  569. </choices>
  570. </col>
  571. <col ref="refhs" type="combo">
  572. <choices>
  573. <item>
  574. <label>
  575. <![CDATA[<]]>
  576. </label>
  577. <value>0</value>
  578. </item>
  579. <item>
  580. <label>
  581. <![CDATA[<=]]>
  582. </label>
  583. <value>1</value>
  584. </item>
  585. </choices>
  586. </col>
  587. <col ref="refh" type="input"/>
  588. <col ref="refcval" type="input"/>
  589. <col ref="intrsltfrmt" type="combo">
  590. <choices>
  591. <item>
  592. <label>-</label>
  593. <value>-</value>
  594. </item>
  595. <item>
  596. <label>0</label>
  597. <value>0</value>
  598. </item>
  599. <item>
  600. <label>1</label>
  601. <value>1</value>
  602. </item>
  603. <item>
  604. <label>2</label>
  605. <value>2</value>
  606. </item>
  607. <item>
  608. <label>3</label>
  609. <value>3</value>
  610. </item>
  611. <item>
  612. <label>4</label>
  613. <value>4</value>
  614. </item>
  615. <item>
  616. <label>5</label>
  617. <value>5</value>
  618. </item>
  619. <item>
  620. <label>6</label>
  621. <value>6</value>
  622. </item>
  623. <item>
  624. <label>7</label>
  625. <value>7</value>
  626. </item>
  627. <item>
  628. <label>8</label>
  629. <value>8</value>
  630. </item>
  631. <item>
  632. <label>9</label>
  633. <value>9</value>
  634. </item>
  635. <item>
  636. <label>10</label>
  637. <value>10</value>
  638. </item>
  639. </choices>
  640. </col>
  641. <col ref="rsltunit" type="input"/>
  642. <col ref="avg" type="input"/>
  643. <col ref="sdval" type="input"/>
  644. <col imemode="disabled" ref="wgmrscop" type="input" visibility="hidden" maxlength="6" _chartype="upper"/>
  645. <col ref="judgkind" type="combo">
  646. <choices>
  647. <item>
  648. <label>미사용</label>
  649. <value>0</value>
  650. </item>
  651. <item>
  652. <label>
  653. <![CDATA[L/H]]>
  654. </label>
  655. <value>1</value>
  656. </item>
  657. </choices>
  658. </col>
  659. <col ref="rundkind" type="combo">
  660. <choices>
  661. <item>
  662. <label>사용안함</label>
  663. <value>0</value>
  664. </item>
  665. <item>
  666. <label>반올림</label>
  667. <value>1</value>
  668. </item>
  669. <item>
  670. <label>올림</label>
  671. <value>2</value>
  672. </item>
  673. <item>
  674. <label>내림</label>
  675. <value>3</value>
  676. </item>
  677. </choices>
  678. </col>
  679. <col checkvalue="Y,N" ref="graphdispyn" type="checkbox"/>
  680. <col ref="lotno" type="input"/>
  681. <col ref="prodcmpy" type="input"/>
  682. <col ref="proddt" type="inputdate"/>
  683. <col ref="windt" type="inputdate"/>
  684. <col ref="validd" type="inputdate"/>
  685. <col ref="matrifcd" type="input" maxlength="20"/>
  686. <col ref="userdeptflagcd" visibility="hidden"/>
  687. <col ref="fstrgstrid"/>
  688. <col ref="fstrgstdt" format="yyyy-mm-dd hh:mm:ss"/>
  689. <col ref="lastupdtrid"/>
  690. <col ref="lastupdtdt" format="yyyy-mm-dd hh:mm:ss"/>
  691. <script type="javascript" ev:event="xforms-value-changed">
  692. <![CDATA[
  693. if(grd_matrTclsList.isCell(event.target) && grd_matrTclsList.row >= grd_matrTclsList.fixedRows){
  694. if(grd_matrTclsList.col == grd_matrTclsList.colRef("refl") || grd_matrTclsList.col == grd_matrTclsList.colRef("refh")){
  695. fSetRef();
  696. }
  697. }
  698. ]]>
  699. </script>
  700. </datagrid>
  701. <button id="button52" class="btn2_letter3" disabled="true" visibility="hidden" style="left:1085px; top:366px; width:53px; height:19px; ">
  702. <caption>행추가</caption>
  703. <script type="javascript" ev:event="DOMActivate">
  704. <![CDATA[
  705. grd_matrTclsList.addItem();
  706. ]]>
  707. </script>
  708. </button>
  709. <button id="button53" class="btn2_letter3" visibility="visible" style="left:1139px; top:366px; width:53px; height:19px; ">
  710. <caption>행삭제</caption>
  711. <script type="javascript" ev:event="DOMActivate">
  712. <![CDATA[
  713. //grd_matrTclsList.rowStatus(grd_matrTclsList.row) = 4; //멀티업데이트 시 Delete로 설정 //0:new, 1:insert, 2:update, 3:insert&new, 4:delete
  714. grd_matrTclsList.deleteitem(grd_matrTclsList.row);
  715. ]]>
  716. </script>
  717. </button>
  718. <button id="btn_end" class="btn2_letter2" style="left:1007px; top:366px; width:42px; height:19px; ">
  719. <caption>종료</caption>
  720. <script type="javascript" ev:event="DOMActivate">
  721. <![CDATA[
  722. rtn = messageBox("" , "Q003");
  723. if(rtn == "7"){
  724. return;
  725. }
  726. fEndMatr();
  727. model.refresh();
  728. ]]>
  729. </script>
  730. </button>
  731. <button id="button2" class="btn2_letter6" style="left:1051px; top:366px; width:86px; height:19px; ">
  732. <caption>Control변경</caption>
  733. <script type="javascript" ev:event="DOMActivate">
  734. <![CDATA[
  735. rtn = messageBox("" , "Q003");
  736. if(rtn == "7"){
  737. return;
  738. }
  739. fChangeMatr();
  740. ]]>
  741. </script>
  742. </button>
  743. <button id="btn_up" class="icon_bottom" style="left:585px; top:366px; width:26px; height:19px; ">
  744. <caption/>
  745. <script type="javascript" ev:event="DOMActivate">
  746. <![CDATA[
  747. fCopyTestList();
  748. ]]>
  749. </script>
  750. </button>
  751. <caption id="caption2" class="tit_2" style="left:0px; top:371px; width:170px; height:13px; ">Control 별 검사항목 설정</caption>
  752. <line id="line4" class="line_1" style="x1:0px; y1:386px; x2:1193px; y2:386px; "/>
  753. </group>
  754. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  755. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:139px; height:14px; ">Control Range 관리</caption>
  756. </group>
  757. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  758. <button id="btn_init" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  759. <caption>초기화</caption>
  760. <script type="javascript" ev:event="DOMActivate">
  761. <![CDATA[
  762. window.reload();
  763. ]]>
  764. </script>
  765. </button>
  766. <button id="btn_exec" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  767. <caption>저장</caption>
  768. <script type="javascript" ev:event="DOMActivate">
  769. <![CDATA[
  770. if(messageBox("", "Q002")==6){
  771. if(!checkGridUpdate(grd_matrTclsList)){
  772. messageBox("저장할 자료가 존재하지 않아 실행", "E001");
  773. return;
  774. }
  775. //저장버튼
  776. fExeMatrTclsList();
  777. }
  778. ]]>
  779. </script>
  780. </button>
  781. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  782. <caption id="cap" style="left:320px; top:5px; width:720px; height:15px; font-weight:bold; color:#3366ff; ">단일Control에 여러 검사항목이 묶인 Control과 외부 정도관리 관련 Control은 Control Range 관리 화면을 이용하세요.</caption>
  783. </group>
  784. </xhtml:body>
  785. </xhtml:html>