SMAER00801_SET관리.xrw 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : 사용자별 검사그룹 관리.xrw
  4. * 설 명 : 사용자별 검사그룹 관리
  5. * 설 계 자 : (주)에이씨케이 - 박정은
  6. * 작 성 자 : (주)에이씨케이 - 박정은
  7. * 작 성 일 : 2007.04.20
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>과/개인별 SET 관리</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root>
  18. <main>
  19. <gruplist>
  20. <testgrupnm/>
  21. </gruplist>
  22. <testgruplist>
  23. <cd/>
  24. <nm/>
  25. <etc01/>
  26. <etc02/>
  27. <etc03/>
  28. </testgruplist>
  29. <testgrupdetl>
  30. <chk/>
  31. <tclsnm/>
  32. <delimeter/>
  33. <unit/>
  34. <tclscd/>
  35. <spccd/>
  36. </testgrupdetl>
  37. <tclscdlist>
  38. <ptclscd/>
  39. <tclsnm/>
  40. <tclscd/>
  41. <spccd/>
  42. <lvl/>
  43. </tclscdlist>
  44. </main>
  45. <send>
  46. <codeflag/>
  47. <testmdlcd/>
  48. <testgrupnm/>
  49. <grddata/>
  50. <gruprow/>
  51. <detlrow/>
  52. <flag1>1</flag1>
  53. <flag2/>
  54. </send>
  55. <init>
  56. </init>
  57. <hidden>
  58. <extrdt/>
  59. <testgrupnm/>
  60. <testitem/>
  61. <mdlcd>00</mdlcd>
  62. <testgruplist>
  63. <testgrupcd/>
  64. <testgrupnm/>
  65. <etc01/>
  66. <etc02/>
  67. <etc03/>
  68. </testgruplist>
  69. <testgrupdetl>
  70. <chk/>
  71. <tclsnm/>
  72. <tclscd/>
  73. </testgrupdetl>
  74. <temp/>
  75. <tclscdlist>
  76. <tclscdlist/>
  77. <tclsnmlist/>
  78. <tclscdlist2/>
  79. </tclscdlist>
  80. </hidden>
  81. <codedata>
  82. <popupmenu>
  83. <grid>
  84. <item>
  85. <name>한꺼번에 옮기기</name>
  86. <func>fSetTestGrupDetlAll</func>
  87. </item>
  88. <item>
  89. <name>하나씩 옮기기</name>
  90. <func>fSetTestGrupDetl</func>
  91. </item>
  92. </grid>
  93. </popupmenu>
  94. </codedata>
  95. </root>
  96. </instance>
  97. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  98. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  99. <script type="javascript" src="../../../ast/examcureweb/js/AEZ0001.js"/>
  100. <script type="javascript" ev:event="xforms-model-construct-done">
  101. <![CDATA[
  102. // 초기정보 Get
  103. aezfSetSuppDeptcd();
  104. // 2. 중분류 리스트 조회
  105. model.setValue("/root/send/codeflag", "0102|0103|"); // 0102= 중분류 // 0103 검사그룹
  106. submit("TRLZZ00101");
  107. // 검사그룹 목록 초기화
  108. grd_testgruplist.deleteRow(1);
  109. // 상세정보 목록 초기화
  110. grd_testgrupdetl.deleteRow(1);
  111. // 1. 사용자별 검사그룹 목록 조회
  112. fSettestgrup();
  113. // 3. 검사항목 리스트 조회
  114. fGetTclscdList("00");
  115. ]]>
  116. </script>
  117. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/LB0103"/>
  118. <submission id="TRLLF90402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tclscdlist"/>
  119. <submission id="TRLLF90401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testgrupdetl"/>
  120. <submission id="TXLLF90401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance"/>
  121. <submission id="TXLLF90402" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance"/>
  122. </model>
  123. <script type="javascript">
  124. <![CDATA[
  125. var iudGbn = null;
  126. // 검사그룹 목록 조회
  127. function fSettestgrup(){
  128. var vInstance = document.models(0).instances(0);
  129. var cntCR = vInstance.selectNodes("/root/init/LB0103").length;
  130. NodeCnt = 1;
  131. for(i=1; i<= cntCR; i++){
  132. model.makeNode("/root/hidden/testgruplist["+NodeCnt+"]/testgrupcd");
  133. model.makeNode("/root/hidden/testgruplist["+NodeCnt+"]/testgrupnm");
  134. model.makeNode("/root/hidden/testgruplist["+NodeCnt+"]/etc01");
  135. model.makeNode("/root/hidden/testgruplist["+NodeCnt+"]/etc02");
  136. model.makeNode("/root/hidden/testgruplist["+NodeCnt+"]/etc03");
  137. model.setValue("/root/hidden/testgruplist["+NodeCnt+"]/testgrupcd", model.getValue("/root/init/LB0103["+i+"]/cd"));
  138. model.setValue("/root/hidden/testgruplist["+NodeCnt+"]/testgrupnm", model.getValue("/root/init/LB0103["+i+"]/nm"));
  139. model.setValue("/root/hidden/testgruplist["+NodeCnt+"]/etc01", model.getValue("/root/init/LB0103["+i+"]/etc01"));
  140. model.setValue("/root/hidden/testgruplist["+NodeCnt+"]/etc02", model.getValue("/root/init/LB0103["+i+"]/etc02"));
  141. model.setValue("/root/hidden/testgruplist["+NodeCnt+"]/etc03", model.getValue("/root/init/LB0103["+i+"]/etc03"));
  142. NodeCnt++;
  143. }
  144. }
  145. // 검사항목 리스트 조회
  146. function fGetTclscdList(cd){
  147. var cd = model.getValue("/root/hidden/mdlcd");
  148. model.setValue("/root/send/testmdlcd", cd);
  149. submit("TRLLF90402");
  150. //fSetMakeTree();
  151. }
  152. // 트리구조 만들기
  153. function fSetMakeTree(){
  154. for(var i = 1; i<grd_testitemlist.rows; i++) {
  155. grd_testitemlist.IsSubtotal(i) = true; //그리드의 모든 row를 subtotal 속성을 가진 row로 변경 해주셔야 합니다..
  156. grd_testitemlist.outlinelevel(i) = grd_testitemlist.TextMatrix(i, 4); //인스턴스H_DEPTH 값임 (이넘이 그리드에서 각 로우가 트리상 어떤 Depth를 갖는지 결정하는 넘입니다..)
  157. }
  158. grd_testitemlist.OutlineCol = 1; // 트리 만들 col
  159. grd_testitemlist.OutlineBar = 4; //+ , - , 사각형 안보이게 하려면 0 으로 세팅 //4가 정상
  160. grd_testitemlist.TreeColor = "gray";
  161. }
  162. // 검사항목에서 더블클릭시 검사그룹 상세 정보 목록으로 보내기
  163. function fSetTestGrupDetl(){
  164. var detlrow = grd_testgrupdetl.rows;
  165. var sTclscd = model.getValue("/root/main/tclscdlist["+grd_testitemlist.row+"]/tclscd");
  166. var findrow = grd_testgrupdetl.findRow(sTclscd , 1,3 , true,true);
  167. if(findrow >0 ) {
  168. alert("이미 선택된 검사코드입니다.");
  169. return;
  170. }
  171. grd_testgrupdetl.addItem();
  172. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/chk");
  173. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/tclsnm");
  174. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/tclscd");
  175. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/spccd");
  176. model.setValue("/root/main/testgrupdetl["+detlrow+"]/tclsnm", model.getValue("/root/main/tclscdlist["+grd_testitemlist.row+"]/tclsnm"));
  177. model.setValue("/root/main/testgrupdetl["+detlrow+"]/tclscd", model.getValue("/root/main/tclscdlist["+grd_testitemlist.row+"]/tclscd"));
  178. model.setValue("/root/main/testgrupdetl["+detlrow+"]/spccd", model.getValue("/root/main/tclscdlist["+grd_testitemlist.row+"]/spccd"));
  179. grd_testgrupdetl.rowStatus(detlrow) = 1;
  180. detlrow++;
  181. iudGbn = 0;
  182. }
  183. // 검사항목에서 더블클릭시 검사그룹 상세 정보 목록으로 보내기(배터리 같은거 한꺼번에)
  184. function fSetTestGrupDetlAll(){
  185. var tclscd = model.getValue("/root/main/tclscdlist["+grd_testitemlist.row+"]/tclscd");
  186. var detlrow = grd_testgrupdetl.rows;
  187. for(i=1; i<grd_testitemlist.rows; i++){
  188. if(tclscd == model.getValue("/root/main/tclscdlist["+i+"]/ptclscd")){
  189. grd_testgrupdetl.addItem();
  190. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/chk");
  191. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/tclsnm");
  192. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/tclscd");
  193. model.makeNode("/root/main/testgrupdetl["+detlrow+"]/spccd");
  194. model.setValue("/root/main/testgrupdetl["+detlrow+"]/tclsnm", model.getValue("/root/main/tclscdlist["+i+"]/tclsnm"));
  195. model.setValue("/root/main/testgrupdetl["+detlrow+"]/tclscd", model.getValue("/root/main/tclscdlist["+i+"]/tclscd"));
  196. model.setValue("/root/main/testgrupdetl["+detlrow+"]/spccd", model.getValue("/root/main/tclscdlist["+i+"]/spccd"));
  197. grd_testgrupdetl.rowStatus(detlrow) = 1;
  198. detlrow++;
  199. }
  200. }
  201. iudGbn = 0;
  202. }
  203. // 검사그룹명 엔터
  204. function fKeyEvent(){
  205. if(event.keyCode == "13"){
  206. if(event.target == "ipt_testgrup"){
  207. model.setvalue("/root/hidden/testgrupnm", ipt_testgrup.currentText);
  208. var testgrup = model.getValue("/root/hidden/testgrupnm");
  209. var grupRow = grd_testgruplist.findRow(testgrup, 1,1, false, true);
  210. for(i=0; i< grd_testgruplist.rows;i++){
  211. grd_testgruplist.rowStyle(i, "data", "background-color") = "#ffffff";
  212. //grd_testgruplist.rebuild();
  213. }
  214. grd_testgruplist.rebuild();
  215. if(grupRow < "1"){
  216. // 행추가 + 그룹명 set
  217. var grupRS = grd_testgruplist.rows;
  218. grd_testgruplist.addItem(grupRS);
  219. model.setValue("/root/hidden/testgruplist["+grupRS+"]/testgrupnm", model.getValue("/root/hidden/testgrupnm"));
  220. grd_testgrupdetl.select(grupRS,1,grupRS,1) = true;
  221. model.resetInstanceNode("/root/main/testgrupdetl");
  222. grd_testgrupdetl.rebuild();
  223. grd_testgrupdetl.deleteItem(1);
  224. }else{
  225. // 검사그룹에서 조회
  226. grd_testgruplist.rowStyle(grupRow, "data", "background-color") = "#f3e1bf";
  227. }
  228. }
  229. }
  230. }
  231. // 검사항목 검색
  232. function fGetTestItemList(){
  233. var testitem = model.getValue("/root/hidden/testitem");
  234. var itemRow = grd_testitemlist.findRow(testitem, 1,1, false, false);
  235. for(i=0; i< grd_testitemlist.rows;i++){
  236. grd_testitemlist.rowStyle(i, "data", "background-color") = "#ffffff";
  237. //grd_testgruplist.rebuild();
  238. }
  239. if(itemRow > 0){
  240. grd_testitemlist.rowStyle(itemRow, "data", "background-color") = "#f3e1bf";
  241. grd_testitemlist.select(itemRow,1,itemRow,1) = true;
  242. }
  243. }
  244. // 검사그룹 등록, 수정
  245. function fExeTestGrup(){
  246. //alert("grd_testgrupdetl= " + grd_testgrupdetl.rows);
  247. // 상세목록 없으면 등록 안되게
  248. if(grd_testgrupdetl.rows < 2){
  249. messageBox("검사그룹 상세 정보를", "C001");
  250. return;
  251. }else{ // 검사그룹 상세 정보 있을때 지워주기
  252. fTestGrupDelete();
  253. }
  254. // 검사그룹 목록 row
  255. //var grupRow = null;
  256. //if(model.getValue("/root/hidden/testgruplist["+grd_testgruplist.row+"]/testgrupcd")==""){ // 하나도 없을때
  257. //grupRow = model.getValue("/root/hidden/testgruplist["+(grd_testgruplist.row-1)+"]/testgrupcd");
  258. //grupRow = parseInt(grupRow) +1;
  259. //grupRow = 1;
  260. //}else{
  261. // grupRow = model.getValue("/root/hidden/testgruplist["+grd_testgruplist.row+"]/testgrupcd");
  262. //}
  263. var detldata = grd_testgrupdetl.getUpdateDataAll("i");
  264. var testGrupnm = model.getValue("/root/hidden/testgruplist["+grd_testgruplist.row+"]/testgrupnm");
  265. model.setValue("/root/send/grddata", detldata);
  266. model.setValue("/root/send/testgrupnm", testGrupnm);
  267. //model.setValue("/root/send/gruprow", grupRow);
  268. if(submit("TXLLF90401")==true){
  269. model.reset();
  270. }
  271. }
  272. // 검사그룹 삭제
  273. function fTestGrupDelete(){
  274. var delgrupnm = model.getValue("/root/hidden/testgruplist["+grd_testgruplist.row+"]/testgrupnm");
  275. model.setValue("/root/send/testgrupnm", delgrupnm);
  276. if(submit("TXLLF90402")==true){
  277. model.reset();
  278. }
  279. }
  280. // 검사그룹 상세 정보 목록
  281. function fGetTestGrupDetlList(){
  282. var grupRow = grd_testgruplist.row;
  283. model.setValue("/root/send/testgrupnm", model.getValue("/root/hidden/testgruplist["+grd_testgruplist.row+"]/testgrupnm"));
  284. submit("TRLLF90401");
  285. }
  286. // 검사그룹 상세정보 목록 위치 이동
  287. function fSetDetlListMode(gbn){
  288. var row = grd_testgrupdetl.row;
  289. if(gbn =="1"){
  290. if(row == grd_testgrupdetl.rows-1){
  291. return;
  292. }
  293. pRow = parseInt(row) +1;
  294. model.copyNode("/root/hidden/testgrupdetl", "/root/main/testgrupdetl["+pRow+"]");
  295. model.copyNode("/root/main/testgrupdetl["+pRow+"]", "/root/main/testgrupdetl["+row+"]" );
  296. model.copyNode("/root/main/testgrupdetl["+row+"]", "/root/hidden/testgrupdetl");
  297. }else{
  298. if(row < 1 || row == 1 ){
  299. return;
  300. }
  301. mRow = parseInt(row) -1;
  302. model.copyNode("/root/hidden/testgrupdetl", "/root/main/testgrupdetl["+mRow+"]");
  303. model.copyNode("/root/main/testgrupdetl["+mRow+"]", "/root/main/testgrupdetl["+row+"]" );
  304. model.copyNode("/root/main/testgrupdetl["+row+"]", "/root/hidden/testgrupdetl");
  305. }
  306. grd_testgrupdetl.rebuild();
  307. if(gbn == 1){
  308. //grd_testgrupdetl.select(pRow,1,pRow,1) = true;
  309. grd_testgrupdetl.row= pRow;
  310. }else{
  311. grd_testgrupdetl.row= mRow;
  312. //grd_testgrupdetl.select(mRow,1,mRow,1) = true;
  313. }
  314. iudGbn = 1;
  315. fSetdetlrowstatus();
  316. }
  317. // 행삭제
  318. function fSetdeleterow(){
  319. var gRow = grd_testgrupdetl.row;
  320. grd_testgrupdetl.deleteItem(gRow);
  321. iudGbn = 1;
  322. fSetdetlrowstatus();
  323. }
  324. // 검사그룹 상세 정보 목록 row 상태 변경
  325. function fSetdetlrowstatus(){
  326. for(i=1; i<grd_testgrupdetl.rows; i++){
  327. grd_testgrupdetl.rowStatus(i) = 1;
  328. }
  329. }
  330. // 검사항목 그리드 팝업
  331. function fGridPopup(){
  332. if(event.button == 3){
  333. if(grd_testitemlist.isCell(event.target) && grd_testitemlist.mouseRow >= grd_testitemlist.fixedrows){
  334. window.setPopupMenu(true, "/root/codedata/popupmenu/grid/item", "name", "func", false);
  335. }else{
  336. window.setPopupMenu(false);
  337. }
  338. }
  339. }
  340. // 검사그룹 상세 정보 목록 메인으로 넘기기
  341. function fSetPopUpTclscdList(){
  342. var sendtclsnm = model.getValue("/root/main/testgrupdetl[1]/tclsnm");
  343. var sendtclscd = model.getValue("/root/main/testgrupdetl[1]/tclscd");
  344. var sendtclscd2 = model.getValue("/root/main/testgrupdetl[1]/tclscd");
  345. // 검사그룹 상세 목록 없을때
  346. if(sendtclsnm == ""){
  347. model.setValue("/root/hidden/tclscdlist/tclscdlist", "");
  348. model.setValue("/root/hidden/tclscdlist/tclsnmlist", "");
  349. }else{ // 검사그룹 상세 목록 있을때
  350. for(i=2; i<grd_testgrupdetl.rows; i++){
  351. sendtclsnm = sendtclsnm + ", " + model.getValue("/root/main/testgrupdetl["+i+"]/tclsnm");
  352. //sendtclscd = sendtclscd + "▦" + model.getValue("/root/main/testgrupdetl["+i+"]/tclscd");
  353. sendtclscd = sendtclscd + "','" + model.getValue("/root/main/testgrupdetl["+i+"]/tclscd");
  354. sendtclscd2 = sendtclscd2 + "▦" + model.getValue("/root/main/testgrupdetl["+i+"]/tclscd");
  355. }
  356. model.setValue("/root/hidden/tclscdlist/tclsnmlist", sendtclsnm);
  357. model.setValue("/root/hidden/tclscdlist/tclscdlist", "'" + sendtclscd + "'");
  358. model.setValue("/root/hidden/tclscdlist/tclscdlist2", sendtclscd2);
  359. }
  360. model.copyNode(opener.root.hidden.ref.tclscdlist, root.hidden.tclscdlist);
  361. opener.ipt_tclscdlist.refresh();
  362. window.close();
  363. }
  364. ]]>
  365. </script>
  366. </xhtml:head>
  367. <xhtml:body pagewidth="820" pageheight="625" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  368. <group id="group1" style="left:0px; top:0px; width:810px; height:605px; ">
  369. <line id="line10" class="line_2" style="x1:3px; y1:53px; x2:243px; y2:53px; "/>
  370. <caption id="caption1" class="tit_2" style="left:566px; top:10px; width:100px; height:13px; ">SET 등록</caption>
  371. <line id="line1" class="line_1" style="x1:561px; y1:25px; x2:791px; y2:25px; "/>
  372. <caption id="caption2" class="cell_1" style="left:245px; top:31px; width:100px; height:23px; ">SET상세</caption>
  373. <caption id="caption3" class="cell_1" style="left:3px; top:31px; width:100px; height:23px; ">분류명</caption>
  374. <caption id="caption7" class="cell_1" style="left:561px; top:30px; width:100px; height:23px; ">그룹명</caption>
  375. <button id="button53" class="btn2_letter3" style="left:502px; top:32px; width:53px; height:19px; ">
  376. <caption>행삭제</caption>
  377. <script type="javascript" ev:event="DOMActivate">
  378. <![CDATA[
  379. fSetdeleterow();
  380. ]]>
  381. </script>
  382. </button>
  383. <select1 id="combo4" ref="/root/hidden/mdlcd" class="combo_essential" appearance="minimal" itemcount="20" style="left:106px; top:32px; width:137px; height:19px; ">
  384. <choices>
  385. <itemset nodeset="/root/init/LB0102">
  386. <label ref="nm"/>
  387. <value ref="cd"/>
  388. </itemset>
  389. </choices>
  390. <script type="javascript" ev:event="xforms-select">
  391. <![CDATA[
  392. fGetTclscdList();
  393. ]]>
  394. </script>
  395. </select1>
  396. <line id="line2" class="line_1" style="x1:561px; y1:108px; x2:791px; y2:108px; "/>
  397. <caption id="caption4" class="tit_2" style="left:250px; top:11px; width:131px; height:13px; ">SET 수정</caption>
  398. <line id="line3" class="line_1" style="x1:245px; y1:26px; x2:555px; y2:26px; "/>
  399. <line id="line4" class="line_1" style="x1:245px; y1:108px; x2:555px; y2:108px; "/>
  400. <line id="line5" class="line_3" style="x1:245px; y1:53px; x2:555px; y2:53px; "/>
  401. <caption id="caption5" class="tit_2" style="left:8px; top:11px; width:151px; height:13px; ">검사항목 조회</caption>
  402. <line id="line6" class="line_1" style="x1:3px; y1:26px; x2:243px; y2:26px; "/>
  403. <line id="line9" class="line_1" style="x1:3px; y1:108px; x2:243px; y2:108px; "/>
  404. <caption id="caption6" class="cell_1" style="left:3px; top:55px; width:100px; height:23px; ">검색</caption>
  405. <line id="line7" class="line_3" style="x1:3px; y1:77px; x2:243px; y2:77px; "/>
  406. <button id="button61" class="icon_search" style="left:223px; top:57px; width:16px; height:16px; ">
  407. <caption/>
  408. <script type="javascript" ev:event="DOMActivate">
  409. <![CDATA[
  410. // 검사항목 검색
  411. fGetTestItemList();
  412. ]]>
  413. </script>
  414. </button>
  415. <input id="input3" ref="/root/hidden/testitem" class="input_default" style="left:106px; top:56px; width:110px; height:19px; "/>
  416. <caption id="caption8" class="tit_2" style="left:561px; top:93px; width:100px; height:13px; ">SET 목록</caption>
  417. <caption id="caption9" class="tit_2" style="left:250px; top:93px; width:162px; height:13px; ">SET 상세 정보 목록</caption>
  418. <caption id="caption10" class="tit_2" style="left:8px; top:92px; width:151px; height:13px; ">검사 항목</caption>
  419. <button id="button104" class="icon_top" style="left:444px; top:32px; width:26px; height:19px; ">
  420. <caption/>
  421. <script type="javascript" ev:event="DOMActivate">
  422. <![CDATA[
  423. fSetDetlListMode("2");
  424. ]]>
  425. </script>
  426. </button>
  427. <button id="button105" class="icon_bottom" style="left:473px; top:32px; width:26px; height:19px; ">
  428. <caption/>
  429. <script type="javascript" ev:event="DOMActivate">
  430. <![CDATA[
  431. fSetDetlListMode("1");
  432. ]]>
  433. </script>
  434. </button>
  435. <datagrid id="grd_testitemlist" nodeset="/root/main/tclscdlist" caption="검사명^kind^tclscd^lvl^ptclscd^spccd" colsep="^" colwidth="200, 30, 30, 30, 30, 30" dataheight="23" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:3px; top:113px; width:240px; height:450px; ">
  436. <col ref="tclsnm"/>
  437. <col ref="tclskind"/>
  438. <col ref="tclscd"/>
  439. <col ref="lvl"/>
  440. <col ref="ptclscd"/>
  441. <col ref="spccd"/>
  442. <script type="javascript" ev:event="ondblclick">
  443. <![CDATA[
  444. // 검사항목 목록 더블클릭시
  445. fSetTestGrupDetl();
  446. ]]>
  447. </script>
  448. <script type="javascript" ev:event="onmousedown">
  449. <![CDATA[
  450. // 검사항목 그리드에서 팝메뉴 보이게
  451. fGridPopup();
  452. ]]>
  453. </script>
  454. <script type="javascript" ev:event="DOMFocusOut">
  455. <![CDATA[
  456. // 검사항목 그리드 아니면 팝메뉴 안보이게
  457. window.setPopupMenu(false);
  458. ]]>
  459. </script>
  460. </datagrid>
  461. <datagrid id="grd_testgrupdetl" nodeset="/root/main/testgrupdetl" caption="^검사명^참고치^단위^검사코드^검체코드" colsep="^" colwidth="20, 109, 50, 34, 78, 16" dataheight="23" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:245px; top:113px; width:310px; height:450px; ">
  462. <col ref="chk" type="checkbox"/>
  463. <col ref="tclsnm"/>
  464. <col ref="delimeter" type="input"/>
  465. <col ref="unit" type="input"/>
  466. <col ref="tclscd"/>
  467. <col ref="spccd"/>
  468. </datagrid>
  469. <datagrid id="grd_testgruplist" nodeset="/root/hidden/testgruplist" caption="그룹명" colsep="^" colwidth="205" dataheight="23" defaultrows="0" ellipsis="true" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:561px; top:113px; width:230px; height:450px; ">
  470. <col ref="testgrupnm"/>
  471. <script type="javascript" ev:event="onclick">
  472. <![CDATA[
  473. fGetTestGrupDetlList();
  474. ]]>
  475. </script>
  476. </datagrid>
  477. <input id="ipt_testgrup" ref="/root/hidden/testgrupnm" class="input_button" inputtype="button" style="left:664px; top:31px; width:127px; height:19px; "/>
  478. <line id="line12" class="line_3" style="x1:561px; y1:77px; x2:791px; y2:77px; "/>
  479. <caption id="caption11" class="cell_1" style="left:561px; top:55px; width:100px; height:23px; ">구분</caption>
  480. <line id="line13" class="line_2" style="x1:561px; y1:53px; x2:795px; y2:53px; "/>
  481. <select1 id="radio1" ref="/root/send/flag1" appearance="full" overflow="visible" style="left:663px; top:57px; width:55px; height:20px; border-style:none; ">
  482. <choices>
  483. <item>
  484. <label>과별</label>
  485. <value>1</value>
  486. </item>
  487. </choices>
  488. </select1>
  489. <select1 id="radio2" ref="/root/send/flag2" appearance="full" overflow="visible" selected="true" style="left:729px; top:57px; width:55px; height:20px; border-style:none; ">
  490. <choices>
  491. <item>
  492. <label>개인별</label>
  493. <value>2</value>
  494. </item>
  495. </choices>
  496. </select1>
  497. <button id="button1" class="btn4_letter2" style="left:619px; top:570px; width:56px; height:22px; ">
  498. <caption>등록</caption>
  499. <script type="javascript" ev:event="DOMActivate">
  500. <![CDATA[
  501. // 검사그룹 등록, 수정
  502. fExeTestGrup();
  503. ]]>
  504. </script>
  505. </button>
  506. <button id="button2" class="btn4_letter2" style="left:560px; top:570px; width:56px; height:22px; ">
  507. <caption>확인</caption>
  508. <script type="javascript" ev:event="DOMActivate">
  509. <![CDATA[
  510. // 검사그룹 상세 정보목록 화면에 뿌리기
  511. fSetPopUpTclscdList();
  512. ]]>
  513. </script>
  514. </button>
  515. <button id="button4" class="btn4_letter2" style="left:678px; top:570px; width:56px; height:22px; ">
  516. <caption>삭제</caption>
  517. <script type="javascript" ev:event="DOMActivate">
  518. <![CDATA[
  519. fTestGrupDelete();
  520. ]]>
  521. </script>
  522. </button>
  523. <button id="button9" class="btn4_letter2" style="left:737px; top:570px; width:56px; height:22px; ">
  524. <caption>닫기</caption>
  525. <script type="javascript" ev:event="DOMActivate">
  526. <![CDATA[
  527. window.close();
  528. ]]>
  529. </script>
  530. </button>
  531. </group>
  532. <script type="javascript" ev:event="onkeypress">
  533. <![CDATA[
  534. fKeyEvent();
  535. ]]>
  536. </script>
  537. </xhtml:body>
  538. </xhtml:html>