SMLQF10900_핵의학그래프마스터관리.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLQF10900.xrw
  4. * 설 명 : QC그래프마스터
  5. * 설 계 자 : 서승현
  6. * 작 성 자 : 서승현
  7. * 작 성 일 : 2009.02.19
  8. * 수정이력 :
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.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>QC그래프마스터관리</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root>
  18. <main>
  19. <testlist>
  20. <chk/>
  21. <testcd/>
  22. <testnm/>
  23. <eqmtcd/>
  24. <curvefit/>
  25. <tx/>
  26. <ty/>
  27. <tz/>
  28. <cmt/>
  29. </testlist>
  30. <tclscdlist>
  31. <chk/>
  32. <tclscd/>
  33. <tclsnm/>
  34. </tclscdlist>
  35. </main>
  36. <init>
  37. </init>
  38. <hidden>
  39. <testlrg>00</testlrg>
  40. <testmdl>
  41. <cd>00</cd>
  42. </testmdl>
  43. <detlmdlcd/>
  44. <search>
  45. <searchflag>1</searchflag>
  46. <searchtext/>
  47. </search>
  48. <temp>
  49. <chk/>
  50. <tclscd/>
  51. <tclsnm/>
  52. </temp>
  53. <refflag/>
  54. <infonm>
  55. <info/>
  56. </infonm>
  57. </hidden>
  58. <send>
  59. <codeflag/>
  60. <testmdlcd/>
  61. <testlrgcd/>
  62. <deptflag/>
  63. <refgbn/>
  64. <refcont/>
  65. <testlist/>
  66. <eqmtcd>00</eqmtcd>
  67. </send>
  68. </root>
  69. </instance>
  70. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  71. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  72. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/LB0102"/>
  73. <submission id="TRLLF00608" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/tclsList"/>
  74. <submission id="TRLQF00304" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main"/>
  75. <script type="javascript" ev:event="xforms-ready">
  76. <![CDATA[
  77. fSetInit();
  78. ]]>
  79. </script>
  80. <submission id="TRLQF10901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/testlist"/>
  81. <submission id="TXLQF10901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/testlist"/>
  82. </model>
  83. <script type="javascript">
  84. <![CDATA[
  85. function fSetInit(){
  86. model.removeNodeset("/root/main/tclscdlist");
  87. grd_tclsList.rebuild();
  88. model.removeNodeset("/root/main/testlist");
  89. grd_testList.rebuild();
  90. model.removeNodeset("/root/init");
  91. grd_tclsList.fixedcellcheckbox(0, 1) = true;
  92. grd_tclsList.fixedcellischeck(0, 1) = false;
  93. model.setValue("/root/send/codeflag", "0102|0104|0000|0701|"); // 0102= 중분류 // 0104 대분류 // 0000 userdeptflagcd
  94. submit("TRLZZ00101");
  95. //fGetHospTclscd(); //검사코드상세내역 조회
  96. }
  97. function fKeyEvent(){
  98. if(event.keyCode == "13"){
  99. if(event.target =="ipt_search"){
  100. model.setValue("/root/hidden/search/searchtext", ipt_search.currentText);
  101. fGetHospTclscd();
  102. }
  103. }
  104. }
  105. //중분류 초기정보 조회
  106. function fSetTestLrgCd(){
  107. var lrg = model.getvalue("/root/hidden/testlrg");
  108. if(lrg == "00"){
  109. cmb_testMdlCd.choices.itemset.attribute("nodeset") = "/root/init/LB0102";
  110. model.setValue("/root/hidden/testmdl/cd" , "00");
  111. }
  112. else{
  113. model.setValue("/root/hidden/testmdl/cd" , "00");
  114. cmb_testMdlCd.choices.itemset.attribute("nodeset") = "/root/init/LB0102[cd= '00' or etc01='"+ lrg +"']";
  115. }
  116. cmb_testMdlCd.refresh();
  117. fGetTclscdList();
  118. }
  119. // 검사코드 리스트 조회
  120. function fGetTclscdList(){
  121. model.removeNodeset("/root/main/tclscdlist");
  122. grd_tclsList.rebuild();
  123. model.setValue("/root/send/testlrgcd", model.getValue("/root/hidden/testlrg"));
  124. model.setValue("/root/send/testmdlcd", model.getValue("/root/hidden/testmdl/cd"));
  125. model.setValue("/root/send/deptflag", model.getValue("/root/init/LB0000/nm"));
  126. submit("TRLLF00608");
  127. //submit("TRLQF00303");
  128. }
  129. // 검색버튼
  130. function fGetHospTclscd(){
  131. model.removeNodeset("/root/main/testlist");
  132. grd_testList.rebuild();
  133. model.setValue("/root/send/refgbn", model.getValue("/root/hidden/search/searchflag"));
  134. model.setValue("/root/send/refcont", model.getValue("/root/hidden/search/searchtext"));
  135. model.setValue("/root/send/deptflag", model.getValue("/root/init/LB0000/nm"));
  136. submit("TRLQF10901"); //검사코드상세내역 조회
  137. }
  138. //검사코드복사
  139. function fSetChoiTestList ( ) {
  140. var vChk = ""
  141. var vTestCd = ""
  142. var vTestNm = ""
  143. var eqmtcd = model.getValue("/root/send/eqmtcd");
  144. for ( i = 1; i < grd_tclsList.rows; i++){
  145. vChk = model.getValue("/root/main/tclscdlist[" + i + "]/chk");
  146. vTclsCd = model.getValue("/root/main/tclscdlist[" + i + "]/tclscd");
  147. vTclsNm = model.getValue("/root/main/tclscdlist[" + i + "]/tclsnm");
  148. if( vChk == "true"){ //검사항목 선택된놈들
  149. if(grd_testList.findRow(vTclsCd, 1, 2, true, true) == "-1"){ //물질별 검사항목에 등록되어있지 않은 항목만
  150. grd_testList.addRow(false);
  151. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/testcd" , vTclsCd);
  152. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/testnm" , vTclsNm);
  153. model.setValue("/root/main/tclscdlist[" + i + "]/chk", "false");
  154. if(eqmtcd != "00"){
  155. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/eqmtcd", eqmtcd);
  156. }
  157. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/curvefit" , '-');
  158. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/tx" , '-');
  159. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/ty" , '-');
  160. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/tz" , '-');
  161. }else{
  162. alert(vTclsCd + " 항목이 중복되었습니다");
  163. model.setValue("/root/main/tclscdlist[" + i + "]/chk", "false");
  164. }
  165. }
  166. }//end for
  167. grd_testList.bottomRow = grd_testList.rows;
  168. model.refresh();
  169. }
  170. //검사코드복사
  171. function fSetTclsCopy(){
  172. var sTestcd = model.getValue("/root/main/tclscdlist["+grd_tclsList.row+"]/tclscd");
  173. var findrow = grd_testList.findRow(sTestcd , 1,2 , true,true);
  174. if(findrow >0 ) {
  175. alert("이미 선택된 검사코드입니다.");
  176. model.setValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/chk", "false");
  177. return;
  178. }
  179. var eqmtcd = model.getValue("/root/send/eqmtcd");
  180. grd_testList.addRow(false);
  181. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/testcd", model.getValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/tclscd"));
  182. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/testnm", model.getValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/tclsnm"));
  183. if(eqmtcd != "00"){
  184. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/eqmtcd", eqmtcd);
  185. }
  186. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/curvefit" , '-');
  187. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/tx" , '-');
  188. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/ty" , '-');
  189. model.setValue("/root/main/testlist[" + (grd_testList.rows-1) + "]/tz" , '-');
  190. model.setValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/chk" , "false");
  191. grd_testList.bottomRow = grd_testList.rows;
  192. model.refresh();
  193. }
  194. //저장 데이터 확인
  195. function checkGridUpdate(grid){
  196. var iData = grid.getUpdateDataXml("insert");
  197. var uData = grid.getUpdateDataXml("update");
  198. var dData = grid.getUpdateDataXml("delete");
  199. if (iData=="" && uData=="" && dData=="") return false;
  200. else{
  201. return true;
  202. }
  203. }
  204. //검사항목 리스트 클릭시 Row선택하면 체크 선택되게
  205. function fTclsListClick(){
  206. if(grd_tclsList.col != "1"){
  207. if(model.getValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/chk") != "true"){
  208. model.setValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/chk", "true");
  209. }else{
  210. model.setValue("/root/main/tclscdlist[" + grd_tclsList.row + "]/chk", "false");
  211. }
  212. }
  213. }
  214. ]]>
  215. </script>
  216. </xhtml:head>
  217. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  218. <group id="group3" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; ">
  219. <line id="line1" class="line_1" style="x1:0px; y1:71px; x2:1194px; y2:71px; "/>
  220. <datagrid id="grd_testList" nodeset="/root/main/testlist" class="datagrid2" autoresize="true" caption="^검사코드^검사명^장비코드^그래프구분^X축^Y축^기타^기타2" colsep="^" colwidth="25, 95, 180, 100, 120, 100, 120, 100" dataheight="25" defaultrows="1" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" tooltip="true" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:0px; top:75px; width:892px; height:647px; ">
  221. <col checkvalue="true,false" ref="chk" type="checkbox" visibility="hidden"/>
  222. <col ref="testcd"/>
  223. <col ref="testnm"/>
  224. <col ref="eqmtcd" type="input"/>
  225. <col ref="curvefit" type="combo">
  226. <choices>
  227. <item>
  228. <label>- 선택 -</label>
  229. <value>-</value>
  230. </item>
  231. <item>
  232. <label>Auto SpLine</label>
  233. <value>0</value>
  234. </item>
  235. <item>
  236. <label>Linear</label>
  237. <value>1</value>
  238. </item>
  239. </choices>
  240. </col>
  241. <col ref="tx" type="combo">
  242. <choices>
  243. <item>
  244. <label>- 선택 -</label>
  245. <value>-</value>
  246. </item>
  247. <item>
  248. <label>None</label>
  249. <value>0</value>
  250. </item>
  251. <item>
  252. <label>Log</label>
  253. <value>1</value>
  254. </item>
  255. <item>
  256. <label>LogIt</label>
  257. <value>2</value>
  258. </item>
  259. <item>
  260. <label>Linear</label>
  261. <value>3</value>
  262. </item>
  263. </choices>
  264. </col>
  265. <col ref="ty" type="combo">
  266. <choices>
  267. <item>
  268. <label>- 선택 -</label>
  269. <value>-</value>
  270. </item>
  271. <item>
  272. <label>None</label>
  273. <value>0</value>
  274. </item>
  275. <item>
  276. <label>Log</label>
  277. <value>1</value>
  278. </item>
  279. <item>
  280. <label>LogIt</label>
  281. <value>2</value>
  282. </item>
  283. <item>
  284. <label>Linear</label>
  285. <value>3</value>
  286. </item>
  287. </choices>
  288. </col>
  289. <col ref="tz" type="input" visibility="hidden"/>
  290. <col ref="cmt" visibility="hidden"/>
  291. <script type="javascript" ev:event="onaftersort">
  292. <![CDATA[
  293. grd_testList.gridToInstance();
  294. ]]>
  295. </script>
  296. <!--<script type="javascript" ev:event="onkeypress">
  297. <![CDATA[
  298. if(event.keyCode == "13"){
  299. fGetTestInfo();
  300. }
  301. ]]>
  302. </script>-->
  303. </datagrid>
  304. <caption id="caption2" class="tit_2" style="left:5px; top:56px; width:173px; height:14px; ">검사코드상세내역</caption>
  305. <button id="btn_add" class="btn2_letter3" disabled="true" visibility="visible" style="left:767px; top:50px; width:53px; height:19px; ">
  306. <caption>행추가</caption>
  307. <script type="javascript" ev:event="DOMActivate">
  308. <![CDATA[
  309. grd_testList.additem();
  310. ]]>
  311. </script>
  312. </button>
  313. <group id="group1" style="left:0px; top:10px; width:1195px; height:35px; ">
  314. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  315. <line id="line3" class="line_4" style="x1:760px; y1:5px; x2:760px; y2:27px; "/>
  316. <button id="button1" class="btn1_letter2" style="left:775px; top:5px; width:56px; height:22px; ">
  317. <caption>검색</caption>
  318. <script type="javascript" ev:event="DOMActivate">
  319. <![CDATA[
  320. fGetHospTclscd();
  321. ]]>
  322. </script>
  323. </button>
  324. <caption id="caption1" class="search_name" style="left:15px; top:10px; width:90px; height:17px; ">검색구분 :</caption>
  325. <select1 id="cbo_searchFlag" ref="/root/hidden/search/searchflag" class="combo_search" appearance="minimal" style="left:108px; top:9px; width:117px; height:19px; ">
  326. <choices>
  327. <item>
  328. <label>검사코드</label>
  329. <value>1</value>
  330. </item>
  331. </choices>
  332. </select1>
  333. <input id="ipt_search" ref="/root/hidden/search/searchtext" class="input_s_button" inputtype="button" style="left:230px; top:9px; width:110px; height:19px; ">
  334. <script type="javascript" ev:event="onkeypress">
  335. <![CDATA[
  336. fKeyEvent();
  337. ]]>
  338. </script>
  339. </input>
  340. <caption id="caption25" class="search_name" style="left:860px; top:9px; width:87px; height:17px; ">조회구분 :</caption>
  341. <select1 id="cmb_testLrgCd" ref="/root/hidden/testlrg" class="combo_s_essential" appearance="minimal" itemcount="10" style="left:955px; top:9px; width:110px; height:19px; ">
  342. <choices>
  343. <itemset nodeset="/root/init/LB0104">
  344. <label ref="nm"/>
  345. <value ref="cd"/>
  346. </itemset>
  347. </choices>
  348. <script type="javascript" ev:event="xforms-value-changed">
  349. <![CDATA[
  350. fSetTestLrgCd();
  351. ]]>
  352. </script>
  353. </select1>
  354. <select1 id="cmb_testMdlCd" ref="/root/hidden/testmdl/cd" class="combo_s_essential" appearance="minimal" itemcount="10" style="left:1070px; top:9px; width:115px; height:19px; ">
  355. <choices>
  356. <itemset nodeset="/root/init/LB0102">
  357. <label ref="nm"/>
  358. <value ref="cd"/>
  359. </itemset>
  360. </choices>
  361. <script type="javascript" ev:event="xforms-select">
  362. <![CDATA[
  363. //검사코드리스트조회
  364. fGetTclscdList();
  365. ]]>
  366. </script>
  367. </select1>
  368. <select1 id="rdo_refFlag" ref="/root/hidden/refflag" visibility="hidden" appearance="full" cols="2" overflow="visible" style="left:800px; top:10px; width:90px; height:16px; border-style:none; ">
  369. <choices>
  370. <item>
  371. <label>QC</label>
  372. <value>1</value>
  373. </item>
  374. <item>
  375. <label>코드</label>
  376. <value>2</value>
  377. </item>
  378. </choices>
  379. </select1>
  380. <line id="line2" class="line_4" style="x1:355px; y1:5px; x2:355px; y2:27px; "/>
  381. <caption id="caption4" class="search_name" style="left:390px; top:10px; width:90px; height:17px; ">장 비 :</caption>
  382. <select1 id="cbo_eqmtList" ref="/root/send/eqmtcd" class="combo_s_essential" appearance="minimal" style="left:462px; top:9px; width:138px; height:19px; ">
  383. <choices>
  384. <itemset nodeset="/root/init/LB0701">
  385. <label ref="nm"/>
  386. <value ref="cd"/>
  387. </itemset>
  388. </choices>
  389. </select1>
  390. </group>
  391. <button id="btn_up" class="icon_left" style="left:895px; top:395px; width:26px; height:19px; ">
  392. <caption/>
  393. <script type="javascript" ev:event="DOMActivate">
  394. <![CDATA[
  395. //선택검사목록
  396. fSetChoiTestList();
  397. ]]>
  398. </script>
  399. </button>
  400. <caption id="caption3" class="tit_2" style="left:925px; top:55px; width:173px; height:13px; ">검사항목코드목록</caption>
  401. <datagrid id="grd_tclsList" nodeset="/root/main/tclscdlist" class="datagrid2" caption="^검사코드^검사명" colsep="^" colwidth="20, 65, 135" dataheight="25" defaultrows="1" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" selectionmode="byrow" fixed.background-image="../../../com/commonweb/images/grid_bg.gif" style="left:925px; top:75px; width:268px; height:647px; ">
  402. <col checkvalue="true,false" ref="chk" type="checkbox"/>
  403. <col ref="tclscd"/>
  404. <col ref="tclsnm"/>
  405. <script type="javascript" ev:event="onaftersort">
  406. <![CDATA[
  407. grd_tclsList.gridToInstance();
  408. ]]>
  409. </script>
  410. <script type="javascript" ev:event="ondblclick">
  411. <![CDATA[
  412. if(grd_tclsList.isCell(event.target) && grd_tclsList.row >= grd_tclsList.fixedRows){
  413. fSetTclsCopy();
  414. }
  415. ]]>
  416. </script>
  417. <script type="javascript" ev:event="onclick">
  418. <![CDATA[
  419. if(grd_tclsList.isCell(event.target) && grd_tclsList.row >= grd_tclsList.fixedRows){
  420. fTclsListClick();
  421. }
  422. ]]>
  423. </script>
  424. </datagrid>
  425. <button id="btn_del" class="btn2_letter3" visibility="visible" style="left:827px; top:50px; width:53px; height:19px; ">
  426. <caption>행삭제</caption>
  427. <script type="javascript" ev:event="DOMActivate">
  428. <![CDATA[
  429. grd_testList.rowStatus(grd_testList.row) = 4; //멀티업데이트 시 Delete로 설정 //0:new, 1:insert, 2:update, 3:insert&new, 4:delete
  430. //grd_testList.deleteitem(grd_testList.row);
  431. ]]>
  432. </script>
  433. </button>
  434. </group>
  435. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  436. <button id="button5" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  437. <caption>초기화</caption>
  438. <script type="javascript" ev:event="onclick">
  439. <![CDATA[
  440. window.reload();
  441. ]]>
  442. </script>
  443. </button>
  444. <line id="line32" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  445. <button id="btn_exec" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  446. <caption>저장</caption>
  447. <script type="javascript" ev:event="DOMActivate">
  448. <![CDATA[
  449. if(messageBox("", "Q002")==6){
  450. if(!checkGridUpdate(grd_testList))
  451. {
  452. alert("저장할 자료가 존재하지 않습니다.");
  453. return;
  454. }
  455. for(i = 1; i < grd_testList.rows; i++){
  456. if(model.getValue("/root/main/testlist[" + i + "]/eqmtcd") == ""){
  457. alert("장비코드를 입력하세요");
  458. grd_testList.row = i;
  459. return;
  460. }
  461. }
  462. model.setValue("/root/send/testlist", grd_testList.getUpdateData());
  463. model.setValue("/root/send/deptflag", model.getValue("/root/init/LB0000/nm"));
  464. if ( submit("TXLQF10901") ) {
  465. grd_testList.clearStatus(); // submit() 성공하면 그리드의 i,u,d 상태 제거
  466. fGetHospTclscd();
  467. }
  468. }
  469. ]]>
  470. </script>
  471. </button>
  472. </group>
  473. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  474. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">QC검사코드관리</caption>
  475. </group>
  476. </xhtml:body>
  477. </xhtml:html>