SMLIF00200_장비별검사코드관리.xrw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMLIF00200_장비별검사코드관리.xrw
  4. * 설 명 : 장비별검사코드관리
  5. * 설 계 자 : (주)에이씨케이 -
  6. * 작 성 자 : (주)에이씨케이 - 박정은
  7. * 작 성 일 : 2007.05.11
  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>장비별검사코드관리</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root>
  18. <main>
  19. <eqmtdetllist>
  20. <eqmtcd/>
  21. <eqmtnm/>
  22. </eqmtdetllist>
  23. <eqmttclscdlist>
  24. <chk/>
  25. <testcdfromdd/>
  26. <testcdtodd/>
  27. <dispseq/>
  28. <tclscd/>
  29. <testdispnm/>
  30. <spccd/>
  31. <ifreqcd/>
  32. <ifrsltcd/>
  33. <ifspccd/>
  34. <qctestcd/>
  35. <rsltreptkind/>
  36. <etc1/>
  37. <etc2/>
  38. <testcdseqno/>
  39. </eqmttclscdlist>
  40. <tclslist>
  41. <tclscd/>
  42. <tclsnm/>
  43. </tclslist>
  44. </main>
  45. <send>
  46. <refgbn/>
  47. <eqmtcd/>
  48. <eqmttclscd/>
  49. </send>
  50. <init>
  51. </init>
  52. <hidden>
  53. <refgbn>1</refgbn>
  54. </hidden>
  55. </root>
  56. </instance>
  57. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  58. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  59. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  60. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  61. <submission id="TRLIF00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/eqmtdetllist"/>
  62. <submission id="TRLIF00202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/eqmttclscdlist"/>
  63. <submission id="TXLIF00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance"/>
  64. <submission id="TRLZZ00101" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/LB0000"/>
  65. <script type="javascript" ev:event="xforms-ready">
  66. <![CDATA[
  67. // 권한 설정
  68. var auth = model.getValue("/root/properties/auth");
  69. checkAuth(auth);
  70. btn_save.disabled = !checkAuth("X") ;
  71. //사용자부서코드 조회 *추가 20080719 -승현-
  72. model.makeValue("/root/send/codeflag","0000|"); //0000:사용자부서코드
  73. submit("TRLZZ00101");
  74. // 초기화
  75. fSetInit();
  76. ]]>
  77. </script>
  78. <submission id="TRLLF00203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/tclslist"/>
  79. </model>
  80. <script type="javascript">
  81. <![CDATA[
  82. // 초기화
  83. function fSetInit() {
  84. //model.reset();
  85. model.removeNodeset("/root/main/eqmtdetllist");
  86. model.removeNodeset("/root/main/eqmttclscdlist");
  87. model.refresh();
  88. fGetEqmtList(); //20080719 승현 추가
  89. }
  90. // 장비 상세내역 조회
  91. function fGetEqmtList(){
  92. model.setValue("/root/send/refgbn" , model.getValue("/root/hidden/refgbn"));
  93. model.makeValue("/root/send/deptflag" , model.getValue("/root/init/LB0000/nm")); //20080719 승현 추가
  94. submit("TRLIF00201");
  95. /*if(submit("TRLIF00201")){ //이것도 그냥 막았음..
  96. // 장비별 검사코드 상세내역 조회
  97. grd_eqmtlist.row = 1;
  98. fGetEqmtTclscdList(1);
  99. } */
  100. }
  101. // 장비별 검사코드 상세내역 조회
  102. function fGetEqmtTclscdList(ref){
  103. model.setValue("/root/send/refgbn", model.getValue("/root/hidden/refgbn"));
  104. model.setValue("/root/send/eqmtcd", model.getValue("/root/main/eqmtdetllist["+ref+"]/eqmtcd"));
  105. submit("TRLIF00202");
  106. }
  107. //행추가
  108. function fSetAddRow(){
  109. var tDay = getCurrentDate();
  110. grd_eqmttclscd.addRow();
  111. model.setValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testcdfromdd" , tDay);
  112. model.setValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testcdtodd" , "99991231");
  113. }
  114. // 장비별 검사코드 저장, 수정
  115. function fExeEqmtTclscd(){
  116. if(grd_eqmttclscd.rows <2){
  117. messageBox("장비별 검사코드 상세내역 정보를 ", "C001"); //장비별 검사코드 상세내역 정보를 입력하십시오
  118. return;
  119. }
  120. i
  121. for ( j= 1 ; j < grd_eqmttclscd.rows ; j ++){
  122. if(model.getValue("/root/main/eqmttclscdlist["+j+"]/dispseq") != ""){
  123. var icnt = 0
  124. var sdispseq = model.getValue("/root/main/eqmttclscdlist["+j+"]/dispseq")
  125. for ( i = 1 ; i <= grd_eqmttclscd.rows ; i ++){
  126. var tdispseq = model.getValue("/root/main/eqmttclscdlist["+ i +"]/dispseq")
  127. if ( sdispseq == tdispseq ){
  128. icnt ++;
  129. if( icnt >= 2 ){
  130. alert("표시순서 중복입니다. ");
  131. model.setValue("/root/main/eqmttclscdlist["+i+"]/dispseq", "");
  132. return;
  133. }
  134. }
  135. }
  136. }else if(model.getValue("/root/main/eqmttclscdlist["+j+"]/dispseq") == ""){
  137. var maxnum1 = "0"
  138. var maxnum2 = "0"
  139. for(k= 1 ; k < grd_eqmttclscd.rows ; k++ ){
  140. if(model.getValue("/root/main/eqmttclscdlist["+k+"]/dispseq") != ""){
  141. maxnum1 = model.getValue("/root/main/eqmttclscdlist["+k+"]/dispseq")
  142. maxnum2 = maxnum1;
  143. }
  144. }
  145. maxnum2 = parseInt(maxnum2);
  146. maxnum2 = maxnum2 + 1;
  147. model.setValue("/root/main/eqmttclscdlist["+j+"]/dispseq",maxnum2 );
  148. model.setValue("/root/main/eqmttclscdlist["+j+"]/testcdseqno",maxnum2 );
  149. }
  150. }
  151. //서밋하기전 데이타를 insert로 바꾼다
  152. for (var i = 1 ; i <= grd_eqmttclscd.rows ; i++){
  153. grd_eqmttclscd.rowStatus(i) = 1 ;
  154. }
  155. var eqmttclscd = grd_eqmttclscd.getUpdateData();
  156. model.setValue("/root/send/eqmtcd" , model.getValue("/root/main/eqmtdetllist["+grd_eqmtlist.row+"]/eqmtcd"));
  157. model.setValue("/root/send/eqmttclscd" , eqmttclscd);
  158. if(submit("TXLIF00201")){
  159. // 초기화
  160. fGetEqmtTclscdList(grd_eqmtlist.row);
  161. //fSetInit();
  162. }
  163. }
  164. function fExeExcel(pGridId) {
  165. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  166. if (fileName != "")
  167. {
  168. pGridId.saveExcel(fileName);
  169. }
  170. }
  171. function fgettclsnm(){
  172. if(event.keyCode == "13"){
  173. //검사코드 처리 --검사코드 엔터쳤을때 이름이 나온다
  174. if ( grd_eqmttclscd.col == 5 ) {
  175. //grd_eqmtlist.gridToInstance();
  176. var stclscdu = model.getValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/tclscd");
  177. stclscdu = stclscdu.toUpperCase();
  178. model.setValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/tclscd",stclscdu);
  179. //alert (stclscd);
  180. //fnamecheck();
  181. var icnt = 0
  182. var stclscd = model.getValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/tclscd")
  183. //alert("sdispseq"+sdispseq) ;
  184. //var findrow = grd_eqmttclscd.findRow(sdispseq , 1, 3 , true, true);
  185. //alert (findrow);
  186. for ( i = 1 ; i <= grd_eqmttclscd.rows ; i ++){
  187. var ttclscd = model.getValue("/root/main/eqmttclscdlist["+ i +"]/tclscd")
  188. //alert("tdispseq"+tdispseq);
  189. if ( stclscd == ttclscd ){
  190. icnt ++;
  191. }
  192. }
  193. if( icnt == 2 ){
  194. //alert("icnt"+icnt);
  195. alert(stclscd+" 는 검사코드 중복입니다. ");
  196. model.setValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/tclscd", "");
  197. //fGetEqmtTclscdList(grd_eqmtlist.row)
  198. return;
  199. }
  200. model.makeValue("/root/send/tclscd", stclscd);
  201. submit("TRLLF00203");
  202. if(model.getValue("/root/main/tclslist/tclscd") != ""){ // 검사코드 있을때
  203. model.setValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testdispnm", model.getValue("/root/main/tclslist/tclsnm"));
  204. }else{
  205. alert("검사코드를 확인하십시오.");
  206. model.setValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testdispnm", "");
  207. }
  208. model.refresh();
  209. }
  210. }
  211. //표시순서 시퀀스가 바뀌면 테스트코드 시퀀스노드에도 넣어준다
  212. if ( grd_eqmttclscd.col == 4 ) {
  213. var sdispseq = model.getValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/dispseq");
  214. model.setValue("root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testcdseqno",sdispseq);
  215. }
  216. }
  217. function fInsRowdel() {
  218. var kRows = grd_eqmttclscd.rows;
  219. for (var i =1; i<=grd_eqmttclscd.rows; i++){
  220. //alert(i);
  221. var chk = model.getValue("/root/main/eqmttclscdlist["+i+"]/chk" );
  222. //alert(chk);
  223. if(model.getValue("/root/main/eqmttclscdlist["+i+"]/chk") == "true"){
  224. //alert("삭제");
  225. //grd_eqmttclscd.deleteitem(i);
  226. model.removenodeset("/root/main/eqmttclscdlist["+i+"]");
  227. i = i -1;
  228. kRows = kRows -1 ;
  229. }
  230. }
  231. model.refresh();
  232. //var row = grd_eqmttclscd.row;
  233. //grd_eqmttclscd.deleteItem(row);
  234. for ( i =1 ; i<= grd_eqmttclscd.rows ; i++){
  235. grd_eqmttclscd.rowStatus(i) = 0 ;
  236. }
  237. //alert (stestcdseqno);
  238. /*if ( stestcdseqno == ""){
  239. var row = grd_eqmttclscd.row;
  240. grd_eqmttclscd.deleteItem(row);
  241. }
  242. else{
  243. grd_eqmttclscd.rowStatus(grd_eqmttclscd.row) = 4;
  244. }
  245. */
  246. }
  247. function fnamecheck(){
  248. if ( grd_eqmttclscd.col == 5 ) {
  249. var icnt = 0
  250. var stclscd = model.getValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/tclscd")
  251. //alert("sdispseq"+sdispseq) ;
  252. //var findrow = grd_eqmttclscd.findRow(sdispseq , 1, 3 , true, true);
  253. //alert (findrow);
  254. for ( i = 1 ; i <= grd_eqmttclscd.rows ; i ++){
  255. var ttclscd = model.getValue("/root/main/eqmttclscdlist["+ i +"]/tclscd")
  256. //alert("tdispseq"+tdispseq);
  257. if ( stclscd == ttclscd ){
  258. icnt ++;
  259. }
  260. }
  261. if( icnt == 2 ){
  262. //alert("icnt"+icnt);
  263. alert("검사코드 중복입니다. ");
  264. model.setValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/tclscd", "");
  265. fGetEqmtTclscdList(grd_eqmtlist.row)
  266. return;
  267. }
  268. }
  269. }
  270. function fseqcheck(){
  271. if ( grd_eqmttclscd.col == 4 ) {
  272. var icnt = 0
  273. var sdispseq = model.getValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/dispseq")
  274. //alert("sdispseq"+sdispseq) ;
  275. //var findrow = grd_eqmttclscd.findRow(sdispseq , 1, 3 , true, true);
  276. //alert (findrow);
  277. for ( i = 1 ; i <= grd_eqmttclscd.rows ; i ++){
  278. var tdispseq = model.getValue("/root/main/eqmttclscdlist["+ i +"]/dispseq")
  279. //alert("tdispseq"+tdispseq);
  280. if ( sdispseq == tdispseq ){
  281. icnt ++;
  282. }
  283. }
  284. if( icnt == 2 ){
  285. //alert("icnt"+icnt);
  286. alert("표시순서 중복입니다. ");
  287. model.setValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/dispseq", "");
  288. fGetEqmtTclscdList(grd_eqmtlist.row)
  289. return;
  290. }
  291. }
  292. }
  293. ]]>
  294. </script>
  295. </xhtml:head>
  296. <xhtml:body style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  297. <group id="group3" scroll="auto" style="left:0px; top:40; width:1195px; height:744px; ">
  298. <line id="line1" class="line_1" style="x1:0px; y1:70px; x2:260px; y2:70px; "/>
  299. <caption id="caption2" class="tit_2" style="left:5px; top:55px; width:134px; height:13px; ">장비상세내역</caption>
  300. <line id="line2" class="line_1" style="x1:265px; y1:70px; x2:1194px; y2:70px; "/>
  301. <caption id="caption3" class="tit_2" style="left:270px; top:55px; width:220px; height:13px; ">장비별 검사코드 상세내역</caption>
  302. <group id="group1" style="left:0px; top:10px; width:1195px; height:35px; ">
  303. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" style="left:0px; top:0px; width:1194px; height:35px; "/>
  304. <line id="line4" class="line_4" style="x1:1108px; y1:7px; x2:1108px; y2:29px; "/>
  305. <caption id="caption1" class="search_name" style="left:15px; top:9px; width:90px; height:17px; ">조회구분 :</caption>
  306. <select1 id="cmb_refgbn" ref="/root/hidden/refgbn" class="combo_search" appearance="minimal" style="left:108px; top:8px; width:150px; height:19px; ">
  307. <choices>
  308. <item>
  309. <label>사용가능자료</label>
  310. <value>1</value>
  311. </item>
  312. <item>
  313. <label>전체자료</label>
  314. <value>2</value>
  315. </item>
  316. </choices>
  317. </select1>
  318. <button id="btn_search" class="btn1_letter2" style="left:1123px; top:7px; width:56px; height:22px; ">
  319. <caption>조회</caption>
  320. <script type="javascript" ev:event="DOMActivate">
  321. <![CDATA[
  322. fGetEqmtList();
  323. ]]>
  324. </script>
  325. </button>
  326. </group>
  327. <button id="btn_addrow" class="btn2_letter3" style="left:1035px; top:49px; width:53px; height:19px; ">
  328. <caption>행추가</caption>
  329. <script type="javascript" ev:event="DOMActivate">
  330. <![CDATA[
  331. fSetAddRow();
  332. ]]>
  333. </script>
  334. </button>
  335. <datagrid id="grd_eqmtlist" nodeset="/root/main/eqmtdetllist" caption="장비코드^장비명" colsep="^" colwidth="70, 166" dataheight="25" defaultrows="1" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" style="left:0px; top:75px; width:260px; height:647px; ">
  336. <col ref="eqmtcd"/>
  337. <col ref="eqmtnm"/>
  338. <script type="javascript" ev:event="onclick">
  339. <![CDATA[
  340. fGetEqmtTclscdList(grd_eqmtlist.row);
  341. ]]>
  342. </script>
  343. <script type="javascript" ev:event="onaftersort">
  344. <![CDATA[
  345. grd_eqmtlist.gridToInstance();
  346. ]]>
  347. </script>
  348. </datagrid>
  349. <datagrid id="grd_eqmttclscd" nodeset="/root/main/eqmttclscdlist" caption="^사용시작일자^사용종료일자^표시&#xA;순서^검사코드^검사명^검체&#xA;코드^IF 오더코드^IF 결과코드^IF 검체코드^정도관리검사코드^결과보고유형^OTHER1^OTHER2^testcdseqno^caption1" colsep="^" colwidth="25, 90, 90, 50, 70, 120, 50, 70, 70, 70, 100, 75, 60, 60, 100" dataheight="25" defaultrows="1" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="25" rowsep="|" style="left:265px; top:75px; width:929px; height:647px; ">
  350. <col checkvalue="true,false" ref="chk" type="checkbox"/>
  351. <col ref="testcdfromdd" type="inputdate"/>
  352. <col ref="testcdtodd" type="inputdate"/>
  353. <col ref="dispseq" type="input"/>
  354. <col ref="tclscd" type="input"/>
  355. <col ref="testdispnm" type="input"/>
  356. <col ref="spccd" type="input"/>
  357. <col ref="ifreqcd" type="input"/>
  358. <col ref="ifrsltcd" type="input"/>
  359. <col ref="ifspccd" type="input"/>
  360. <col ref="qctestcd" type="input"/>
  361. <col ref="rsltreptkind" type="combo">
  362. <choices>
  363. <item>
  364. <label>결과저장</label>
  365. <value>1</value>
  366. </item>
  367. <item>
  368. <label>중간보고</label>
  369. <value>2</value>
  370. </item>
  371. <item>
  372. <label>최종보고</label>
  373. <value>3</value>
  374. </item>
  375. </choices>
  376. </col>
  377. <col ref="etc1" type="input"/>
  378. <col ref="etc2" type="input"/>
  379. <col ref="testcdseqno" visibility="hidden" style="left:995px; top:23px; width:100px; height:23px; "/>
  380. <script type="javascript" ev:event="onaftersort">
  381. <![CDATA[
  382. grd_eqmttclscd.gridToInstance();
  383. ]]>
  384. </script>
  385. <script type="javascript" ev:event="xforms-value-changed">
  386. <![CDATA[
  387. //화면에서 표시순서값이 바귀면 테스트코드 노드도 바뀐다
  388. if ( grd_eqmttclscd.col == 4 ) {
  389. var sdispseq = model.getValue("/root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/dispseq");
  390. model.setValue("root/main/eqmttclscdlist["+grd_eqmttclscd.row+"]/testcdseqno",sdispseq);
  391. }
  392. //if ( grd_eqmttclscd.col == 5 ) {
  393. // var stestdispnm = model.getValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/testdispnm");
  394. // if ( stestdispnm.length > 40 ){
  395. // stestdispnm = stestdispnm.substr(0,39);
  396. // model.setValue("/root/main/eqmttclscdlist["+ grd_eqmttclscd.row +"]/testdispnm" , stestdispnm );
  397. // alert("검사명이 너무 길어 일부 뒷부분은 삭제됩니다. ")
  398. // return;
  399. // }
  400. //}
  401. ]]>
  402. </script>
  403. <script type="javascript" ev:event="onkeypress">
  404. <![CDATA[
  405. fgettclsnm();
  406. ]]>
  407. </script>
  408. </datagrid>
  409. <button id="btn_excel" class="btn2_letter2" style="left:1147px; top:49px; width:42px; height:19px; ">
  410. <caption>엑셀</caption>
  411. <script type="javascript" ev:event="DOMActivate">
  412. <![CDATA[
  413. fExeExcel(grd_eqmttclscd);
  414. ]]>
  415. </script>
  416. </button>
  417. <button id="button1" class="btn2_letter3" style="left:1091px; top:49px; width:53px; height:19px; ">
  418. <caption>행삭제</caption>
  419. <script type="javascript" ev:event="DOMActivate">
  420. <![CDATA[
  421. fInsRowdel();
  422. ]]>
  423. </script>
  424. </button>
  425. </group>
  426. <group id="grp_btn" style="left:0px; top:13px; width:1195px; height:27px; ">
  427. <line id="line3" class="line_6" style="x1:0px; y1:25px; x2:1194px; y2:25px; "/>
  428. <button id="btn_save" class="btn4_letter2" style="left:1068px; top:3px; width:56px; height:22px; ">
  429. <caption>저장</caption>
  430. <script type="javascript" ev:event="DOMActivate">
  431. <![CDATA[
  432. fExeEqmtTclscd();
  433. ]]>
  434. </script>
  435. </button>
  436. <button id="btn_reset" class="btn4_letter3" style="left:1127px; top:3px; width:68px; height:22px; ">
  437. <caption>초기화</caption>
  438. <script type="javascript" ev:event="DOMActivate">
  439. <![CDATA[
  440. fSetInit();
  441. ]]>
  442. </script>
  443. </button>
  444. </group>
  445. <group id="group2" style="left:0px; top:0px; width:1195px; height:13px; ">
  446. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:800px; height:14px; ">장비별검사코드관리</caption>
  447. </group>
  448. </xhtml:body>
  449. </xhtml:html>