SMAHB01000_RFID관리.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMAHB01000.xrw
  4. * 설 명 : RFID관리
  5. * 설 계 자 : 손범성
  6. * 작 성 자 :
  7. * 작 성 일 : 2008.01.19
  8. * 기 타 :
  9. -->
  10. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  11. <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">
  12. <xhtml:head>
  13. <xhtml:title>RFID 코드관리</xhtml:title>
  14. <model id="model1">
  15. <instance id="instance1">
  16. <root xmlns="">
  17. <main>
  18. <pretestlst>
  19. <item>
  20. <examroomid/>
  21. <examroomnm/>
  22. <preexamid/>
  23. <avgtime/>
  24. <waitshowyn/>
  25. <baryn/>
  26. <nameyn/>
  27. <hoscode/>
  28. <orgexamid/>
  29. </item>
  30. </pretestlst>
  31. <addtestlst>
  32. <item>
  33. <testcd/>
  34. <examroomid/>
  35. <examid/>
  36. <hoscode/>
  37. <orgexamroomid/>
  38. <orgexamid/>
  39. </item>
  40. </addtestlst>
  41. <pkgtestlst>
  42. <item>
  43. <sel/>
  44. <examroomid/>
  45. <examid/>
  46. </item>
  47. </pkgtestlst>
  48. <testrmlst>
  49. <room>
  50. <examroomid/>
  51. <examroomnm/>
  52. <healexamplacecd/>
  53. <waitshowyn/>
  54. <floorno/>
  55. <examroomidkey/>
  56. <healexamplacecdkey/>
  57. </room>
  58. <pkg>
  59. <sel/>
  60. <examroomid/>
  61. <examroomnm/>
  62. <examid/>
  63. <examnm/>
  64. <avgtime/>
  65. <waitshowyn/>
  66. <baryn/>
  67. <nameyn/>
  68. <hoscode/>
  69. <m/>
  70. </pkg>
  71. <exam>
  72. <examroomid/>
  73. <examroomnm/>
  74. <examid/>
  75. <examnm/>
  76. <healexamplacecd/>
  77. <avgtime/>
  78. <waitshowyn/>
  79. <baryn/>
  80. <nameyn/>
  81. <hoscode/>
  82. </exam>
  83. </testrmlst>
  84. </main>
  85. <send>
  86. <srchtestroomcd/>
  87. <srchtestroomnm/>
  88. <srchhealexamplacecd/>
  89. <srchinstcd/>
  90. <pkgcd/>
  91. <pkgnm/>
  92. <testcd/>
  93. <testnm/>
  94. <srchexamid/>
  95. <save>
  96. <roominfo/>
  97. <pretest/>
  98. <pkgtest/>
  99. <addtest/>
  100. <examroom/>
  101. <room/>
  102. </save>
  103. </send>
  104. <init>
  105. <room>
  106. <examlst>
  107. <itemexam/>
  108. </examlst>
  109. <roomlst>
  110. <itemroom/>
  111. </roomlst>
  112. <chngexamlst>
  113. <itemexam/>
  114. </chngexamlst>
  115. </room>
  116. <baseinfo>
  117. <healexamplacelst/>
  118. </baseinfo>
  119. </init>
  120. <hidden>
  121. </hidden>
  122. </root>
  123. </instance>
  124. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  125. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  126. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  127. <script type="javascript" src="../../../ast/healexamweb/js/healexam.js"/>
  128. <script type="javascript" src="../../../ast/healexamweb/js/AHA001.js"/>
  129. <script type="javascript" src="../../../ast/healthexambaseweb/js/healcombolist.js"/>
  130. <submission id="TRZBC00101"/>
  131. <script type="javascript" ev:event="xforms-ready">
  132. <![CDATA[
  133. fInit();
  134. ]]>
  135. </script>
  136. <bind id="bind_roomcd" ref="/root/main/roomlst/item/testroomcd" readonly="../testroomcdkey!=''"/>
  137. <submission id="TRAHB01001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/testrmlst"/>
  138. <submission id="TRAHB01002" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/room/examlst"/>
  139. <submission id="TRAHB01003" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/pretestlst"/>
  140. <submission id="TRAHB01004" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/pkgtestlst"/>
  141. <submission id="TRAHR00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/init/room/roomlst"/>
  142. <submission id="TRAHB01005" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/addtestlst"/>
  143. <submission id="TXAHB01001" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/save" resultref="/root/hidden"/>
  144. <submission id="TRAHA00001"/>
  145. </model>
  146. <script type="javascript">
  147. <![CDATA[
  148. /*
  149. *초기화
  150. */
  151. function fInit() {
  152. healGetCodeList( new Array("S600")
  153. , new Array("/root/init/baseinfo/healexamplacelst") );
  154. // 검사실 정보조회
  155. fGetRoomList();
  156. // 검사실 코드
  157. var ret = submit("TRAHB01002");
  158. submit("TRAHR00101");
  159. // 그리드 초기화
  160. model.removeNodeset(grd_pretestlst.nodeset);
  161. model.removeNodeset(grd_addtestlst.nodeset);
  162. //초기화시 검사정보 클릭되도록 수정(2016/12/06)
  163. button2.dispatch("onclick");
  164. //초기화시 검사정보 클릭되도록 수정(2016/12/06)
  165. model.refresh();
  166. }
  167. /*
  168. *검사실 정보 조회
  169. */
  170. function fGetRoomList() {
  171. model.setValue("/root/send/srchinstcd",getUserInfo("dutplceinstcd"));
  172. submit("TRAHB01001");
  173. }
  174. /*
  175. * 선행검사 리스트 조회
  176. */
  177. function fGetPreExamList() {
  178. var sel = sw_rfid.selectedIndex;
  179. var row = grd_testrmlst.row;
  180. if(sel == 0 && row > 0) {
  181. var examid = grd_testrmlst.valueMatrix(row , grd_testrmlst.colRef("examid"));
  182. var healexamplacecd = grd_testrmlst.valueMatrix(row , grd_testrmlst.colRef("healexamplacecds"));
  183. model.setValue("/root/send/srchexamid" , examid);
  184. var ret = submit("TRAHB01003");
  185. if(ret) {
  186. btn_pretestadd.disabled = false;
  187. btn_pretestdel.disabled = false;
  188. model.removeNodeset("/root/init/room/chngexamlst/itemexam");
  189. var nodeList = instance1.selectNodes("/root/init/room/examlst/itemexam[=healexamplacecd'"+ healexamplacecd +"']");
  190. var rCSV = getNodeListCSV(nodeList);
  191. setCSVToNode( "/root/init/room/chngexamlst", rCSV ,"itemexam");
  192. }
  193. }
  194. }
  195. /*
  196. * 정보조회
  197. * 패키지 등록 검사조회 및 등록
  198. */
  199. function fGetPkgExamList() {
  200. var ret = submit("TRAHB01004");
  201. var pkgNodeList = instance1.selectNodes("/root/main/pkgtestlst/item");
  202. if(ret) {
  203. for(var i=1; i < grd_pkgtestlst.rows; i++) {
  204. grd_pkgtestlst.valueMatrix(i,grd_pkgtestlst.colRef("sel")) = "N";
  205. var roomid = grd_pkgtestlst.valueMatrix(i,grd_pkgtestlst.colRef("examroomid"));
  206. var examid = grd_pkgtestlst.valueMatrix(i,grd_pkgtestlst.colRef("examid"));
  207. for(var j=1; j< pkgNodeList.length; j++) {
  208. var pkgRoomid = model.getValue("/root/main/pkgtestlst/item["+ j +"]/examroomid");
  209. var pkgExamid = model.getValue("/root/main/pkgtestlst/item["+ j +"]/examid");
  210. if(roomid == pkgRoomid && pkgExamid == examid) {
  211. grd_pkgtestlst.valueMatrix(i,grd_pkgtestlst.colRef("sel")) = "Y";
  212. grd_pkgtestlst.valueMatrix(i,grd_pkgtestlst.colRef("m")) = "u";
  213. }
  214. }
  215. }
  216. }
  217. }
  218. /*
  219. * 검사실 저장 체크
  220. */
  221. function fChkSaveRoom() {
  222. var chkVal = true;
  223. for(var i=1; i < grd_roomlst.rows; i++) {
  224. var examroomid = grd_roomlst.valueMatrix(i,grd_roomlst.colRef("examroomid"));
  225. var examroomnm = grd_roomlst.valueMatrix(i,grd_roomlst.colRef("examroomnm"));
  226. var healexamplacecd = grd_roomlst.valueMatrix(i,grd_roomlst.colRef("healexamplacecd"));
  227. var nodeList = instance1.selectNodes("/root/main/testrmlst/room[healexamplacecd='"+ healexamplacecd +"' and examroomid='" + examroomid + "']");
  228. if(examroomid == "") {
  229. messageBox("검사실을","C001");
  230. chkVal = false;
  231. break;
  232. }
  233. if(examroomnm == "") {
  234. messageBox("검사실명을","C001");
  235. chkVal = false;
  236. break;
  237. }
  238. if(healexamplacecd == "") {
  239. messageBox("건진장소를","C002");
  240. chkVal = false;
  241. break;
  242. }
  243. if(nodeList.length > 1) {
  244. messageBox("검사실이","E006");
  245. chkVal = false;
  246. break;
  247. }
  248. }
  249. return chkVal;
  250. }
  251. /*
  252. * 추가검사 별 검사실,검사정보 조회
  253. */
  254. function fGetAddExamList() {
  255. submit("TRAHB01005");
  256. }
  257. /*
  258. *선행검사를 추가한다.
  259. */
  260. function fAddExam(vGrd , vRow) {
  261. var examRow = grd_testrmlst.row;
  262. var rowStat = vGrd.rowStatus(vRow);
  263. var preexamid = vGrd.valueMatrix(vRow,vGrd.colRef("preexamid"));
  264. var chkRow = 0;
  265. var count = -1;
  266. //선행검사 중복체크
  267. while(chkRow >= 0) {
  268. chkRow = vGrd.findRow(preexamid,chkRow+1,vGrd.colRef("preexamid"),false,true);
  269. count++;
  270. }
  271. if(count >= 2) {
  272. messageBox("검사가 ","E006");
  273. if(rowStat == 1 || rowStat == 3) {
  274. model.resetInstanceNode(vGrd.nodeset + "[" + vRow + "]");
  275. }else if(rowStat == 2 || rowStat == 6) {
  276. vGrd.valueMatrix(vRow,vGrd.colRef("preexamid")) = vGrd.valueMatrix(vRow,vGrd.colRef("orgexamid"));
  277. fAddExam(vGrd , vRow);
  278. }
  279. return;
  280. }
  281. var findRow = grd_testrmlst.findRow(preexamid,1,grd_testrmlst.colRef("examid"),false ,true);
  282. var desNode = vGrd.nodeset + "[" + vRow + "]/";
  283. var srcNode = grd_testrmlst.nodeset + "[" + findRow + "]/";
  284. // 선행검사 등록
  285. if(findRow > 0 ) {
  286. model.setValue(desNode+"examroomid" , model.getValue(srcNode+"examroomid"));
  287. model.setValue(desNode+"examroomnm" , model.getValue(srcNode+"examroomnm"));
  288. model.setValue(desNode+"avgtime" , model.getValue(srcNode+"avgtime"));
  289. model.setValue(desNode+"waitshowyn" , model.getValue(srcNode+"waitshowyn"));
  290. model.setValue(desNode+"baryn" , model.getValue(srcNode+"baryn"));
  291. model.setValue(desNode+"nameyn" , model.getValue(srcNode+"nameyn"));
  292. model.setValue(desNode+"hoscode" , model.getValue(srcNode+"hoscode"));
  293. model.setValue(desNode+"orgexamid" , model.getValue(desNode+"orgexamid"));
  294. }
  295. }
  296. /**
  297. * RFID 코드 저장
  298. * A : 전체 B: 선행검사 C: 패키지 검사 D: 추가검사
  299. */
  300. function fSaveRfid(vMod) {
  301. //초기화
  302. model.resetInstanceNode("/root/send/save");
  303. model.makeValue("/root/send/save/instcd" , model.getValue("/root/send/srchinstcd"));
  304. //검사실 정보
  305. model.setValue("/root/send/save/roominfo" , getGridUpdateData(grd_testrmlst) );
  306. // 선행검사
  307. if(vMod == "A" || vMod == "B") {
  308. fChkSavePreExam();
  309. model.makeValue("/root/send/save/examid" , model.getValue("/root/send/srchexamid"));
  310. var preTest = getGridUpdateData(grd_pretestlst);
  311. model.setValue("/root/send/save/pretest" , preTest);
  312. if ( fChkSaveRoom() ) {
  313. model.makeValue("/root/send/save/room" , getGridUpdateData(grd_roomlst));
  314. }else {
  315. return ;
  316. }
  317. }
  318. // 패키지 검사
  319. if(vMod == "A" || vMod == "C") {
  320. /*
  321. model.makeValue("/root/send/save/pkgcd" , model.getValue("/root/send/pkgcd"));
  322. var nodeList = instance1.selectNodes(grd_pkgtestlst.nodeset+"[m !='s']");
  323. var rCSV = getNodeListCSV(nodeList);
  324. model.setValue("/root/send/save/pkgtest",rCSV);
  325. */
  326. }
  327. // 추감검사
  328. if(vMod == "A" || vMod == "D") {
  329. /*
  330. fChkSaveAddExam();
  331. var addTest = getGridUpdateData(grd_addtestlst);
  332. model.setValue("/root/send/save/addtest" , addTest);
  333. */
  334. }
  335. var ret = submit("TXAHB01001");
  336. if(ret) {
  337. if(vMod == "A" || vMod == "B") {
  338. fGetPreExamList();
  339. fGetRoomList();
  340. submit("TRAHR00101");
  341. grd_testrmlst.refresh();
  342. }
  343. if(vMod == "A" || vMod == "C") {
  344. //fGetPkgExamList();
  345. }
  346. if(vMod == "A" || vMod == "D") {
  347. //fGetAddExamList();
  348. }
  349. }
  350. }
  351. /*
  352. * 선행검사 저장 체크
  353. */
  354. function fChkSavePreExam() {
  355. var rows = grd_pretestlst.rows;
  356. for(var i=1; i < rows; i++) {
  357. var rowStat = grd_pretestlst.rowStatus(i);
  358. if(rowStat == 1 || rowStat == 3) {
  359. var preExamid = grd_pretestlst.valueMatrix(i,grd_pretestlst.colRef("preexamid"));
  360. if(preExamid == "") {
  361. messageBox("선행검사를 선택하지","E007");
  362. return;
  363. }
  364. }
  365. }
  366. }
  367. /*
  368. * 추가검사 저장 체크
  369. */
  370. function fChkSaveAddExam() {
  371. var rows = grd_addtestlst.rows;
  372. for(var i=1; i < rows; i++) {
  373. var rowStat = grd_addtestlst.rowStatus(i);
  374. if(rowStat == 1 || rowStat == 3) {
  375. var roomId = grd_addtestlst.valueMatrix(i,grd_addtestlst.colRef("examroomid"));
  376. var examId = grd_addtestlst.valueMatrix(i,grd_addtestlst.colRef("examid"));
  377. if(roomId == "") {
  378. messageBox("검사실 번호를 선택하지 ","E007");
  379. return;
  380. }
  381. if(examId == "") {
  382. messageBox("검사 번호를 선택하지 ","E007");
  383. return;
  384. }
  385. }
  386. }
  387. }
  388. /*
  389. * 검사대기자 표시여부를 셋팅한다.
  390. */
  391. function fSetWaitYN() {
  392. var idx = grd_testrmlst.row;
  393. var waitYN = grd_testrmlst.valueMatrix( idx , grd_testrmlst.colRef("waitshowyn") );
  394. var room_id_src = grd_testrmlst.valueMatrix( idx , grd_testrmlst.colRef("examroomid") );
  395. for(var i=1; i <= grd_testrmlst.rows; i++) {
  396. var room_id_des = grd_testrmlst.valueMatrix( i , grd_testrmlst.colRef("examroomid") );
  397. if(room_id_src == room_id_des) {
  398. grd_testrmlst.valueMatrix( i , grd_testrmlst.colRef("waitshowyn") ) = waitYN;
  399. }
  400. }
  401. }
  402. ]]>
  403. </script>
  404. </xhtml:head>
  405. <xhtml:body guideline="1,1192;2,782;1,630;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  406. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  407. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:189px; height:14px; ">중앙관제관리</caption>
  408. </group>
  409. <group id="group5" scroll="auto" style="left:0px; top:17px; width:1195px; height:746px; ">
  410. <button id="btn_pretest" class="btn_sw" group="tab" style="left:602px; top:50px; width:84px; height:22px; ">
  411. <caption>선행검사</caption>
  412. <toggle case="case_pretest" ev:event="onclick"/>
  413. </button>
  414. <button id="btn_pkgtest" class="btn_sw" visibility="hidden" group="tab" style="left:686px; top:50px; width:84px; height:22px; ">
  415. <caption>패키지별 검사</caption>
  416. <toggle case="case_pkgtest" ev:event="onclick"/>
  417. </button>
  418. <group id="group6" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  419. <shape id="roundrect3" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  420. <button id="btn_search" class="btn1_letter2" style="left:1122px; top:7px; width:56px; height:22px; ">
  421. <caption>조회</caption>
  422. <script type="javascript" ev:event="DOMActivate">
  423. <![CDATA[
  424. fGetRoomList();
  425. ]]>
  426. </script>
  427. </button>
  428. <line id="line18" class="line_4" style="x1:1106px; y1:7px; x2:1106px; y2:29px; border-left-style:solid; "/>
  429. <caption id="caption59" class="search_name" style="left:16px; top:8px; width:60px; height:17px; ">코드 :</caption>
  430. <input id="ipt_cd" ref="/root/send/srchtestroomcd" class="input_s_essential" style="left:80px; top:7px; width:140px; height:19px; ">
  431. <script type="javascript" ev:event="onkeyup">
  432. <![CDATA[
  433. inputEnterKey("btn_search", "DOMActivate");
  434. ]]>
  435. </script>
  436. </input>
  437. <input id="ipt_nm" ref="/root/send/srchtestroomnm" class="input_s_essential" style="left:362px; top:7px; width:293px; height:19px; ">
  438. <script type="javascript" ev:event="onkeyup">
  439. <![CDATA[
  440. inputEnterKey("btn_search", "DOMActivate");
  441. ]]>
  442. </script>
  443. </input>
  444. <caption id="caption21" class="search_name" style="left:300px; top:8px; width:73px; height:17px; ">명칭 :</caption>
  445. <caption id="caption10" class="search_name" style="left:730px; top:8px; width:81px; height:17px; ">건진장소:</caption>
  446. <select1 id="combo1" ref="/root/send/srchhealexamplacecd" class="combo_search" appearance="minimal" style="left:825px; top:7px; width:100px; height:19px; ">
  447. <choices>
  448. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  449. <label ref="cdnm"/>
  450. <value ref="cdid"/>
  451. </itemset>
  452. </choices>
  453. </select1>
  454. </group>
  455. <switch id="sw_rfid" style="left:602px; top:72px; width:588px; height:668px; ">
  456. <case id="case_pretest" selected="true">
  457. <line id="line1" class="line_1" style="x1:5px; y1:30px; x2:581px; y2:30px; "/>
  458. <caption id="caption1" class="tit_2" style="left:5px; top:15px; width:131px; height:13px; ">선행검사</caption>
  459. <button id="btn_pretestadd" class="btn2_letter3" disabled="true" style="left:473px; top:10px; width:53px; height:19px; ">
  460. <caption>행추가</caption>
  461. <script type="javascript" ev:event="DOMActivate">
  462. <![CDATA[
  463. grd_pretestlst.addRow();
  464. var addRow = grd_pretestlst.rows - 1;
  465. grd_pretestlst.isReadOnly(addRow,grd_pretestlst.colRef("waitshowyn")) = true;
  466. grd_pretestlst.isReadOnly(addRow,grd_pretestlst.colRef("baryn")) = true;
  467. grd_pretestlst.isReadOnly(addRow,grd_pretestlst.colRef("nameyn")) = true;
  468. ]]>
  469. </script>
  470. </button>
  471. <button id="btn_pretestdel" class="btn2_letter3" disabled="true" style="left:528px; top:10px; width:53px; height:19px; ">
  472. <caption>행삭제</caption>
  473. <script type="javascript" ev:event="DOMActivate">
  474. <![CDATA[
  475. var row = grd_pretestlst.row;
  476. var rowStat = grd_pretestlst.rowStatus(row);
  477. if(rowStat == 1 || rowStat == 3) {
  478. grd_pretestlst.deleteRow(row);
  479. }else if(rowStat == 2 || rowStat == 0) {
  480. grd_pretestlst.rowStatus(row) = 4;
  481. }
  482. ]]>
  483. </script>
  484. </button>
  485. <datagrid id="grd_pretestlst" nodeset="/root/main/pretestlst/item" caption="검사실번호^검사실명^검사명^소요시간^대기자표시^바코드자동출력^네임지자동출력^기관코드^원본검사코드" colsep="^" colwidth="100, 100, 100, 80, 80, 90, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:35px; width:576px; height:626px; ">
  486. <col ref="examroomid"/>
  487. <col ref="examroomnm"/>
  488. <col disabled="false" ref="preexamid" type="combo">
  489. <choices>
  490. <itemset nodeset="/root/init/room/chngexamlst/itemexam">
  491. <label ref="examnm"/>
  492. <value ref="examid"/>
  493. </itemset>
  494. </choices>
  495. </col>
  496. <col ref="avgtime"/>
  497. <col checkvalue="Y,N" disabled="true" ref="waitshowyn" type="checkbox"/>
  498. <col checkvalue="Y,N" disabled="true" ref="baryn" type="checkbox"/>
  499. <col checkvalue="Y,N" disabled="true" ref="nameyn" type="checkbox"/>
  500. <col ref="hoscode" visibility="hidden"/>
  501. <col ref="orgexamid"/>
  502. <script type="javascript" ev:event="xforms-select">
  503. <![CDATA[
  504. var col = grd_pretestlst.col;
  505. var row = grd_pretestlst.row;
  506. if(col == grd_pretestlst.colRef("preexamid")) {
  507. fAddExam(grd_pretestlst , row);
  508. }
  509. ]]>
  510. </script>
  511. </datagrid>
  512. </case>
  513. <case id="case_pkgtest">
  514. <datagrid id="grd_pkgtestlst" nodeset="/root/main/testrmlst/pkg" caption="선택^검사실그룹코드^검사실그룹명^검사실코드^검사명^소요시간^대기자표시^바코드자동출력^네임지자동출력^기관코드^실행구분" colsep="^" colwidth="50, 100, 100, 100, 100, 80, 80, 90, 100, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:5px; top:57px; width:576px; height:603px; ">
  515. <col checkvalue="Y,N" disabled="true" ref="sel" type="checkbox"/>
  516. <col ref="examroomid"/>
  517. <col ref="examroomnm"/>
  518. <col ref="examid" visibility="hidden"/>
  519. <col ref="examnm"/>
  520. <col ref="avgtime"/>
  521. <col checkvalue="Y,N" disabled="true" ref="waitshowyn" type="checkbox"/>
  522. <col checkvalue="Y,N" disabled="true" ref="baryn" type="checkbox"/>
  523. <col checkvalue="Y,N" disabled="true" ref="nameyn" type="checkbox"/>
  524. <col ref="hoscode" visibility="visible"/>
  525. <col ref="m" visibility="visible"/>
  526. <script type="javascript" ev:event="onclick">
  527. <![CDATA[
  528. var row = grd_pkgtestlst.row;
  529. var col = grd_pkgtestlst.col;
  530. if(col == grd_pkgtestlst.colRef("sel")) {
  531. var selYN = grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("sel"));
  532. var mode = grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("m"));
  533. if(selYN == "Y" && mode == "s") {
  534. // 새로 등록시
  535. grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("m")) = "i"
  536. }else if(selYN == "N" && mode == "i") {
  537. // 새로 등록 취소
  538. grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("m")) = "s"
  539. }else if(selYN == "Y" && mode == "d") {
  540. // 기존 내역 취소 후 선택
  541. grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("m")) = "u"
  542. }else if(selYN == "N" && mode == "u") {
  543. // 기존 내역 취소
  544. grd_pkgtestlst.valueMatrix(row,grd_pkgtestlst.colRef("m")) = "d"
  545. }
  546. }
  547. ]]>
  548. </script>
  549. </datagrid>
  550. <caption id="caption2" class="tit_2" style="left:5px; top:15px; width:131px; height:14px; ">패키지별 검사항목</caption>
  551. <line id="line2" class="line_1" style="x1:5px; y1:30px; x2:581px; y2:30px; "/>
  552. <button id="btn_pkg" class="btn2_letter5" style="left:506px; top:10px; width:75px; height:19px; ">
  553. <caption>패키지선택</caption>
  554. <script type="javascript" ev:event="DOMActivate">
  555. <![CDATA[
  556. fGetPkgCd("SMAHA02300", "P", "N","nm" ,"" , "", "","/root/send" );
  557. opt_pkgcd.refresh();
  558. opt_pkgnm.refresh();
  559. if(opt_pkgcd.value != "") {
  560. fGetPkgExamList();
  561. grd_pkgtestlst.colDisabled(grd_pkgtestlst.colRef("sel")) = false;
  562. }
  563. ]]>
  564. </script>
  565. </button>
  566. <caption id="caption3" class="cell_1" style="left:5px; top:35px; width:76px; height:20px; ">패키지 코드</caption>
  567. <caption id="caption7" class="cell_1" style="left:286px; top:35px; width:68px; height:20px; ">패키지 명</caption>
  568. <output id="opt_pkgcd" ref="/root/send/pkgcd" class="output_fix" style="left:84px; top:35px; width:199px; height:19px; "/>
  569. <output id="opt_pkgnm" ref="/root/send/pkgnm" class="output_fix" style="left:357px; top:35px; width:224px; height:19px; "/>
  570. <line id="line7" class="line_3" style="x1:5px; y1:55px; x2:581px; y2:55px; "/>
  571. </case>
  572. <case id="case_addtest">
  573. <output id="opt_testcd" ref="/root/send/testcd" class="output_fix" style="left:84px; top:35px; width:199px; height:19px; "/>
  574. <datagrid id="grd_addtestlst" nodeset="/root/main/addtestlst/item" caption="처방코드^검사실번호^검사코드^기관코드^원본방번호^원본검사번호" colsep="^" colwidth="185, 185, 183, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:57px; width:576px; height:604px; ">
  575. <col ref="testcd"/>
  576. <col ref="examroomid" type="combo">
  577. <choices>
  578. <itemset nodeset="/root/init/room/roomlst/itemroom">
  579. <label ref="examroomnm"/>
  580. <value ref="examroomid"/>
  581. </itemset>
  582. </choices>
  583. </col>
  584. <col ref="examid" type="combo" visibility="visible">
  585. <choices>
  586. <itemset nodeset="/root/init/room/examlst/itemexam">
  587. <label ref="examnm"/>
  588. <value ref="examid"/>
  589. </itemset>
  590. </choices>
  591. </col>
  592. <col ref="hoscode" visibility="hidden"/>
  593. <col ref="orgexamroomid"/>
  594. <col ref="orgexamid"/>
  595. </datagrid>
  596. <button id="button6" class="btn2_letter4" style="left:407px; top:10px; width:64px; height:19px; text-select:0 4; ">
  597. <caption>추가처방</caption>
  598. <script type="javascript" ev:event="DOMActivate">
  599. <![CDATA[
  600. fGetPkgCd("SMAHA02300", "A", "N","nm" ,"" , "", "","/root/send","N" );
  601. opt_testcd.refresh();
  602. opt_testnm.refresh();
  603. fGetAddExamList();
  604. if(opt_testcd.value != "") {
  605. btn_testadd.disabled = false;
  606. }
  607. ]]>
  608. </script>
  609. </button>
  610. <caption id="caption5" class="tit_2" style="left:5px; top:15px; width:131px; height:14px; ">추가항목관리</caption>
  611. <caption id="caption8" class="cell_1" style="left:5px; top:35px; width:76px; height:20px; ">처방 코드</caption>
  612. <line id="line3" class="line_1" style="x1:5px; y1:30px; x2:581px; y2:30px; "/>
  613. <caption id="caption9" class="cell_1" style="left:286px; top:35px; width:68px; height:20px; ">처방 명</caption>
  614. <output id="opt_testnm" ref="/root/send/testnm" class="output_fix" style="left:357px; top:35px; width:224px; height:19px; "/>
  615. <line id="line46" class="line_2" style="x1:5px; y1:55px; x2:581px; y2:55px; "/>
  616. <button id="btn_testdel" class="btn2_letter3" disabled="false" style="left:528px; top:10px; width:53px; height:19px; ">
  617. <caption>행삭제</caption>
  618. <script type="javascript" ev:event="DOMActivate">
  619. <![CDATA[
  620. var row = grd_addtestlst.row;
  621. var rowStat = grd_addtestlst.rowStatus(row);
  622. if(rowStat == 3 || rowStat == 1) {
  623. grd_addtestlst.deleteRow(row);
  624. }else if(rowStat == 0 || rowStat == 2) {
  625. grd_addtestlst.rowStatus(row) = 4;
  626. }
  627. ]]>
  628. </script>
  629. </button>
  630. <button id="btn_testadd" class="btn2_letter3" disabled="true" style="left:473px; top:10px; width:53px; height:19px; ">
  631. <caption>행추가</caption>
  632. <script type="javascript" ev:event="DOMActivate">
  633. <![CDATA[
  634. grd_addtestlst.addRow();
  635. var addRow = grd_addtestlst.rows - 1;
  636. grd_addtestlst.valueMatrix(addRow,grd_addtestlst.colRef("testcd")) = opt_testcd.value;
  637. grd_addtestlst.valueMatrix(addRow,grd_addtestlst.colRef("hoscode")) = model.getValue("/root/send/srchinstcd");
  638. ]]>
  639. </script>
  640. </button>
  641. </case>
  642. </switch>
  643. <button id="button5" class="btn_sw" visibility="hidden" group="tab" style="left:770px; top:50px; width:84px; height:22px; ">
  644. <caption>추가검사</caption>
  645. <toggle case="case_addtest" ev:event="onclick"/>
  646. <script type="javascript" ev:event="DOMActivate">
  647. <![CDATA[
  648. //fGetAddExamList();
  649. ]]>
  650. </script>
  651. </button>
  652. <switch id="switch1" style="left:0px; top:72px; width:599px; height:668px; ">
  653. <case id="case_exam" selected="true">
  654. <line id="line20" class="line_1" style="x1:5px; y1:30px; x2:592px; y2:30px; "/>
  655. <datagrid id="grd_testrmlst" nodeset="/root/main/testrmlst/exam" caption="검사실번호^검사실명^검사코드^검사명^건진장소^소요시간^대기자표시^바코드자동출력^네임지자동출력^기관코드" colsep="^" colwidth="76, 100, 100, 100, 70, 60, 80, 90, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:35px; width:587px; height:625px; ">
  656. <col disabled="true" ref="examroomid" visibility="visible"/>
  657. <col disabled="true" ref="examroomid" type="combo">
  658. <choices>
  659. <itemset nodeset="/root/init/room/roomlst/itemroom">
  660. <label ref="examroomnm"/>
  661. <value ref="examroomid"/>
  662. </itemset>
  663. </choices>
  664. </col>
  665. <col disabled="true" ref="examid" type="input"/>
  666. <col disabled="true" ref="examnm" type="input"/>
  667. <col disabled="true" ref="healexamplacecd" type="combo">
  668. <choices>
  669. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  670. <label ref="cdnm"/>
  671. <value ref="cdid"/>
  672. </itemset>
  673. </choices>
  674. </col>
  675. <col ref="avgtime"/>
  676. <col checkvalue="Y,N" disabled="true" ref="waitshowyn" type="checkbox"/>
  677. <col checkvalue="Y,N" disabled="true" ref="baryn" type="checkbox"/>
  678. <col checkvalue="Y,N" disabled="true" ref="nameyn" type="checkbox"/>
  679. <col ref="hoscode" visibility="hidden"/>
  680. <script type="javascript" ev:event="ondblclick">
  681. <![CDATA[
  682. fGetPreExamList();
  683. ]]>
  684. </script>
  685. <script type="javascript" ev:event="xforms-value-changed">
  686. <![CDATA[
  687. var waitCol = grd_testrmlst.colRef("waitshowyn");
  688. var col = grd_testrmlst.col;
  689. if(col == waitCol) {
  690. fSetWaitYN();
  691. }
  692. ]]>
  693. </script>
  694. <script type="javascript" ev:event="onclick">
  695. <![CDATA[
  696. if(grd_testrmlst.col == grd_testrmlst.colRef("examid") || grd_testrmlst.col == grd_testrmlst.colRef("examnm")) {
  697. grd_testrmlst.editCell();
  698. }
  699. ]]>
  700. </script>
  701. </datagrid>
  702. <caption id="caption4" class="tit_2" style="left:5px; top:15px; width:144px; height:13px; ">검사정보</caption>
  703. <button id="btn_testrmlstdel" class="btn2_letter3" style="left:539px; top:10px; width:53px; height:19px; ">
  704. <caption>행삭제</caption>
  705. <script type="javascript" ev:event="DOMActivate">
  706. <![CDATA[
  707. var row = grd_testrmlst.row;
  708. var rowStat = grd_testrmlst.rowStatus(row);
  709. if(rowStat == 1 || rowStat == 3) {
  710. grd_testrmlst.deleteRow(row);
  711. }else if(rowStat == 2 || rowStat == 0) {
  712. grd_testrmlst.rowStatus(row) = 4;
  713. }
  714. ]]>
  715. </script>
  716. </button>
  717. <button id="btn_testrmlstadd" class="btn2_letter3" style="left:484px; top:10px; width:53px; height:19px; ">
  718. <caption>행추가</caption>
  719. <script type="javascript" ev:event="DOMActivate">
  720. <![CDATA[
  721. grd_testrmlst.addRow();
  722. grd_testrmlst.bottomRow = grd_testrmlst.rows - 1;
  723. // var addRow = grd_testrmlst.rows - 1;
  724. ]]>
  725. </script>
  726. </button>
  727. </case>
  728. <case id="case_room">
  729. <line id="line4" class="line_1" style="x1:5px; y1:30px; x2:592px; y2:30px; "/>
  730. <caption id="caption11" class="tit_2" style="left:5px; top:15px; width:144px; height:13px; ">검사정보</caption>
  731. <button id="button3" class="btn2_letter3" style="left:539px; top:10px; width:53px; height:19px; ">
  732. <caption>행삭제</caption>
  733. <script type="javascript" ev:event="DOMActivate">
  734. <![CDATA[
  735. deleteSelectedRows(grd_roomlst, true);
  736. ]]>
  737. </script>
  738. </button>
  739. <button id="button4" class="btn2_letter3" style="left:484px; top:10px; width:53px; height:19px; ">
  740. <caption>행추가</caption>
  741. <script type="javascript" ev:event="DOMActivate">
  742. <![CDATA[
  743. grd_roomlst.addRow();
  744. ]]>
  745. </script>
  746. </button>
  747. <datagrid id="grd_roomlst" nodeset="/root/main/testrmlst/room" caption="검사실번호^검사실명^건진장소^대기자표시여부^floorno^examroomidkey^healexamplacecdkey" colsep="^" colwidth="140, 200, 130, 90, 100, 100, 100" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:5px; top:35px; width:587px; height:625px; ">
  748. <col ref="examroomid" type="input"/>
  749. <col ref="examroomnm" type="input"/>
  750. <col ref="healexamplacecd" type="combo">
  751. <choices>
  752. <itemset nodeset="/root/init/baseinfo/healexamplacelst/S600">
  753. <label ref="cdnm"/>
  754. <value ref="cdid"/>
  755. </itemset>
  756. </choices>
  757. </col>
  758. <col checkvalue="Y,N" ref="waitshowyn" type="checkbox"/>
  759. <col ref="floorno" visibility="hidden"/>
  760. <col ref="examroomidkey" visibility="hidden"/>
  761. <col ref="healexamplacecdkey" visibility="hidden"/>
  762. </datagrid>
  763. </case>
  764. </switch>
  765. <button id="button1" class="btn_sw" group="tab2" style="left:120px; top:50px; width:130px; height:22px; ">
  766. <caption>중앙관제 검사실정보</caption>
  767. <toggle case="case_room" ev:event="onclick"/>
  768. </button>
  769. <button id="button2" class="btn_sw" group="tab2" style="left:0px; top:50px; width:120px; height:22px; ">
  770. <caption>중앙관제 검사정보</caption>
  771. <toggle case="case_exam" ev:event="onclick"/>
  772. </button>
  773. </group>
  774. <group id="group4" scroll="auto" style="left:0px; top:757px; width:1195px; height:27px; ">
  775. <button id="btn_save" class="btn4_letter2" style="left:1133px; top:5px; width:56px; height:22px; ">
  776. <caption>저장</caption>
  777. <script type="javascript" ev:event="DOMActivate">
  778. <![CDATA[
  779. fSaveRfid("A");
  780. ]]>
  781. </script>
  782. </button>
  783. </group>
  784. </xhtml:body>
  785. </xhtml:html>